From 951b8e2b15568a7fccdb080e1b8b72bd90babbf5 Mon Sep 17 00:00:00 2001 From: Sigma Dimensions <79010126+myoualid@users.noreply.github.com> Date: Tue, 9 May 2023 14:24:31 +0100 Subject: [PATCH] Convenient Pie Menu shortcut to aggregate selected objects to active object --- .../blenderbim/bim/module/model/__init__.py | 1 + .../blenderbim/bim/module/model/pie.py | 18 ++++++++++++++++++ src/blenderbim/blenderbim/core/cost.py | 3 --- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 5a38a99e01..509df1ecde 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -126,6 +126,7 @@ classes = ( pie.OpenPieClass, pie.PieUpdateContainer, pie.PieAddOpening, + pie.PieAssignObjectAggregation, pie.VIEW3D_MT_PIE_bim, pie.VIEW3D_MT_PIE_bim_class, sverchok_modifier.CreateNewSverchokGraph, diff --git a/src/blenderbim/blenderbim/bim/module/model/pie.py b/src/blenderbim/blenderbim/bim/module/model/pie.py index 1349485ea3..15e8c6bd10 100644 --- a/src/blenderbim/blenderbim/bim/module/model/pie.py +++ b/src/blenderbim/blenderbim/bim/module/model/pie.py @@ -19,6 +19,7 @@ import bpy import blenderbim.tool as tool import blenderbim.core.spatial +import blenderbim.core.aggregate from blenderbim.bim.ifc import IfcStore @@ -75,6 +76,22 @@ class PieUpdateContainer(bpy.types.Operator): break return {"FINISHED"} +class PieAssignObjectAggregation(bpy.types.Operator,tool.Ifc.Operator): + bl_idname = "bim.pie_assign_object_aggregation" + bl_label = "Assign Parts to Active Object" + bl_options = {"REGISTER", "UNDO"} + + def _execute(self, context): + for obj in context.selected_objects: + if obj == context.active_object: + continue + blenderbim.core.aggregate.assign_object( + tool.Ifc, + tool.Aggregate, + tool.Collector, + relating_obj=context.active_object, + related_obj=obj, + ) class VIEW3D_MT_PIE_bim(bpy.types.Menu): bl_label = "Geometry" @@ -86,6 +103,7 @@ class VIEW3D_MT_PIE_bim(bpy.types.Menu): pie.operator("bim.pie_add_opening") pie.operator("bim.pie_update_container") pie.operator("bim.open_pie_class", text="Assign IFC Class") + pie.operator("bim.pie_assign_object_aggregation", text ="Assign Aggregation") class VIEW3D_MT_PIE_bim_class(bpy.types.Menu): diff --git a/src/blenderbim/blenderbim/core/cost.py b/src/blenderbim/blenderbim/core/cost.py index 3290580504..94f911099f 100644 --- a/src/blenderbim/blenderbim/core/cost.py +++ b/src/blenderbim/blenderbim/core/cost.py @@ -268,9 +268,6 @@ def highlight_product_cost_item(spatial, cost, cost_item): else: return "Cost schedule is not active" -def toggle_cost_item_parent(cost, cost_item): - cost.toggle_cost_item_parent(cost_item) - def change_parent_cost_item(ifc, cost, new_parent): cost_item = cost.get_active_cost_item()