From 2c531501c3b839da8d59c7e7b752f12a6f8c9657 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 25 Jan 2025 16:36:57 +1100 Subject: [PATCH] Fix #5614. Fix bug where removing an object that had voids showing didn't also remove the voids. --- src/bonsai/bonsai/bim/module/geometry/operator.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index cbeba7f6fc..e56a9d18b5 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -735,6 +735,17 @@ class OverrideDelete(bpy.types.Operator): else: bpy.data.objects.remove(obj) + while True: + has_removed_opening = False + openings = context.scene.BIMModelProperties.openings + for i, opening in enumerate(openings): + if not (element := tool.Ifc.get_entity(opening.obj)): + has_removed_opening = True + bpy.data.objects.remove(opening.obj) + context.scene.BIMModelProperties.openings.remove(i) + if not has_removed_opening: + break + if self.is_batch: old_file = tool.Ifc.get() old_file.end_transaction()