diff --git a/src/bonsai/bonsai/bim/handler.py b/src/bonsai/bonsai/bim/handler.py index 6cc0ec4e03..e24d984757 100644 --- a/src/bonsai/bonsai/bim/handler.py +++ b/src/bonsai/bonsai/bim/handler.py @@ -305,8 +305,6 @@ def load_post(scene): # After appending the workspace to ensure BIM viewport is affected. subscribe_to_viewport_shading_changes() - bpy.ops.bim.override_escape("INVOKE_DEFAULT") - # To improve usability for new users, we hijack the scene properties # tab. We override default scene properties panels with our own poll # to hide them unless the user has chosen to view Blender properties. diff --git a/src/bonsai/bonsai/bim/module/model/opening.py b/src/bonsai/bonsai/bim/module/model/opening.py index 12a38ad0c0..84e30bd9b9 100644 --- a/src/bonsai/bonsai/bim/module/model/opening.py +++ b/src/bonsai/bonsai/bim/module/model/opening.py @@ -1023,6 +1023,8 @@ class DecorationsHandler: batch.draw(shader) def __call__(self, context): + if not context.scene.BIMModelProperties.openings: + return self.addon_prefs = tool.Blender.get_addon_preferences() selected_elements_color = self.addon_prefs.decorator_color_selected unselected_elements_color = self.addon_prefs.decorator_color_unselected @@ -1038,6 +1040,12 @@ class DecorationsHandler: for opening in context.scene.BIMModelProperties.openings: obj = opening.obj + if context.scene.BIMGeometryProperties.representation_obj == obj: + # We are editing the representation of the opening : + for item in context.scene.BIMGeometryProperties.item_objs: + if item.obj.mode == "EDIT": + obj = item.obj + break if not obj: continue diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index e0e3eef00c..e0bda5fb07 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -500,7 +500,7 @@ class Model(bonsai.core.tool.Model): has_deleted_opening = True while has_deleted_opening: has_deleted_opening = False - for i, opening in enumerate(props.openings): + for i, opening in enumerate(list(props.openings)): if not opening.obj: props.openings.remove(i) has_deleted_opening = True