public override void RunAnalysis() { if (this.Designers == null) { return; } this.m_TextualOutput = "sustainability-open v" + SOFramework.VERSION + "\n\n"; this.m_MaterialQuantities.Clear(); foreach (SOComponent component in this.CurrentDesignAlternative.FlattenedLeafComponents) { foreach (SOPhysicalObject obj in component.Parts) { this.m_TextualOutput += "Physical object: " + obj.Name + "\n"; SOMaterialQuantity quantity = obj.MaterialQuantity; this.m_TextualOutput += "- " + quantity.Material.Name + ": " + quantity.Quantity.ToString(" 0.00") + " " + quantity.Unit + "\n"; bool exists = false; foreach (SOMaterialQuantity totalquantity in this.m_MaterialQuantities) { if ((totalquantity.Material.Equals(quantity.Material)) || (totalquantity.Material.Name.Equals(quantity.Material.Name))) { totalquantity.Quantity += quantity.Quantity; exists = true; break; } } if (!exists) { this.m_MaterialQuantities.Add(new SOMaterialQuantity(quantity.Material, quantity.Quantity, quantity.Unit)); } } } this.m_TextualOutput += "\nTotals\n"; foreach (SOMaterialQuantity quantity in this.m_MaterialQuantities) { this.m_TextualOutput += "- " + quantity.Material.Name + ": " + quantity.Quantity.ToString(" 0.00") + " " + quantity.Unit + "\n"; } }
public void SetUp() { this.m_Material = new SOMaterial(MATERIAL_NAME); this.m_Quantity = new SOMaterialQuantity(this.m_Material, QUANTITY, UNIT); }