From 02ebc805250d6afb20e91a8617aa8684d5aaffe6 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sun, 12 Nov 2023 12:39:44 -0600 Subject: [PATCH] closes #4006: automatically update the geometry of all the objects that have 'similar openings'. --- src/blenderbim/blenderbim/bim/module/model/opening.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/opening.py b/src/blenderbim/blenderbim/bim/module/model/opening.py index 6b22dd0a83..5e7579ce86 100644 --- a/src/blenderbim/blenderbim/bim/module/model/opening.py +++ b/src/blenderbim/blenderbim/bim/module/model/opening.py @@ -769,6 +769,7 @@ class EditOpenings(Operator, tool.Ifc.Operator): for opening in openings: similar_openings = [o for o in all_openings if o.ObjectPlacement == opening.ObjectPlacement] opening_obj = tool.Ifc.get_object(opening) + building_objs.add(obj) if opening_obj: if tool.Ifc.is_edited(opening_obj): tool.Geometry.run_geometry_update_representation(obj=opening_obj) @@ -776,9 +777,12 @@ class EditOpenings(Operator, tool.Ifc.Operator): blenderbim.core.geometry.edit_object_placement( tool.Ifc, tool.Geometry, tool.Surveyor, obj=opening_obj ) - for similar_opening in similar_openings: - similar_opening.ObjectPlacement = opening.ObjectPlacement - building_objs.add(obj) + for similar_opening in similar_openings: + similar_opening.ObjectPlacement = opening.ObjectPlacement + element = similar_opening.VoidsElements[0].RelatingBuildingElement + obj = tool.Ifc.get_object(element) + building_objs.add(obj) + building_objs.update(self.get_all_building_objects_of_similar_openings(opening)) tool.Ifc.unlink(element=opening, obj=opening_obj) bpy.data.objects.remove(opening_obj)