feat: mutating object

This commit is contained in:
Björn Steinhagen
2025-02-13 17:32:43 +01:00
parent 7f4610ff42
commit 241c420655
2 changed files with 29 additions and 5 deletions
@@ -30,9 +30,6 @@ class RevitMaterialProcessor(MaterialProcessor):
# Volume has already been checked for
volume = material_data[VOLUME][VALUE]
if object_id == "a89ce8ffee4bded01836d46f0e26bf55":
print("Now pay attention")
try:
if STRUCTURAL_ASSET in material_data:
return self._high_quality_strategy.process(
+29 -2
View File
@@ -79,8 +79,6 @@ class RevitModel(Model):
try:
# Process each material if element passed validation
# TODO: Project 2427 is an interesting one with compound materials
# TODO: Checkout object fefcc95c2f0ecd28a49ecdd7764e2d79. Worth skipping if volume = 0?
for material_name, material_data in material_quantities.items():
processed_material = self._material_processor.process(
object_id, material_data, level, type_name
@@ -92,6 +90,15 @@ class RevitModel(Model):
message="Carbon calculations completed successfully for this element.",
)
model_object[PROPERTIES]["Embodied Carbon Data"] = vars(
processed_material
)
if getattr(processed_material, "type") == "Concrete":
model_object[PROPERTIES]["Embodied Carbon Data"][
"element"
] = self._categorize(type_name)
except Exception as e:
# Log any processing errors that occur
self._logger.log_error(object_id, "Material Processing Error", str(e))
@@ -143,3 +150,23 @@ class RevitModel(Model):
def _get_name(node: Any) -> str:
"""Safely get name from node, with fallback"""
return getattr(node, NAME, "Unknown")
@staticmethod
def _categorize(type_name: str) -> str:
searchable_string = type_name.lower()
if (
"floor" in searchable_string
or "stair" in searchable_string
or "slab edges" in searchable_string
):
return "Slabs"
elif "wall" in searchable_string:
return "Walls"
elif "column" in searchable_string:
return "Columns"
elif "framing" in searchable_string or "beam" in searchable_string:
return "Beam"
elif "foundation" in searchable_string:
return "Foundations"
else:
raise ValueError(f"{type_name} not accounted for.")