From 60ccd3ab7e03766409221a3aed777243e789eed2 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Thu, 2 Jul 2026 20:16:04 -0500 Subject: [PATCH] Add ALT+Click unhide to select_group_elements Co-Authored-By: Claude Fable 5 --- src/bonsai/bonsai/bim/module/group/operator.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/group/operator.py b/src/bonsai/bonsai/bim/module/group/operator.py index adea9ee48c..5318630832 100644 --- a/src/bonsai/bonsai/bim/module/group/operator.py +++ b/src/bonsai/bonsai/bim/module/group/operator.py @@ -196,18 +196,23 @@ class SelectGroupElements(bpy.types.Operator): bl_label = "Select Group elements" bl_options = {"REGISTER", "UNDO"} bl_description = ( - "Select objects assigned to the selected group and all nested groups\nALT + CLICK to exclude children" + "Select objects assigned to the selected group and all nested groups" + "\nCTRL + CLICK to exclude children" + "\nALT + CLICK to also unhide hidden objects (viewport and local hide)" ) group: bpy.props.IntProperty() is_recursive: bpy.props.BoolProperty(name="Is Recursive", default=True, options={"SKIP_SAVE"}) + should_unhide: bpy.props.BoolProperty(default=False, options={"SKIP_SAVE"}) def invoke(self, context, event): - self.is_recursive = not event.alt + self.is_recursive = not event.ctrl + self.should_unhide = event.alt return self.execute(context) def execute(self, context): tool.Spatial.select_products( - ifcopenshell.util.element.get_grouped_by(tool.Ifc.get().by_id(self.group), is_recursive=self.is_recursive) + ifcopenshell.util.element.get_grouped_by(tool.Ifc.get().by_id(self.group), is_recursive=self.is_recursive), + unhide=self.should_unhide, ) return {"FINISHED"}