AMEE_in_Revit.Addin.CO2eParameter.ElementCO2eCalculator.UpdateElementCO2eParameters C# (CSharp) Method

UpdateElementCO2eParameters() public method

public UpdateElementCO2eParameters ( ICollection forElements ) : void
forElements ICollection
return void
        public void UpdateElementCO2eParameters(ICollection<Element> forElements)
        {
            foreach (var element in forElements)
            {
                var materialKey = "undefined";
                try
                {
                    if (!element.ParametersMap.Contains("CO2e")) continue;

                    double totalElementCO2e = 0;
                    var materialSetIterator = element.Materials.ForwardIterator();
                    while (materialSetIterator.MoveNext())
                    {
                        var material = (Material)materialSetIterator.Current;

                        var volumeInM3 = element.GetMaterialVolume(material);
                        materialKey = material.Id + ":" + material.Name;

                        var ameeMaterial = _materialMapper.GetMaterialDataItem(materialKey);
                        totalElementCO2e += ameeMaterial.CalculateCO2eByVolume(volumeInM3);
                    }
                    element.ParametersMap.get_Item("CO2e").Set(totalElementCO2e);
                }
                catch (Exception e)
                {
                    logger.DebugFormat("Unable to add CO2e value for element {0} -> material: {1} because {2}",
                        element.Name, materialKey, e);
                    element.ParametersMap.get_Item("CO2e").Set(0);
                }
            }
        }