diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index c130fc2d7b..f2d8bce23b 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -257,6 +257,7 @@ class IfcImporter: self.place_objects_in_collections() self.profile_code("Place objects in collections") self.setup_arrays() + self.setup_aggregates() self.profile_code("Setup arrays") tool.Project.load_linked_models_from_ifc() self.profile_code("Load linked models") @@ -1118,6 +1119,16 @@ class IfcImporter: tool.Blender.Modifier.Array.set_children_lock_state(element, i, True) tool.Blender.Modifier.Array.constrain_children_to_parent(element) + def setup_aggregates(self): + elements = set(self.file.by_type("IfcElement")) + for element in elements: + parts = ifcopenshell.util.element.get_parts(element) + if parts: + relating_obj = tool.Ifc.get_object(element) + if relating_obj: + tool.Aggregate.constrain_parts_to_aggregate(relating_obj) + + def lock_scales(self) -> None: elements = set(self.file.by_type("IfcProduct")) while elements: