calculate embodied carbon for metals

This commit is contained in:
Chuck Driesler
2025-02-18 17:38:51 +00:00
parent 6723aca9b8
commit 6f80f98409
@@ -1,11 +1,14 @@
from src.core.base import CarbonProcessor
from src.core.types import ( MetalClass, WoodClass )
from src.carbon.types import CarbonData
from src.carbon.data import ( wood_factors, metal_factors )
from src.applications.revit.utils.material_type_handler import (
MaterialType,
)
from src.applications.revit.utils.constants import (
PROPERTIES,
)
import json
class RevitCarbonProcessor(CarbonProcessor):
"""Implementation of CarbonProcessor for Revit context."""
@@ -23,12 +26,23 @@ class RevitCarbonProcessor(CarbonProcessor):
print(material_type)
match material_type:
case MaterialType.CONCRETE:
case MaterialType.CONCRETE.value:
# TODO
pass
case MaterialType.WOOD:
case MaterialType.WOOD.value:
# TODO
pass
case MaterialType.METAL:
# TODO
case MaterialType.METAL.value:
material_quantities = model_object[PROPERTIES]["Material Quantities"]["FE_Steel"]
volume, density = material_quantities.volume.value, material_quantities.density.value
mass = volume * density
# Default to hot rolled
factor = metal_factors[MetalClass.HOT_ROLLED]
embodied_carbon = mass * factor
model_object[PROPERTIES]["Embodied Carbon Data"]["category"] = MetalClass.HOT_ROLLED
model_object[PROPERTIES]["Embodied Carbon Data"]["factor"] = factor
model_object[PROPERTIES]["Embodied Carbon Data"]["embodied_carbon"] = embodied_carbon
pass