From 5eef433abffd8ef1174f678f74d29db1ce942144 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sun, 31 May 2026 07:25:58 -0500 Subject: [PATCH] Deselect geometry after exiting item mode in aggregate context Following the pattern from 586f9be077, deselect the active object after exiting item mode so Tab continues to cycle cleanly. Also deselects parametric LAYER1/LAYER2 items that cannot be edited directly, avoiding the need to manually deselect before Tab-cycling out of aggregate mode. --- src/bonsai/bonsai/bim/module/geometry/operator.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index e7fa918d50..6f955ba6bf 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -2269,6 +2269,8 @@ class OverrideModeSetEdit(bpy.types.Operator, tool.Ifc.Operator): gprops = tool.Geometry.get_geometry_props() if gprops.representation_obj: tool.Geometry.disable_item_mode() + if active_obj := bpy.context.active_object: + active_obj.select_set(False) else: bonsai.core.aggregate.exit_aggregate_mode(tool.Aggregate) return {"FINISHED"} @@ -2355,6 +2357,7 @@ class OverrideModeSetEdit(bpy.types.Operator, tool.Ifc.Operator): and usage in ("LAYER1", "LAYER2") ): self.report({"INFO"}, f"Parametric {usage} elements cannot be edited directly") + obj.select_set(False) elif item.is_a("IfcSweptAreaSolid"): tool.Geometry.sync_item_positions() res = tool.Model.import_profile((profile := item.SweptArea), obj=obj)