From 9e67565c71bbe3d0ea45302674345f47572ed874 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Wed, 20 Sep 2023 08:54:04 -0500 Subject: [PATCH] Refresh aggregate from selecting a part --- .../blenderbim/bim/module/geometry/operator.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 952198aa10..0fe53c117a 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -1186,10 +1186,17 @@ class RefreshAggregate(bpy.types.Operator): selected_root_obj = context.selected_objects[0] selected_root_entity = tool.Ifc.get_entity(selected_root_obj) - if not selected_root_entity.is_a("IfcElementAssembly"): - self.report({"INFO"}, "Object is not IfcElementAssembly.") + if selected_root_entity.is_a("IfcElementAssembly"): + return + elif selected_root_entity.Decomposes: + if selected_root_entity.Decomposes[0].RelatingObject.is_a("IfcElementAssembly"): + selected_root_entity = selected_root_entity.Decomposes[0].RelatingObject + selected_root_obj = tool.Ifc.get_object(selected_root_entity) + else: + self.report({"INFO"}, "Object is not part of a IfcElementAssembly.") return {"FINISHED"} + pset = ifcopenshell.util.element.get_pset(selected_root_entity, "BBIM_Aggregate_Data") if not pset: self.report({"INFO"}, "Object is not part of an assembly aggregate.")