From e3c23072a57017f74c6ba93f9aa8de51046d2505 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 12 Sep 2024 18:32:44 +0500 Subject: [PATCH] Hide edit mode for locked elements #5371 --- src/bonsai/bonsai/bim/module/geometry/data.py | 6 +++++- src/bonsai/bonsai/bim/module/spatial/prop.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/geometry/data.py b/src/bonsai/bonsai/bim/module/geometry/data.py index 5f84838e14..0c8ba8eec1 100644 --- a/src/bonsai/bonsai/bim/module/geometry/data.py +++ b/src/bonsai/bonsai/bim/module/geometry/data.py @@ -52,7 +52,11 @@ class ViewportData: ("OBJECT", "IFC Object Mode", "", "OBJECT_DATAMODE", 0), ("EDIT", "IFC Edit Mode", "", "EDITMODE_HLT", 1), ] - if not obj or not tool.Blender.is_editable(obj): + if ( + not obj + or not tool.Blender.is_editable(obj) + or ((element := tool.Ifc.get_entity(obj)) and tool.Geometry.is_locked(element)) + ): return obj_mode return mesh_modes diff --git a/src/bonsai/bonsai/bim/module/spatial/prop.py b/src/bonsai/bonsai/bim/module/spatial/prop.py index 6959f24992..161130b877 100644 --- a/src/bonsai/bonsai/bim/module/spatial/prop.py +++ b/src/bonsai/bonsai/bim/module/spatial/prop.py @@ -31,6 +31,7 @@ from bpy.props import ( CollectionProperty, ) import bonsai.tool as tool +import bonsai.bim.handler import bonsai.core.geometry import ifcopenshell import ifcopenshell.util.element @@ -125,6 +126,8 @@ def update_spatial_is_locked(self, context): tool.Geometry.lock_object(obj) else: tool.Geometry.unlock_object(obj) + # Need to update ViewportData.mode. + bonsai.bim.handler.refresh_ui_data() def update_spatial_is_visible(self: "BIMSpatialDecompositionProperties", context: bpy.types.Context) -> None: