From fb02ac34d4e452dede4d4922bf14fd3c859d692a Mon Sep 17 00:00:00 2001 From: Sigma Dimensions <79010126+myoualid@users.noreply.github.com> Date: Wed, 14 Jun 2023 09:35:54 +0100 Subject: [PATCH] Enable selecting group elements --- .../blenderbim/bim/module/group/__init__.py | 1 + .../blenderbim/bim/module/group/operator.py | 16 ++++++++++++++++ src/blenderbim/blenderbim/bim/module/group/ui.py | 1 + 3 files changed, 18 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/group/__init__.py b/src/blenderbim/blenderbim/bim/module/group/__init__.py index 8dda1b596b..3f51d01082 100644 --- a/src/blenderbim/blenderbim/bim/module/group/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/group/__init__.py @@ -33,6 +33,7 @@ classes = ( operator.ToggleGroup, operator.UnassignGroup, operator.UpdateGroup, + operator.SelectGroupElements, prop.ExpandedGroups, prop.Group, prop.BIMGroupProperties, diff --git a/src/blenderbim/blenderbim/bim/module/group/operator.py b/src/blenderbim/blenderbim/bim/module/group/operator.py index 2e04c960fa..27aa6ec8e7 100644 --- a/src/blenderbim/blenderbim/bim/module/group/operator.py +++ b/src/blenderbim/blenderbim/bim/module/group/operator.py @@ -275,3 +275,19 @@ class UpdateGroup(bpy.types.Operator, tool.Ifc.Operator): ) bpy.ops.bim.load_groups() return {"FINISHED"} + + +class SelectGroupElements(bpy.types.Operator): + bl_idname = "bim.select_group_elements" + bl_label = "Select Group elements" + bl_options = {"REGISTER", "UNDO"} + group: bpy.props.IntProperty() + + @classmethod + def poll(cls, context): + return bool(tool.Ifc.get() and context.active_object) + + def execute(self, context): + elements = tool.Drawing.get_group_elements(tool.Ifc.get().by_id(self.group)) + tool.Spatial.select_products(elements) + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/group/ui.py b/src/blenderbim/blenderbim/bim/module/group/ui.py index 16cf339f6e..874d239bf2 100644 --- a/src/blenderbim/blenderbim/bim/module/group/ui.py +++ b/src/blenderbim/blenderbim/bim/module/group/ui.py @@ -107,6 +107,7 @@ class BIM_PT_object_groups(Panel): for group in ObjectGroupsData.data["groups"]: row = self.layout.row(align=True) row.label(text=group["name"]) + row.operator("bim.select_group_elements", text="", icon="RESTRICT_SELECT_OFF").group = group["id"] op = row.operator("bim.unassign_group", text="", icon="X") op.group = group["id"]