From 66d0d003939284b9b86f7eea2a2c200b0467cc0c Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 29 Nov 2023 15:11:31 +0500 Subject: [PATCH] move all operators added to "add mesh" menu to common method in ui.py --- .../blenderbim/bim/module/model/__init__.py | 14 ++------------ src/blenderbim/blenderbim/bim/module/model/door.py | 4 ---- src/blenderbim/blenderbim/bim/module/model/grid.py | 4 ---- .../blenderbim/bim/module/model/railing.py | 4 ---- src/blenderbim/blenderbim/bim/module/model/roof.py | 4 ---- .../blenderbim/bim/module/model/stair.py | 5 ----- src/blenderbim/blenderbim/bim/module/model/ui.py | 12 ++++++++++++ .../blenderbim/bim/module/model/window.py | 4 ---- 8 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 47253d5047..502d70e4b3 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -210,12 +210,7 @@ def register(): bpy.types.Object.BIMDoorProperties = bpy.props.PointerProperty(type=prop.BIMDoorProperties) bpy.types.Object.BIMRailingProperties = bpy.props.PointerProperty(type=prop.BIMRailingProperties) bpy.types.Object.BIMRoofProperties = bpy.props.PointerProperty(type=prop.BIMRoofProperties) - bpy.types.VIEW3D_MT_mesh_add.append(grid.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.append(stair.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.append(window.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.append(door.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.append(railing.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.append(roof.add_object_button) + bpy.types.VIEW3D_MT_mesh_add.append(ui.add_mesh_object_menu) bpy.types.VIEW3D_MT_add.append(ui.add_menu) bpy.app.handlers.load_post.append(handler.load_post) wm = bpy.context.window_manager @@ -246,12 +241,7 @@ def unregister(): del bpy.types.Object.BIMRailingProperties del bpy.types.Object.BIMRoofProperties bpy.app.handlers.load_post.remove(handler.load_post) - bpy.types.VIEW3D_MT_mesh_add.remove(grid.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.remove(stair.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.remove(window.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.remove(door.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.remove(railing.add_object_button) - bpy.types.VIEW3D_MT_mesh_add.remove(roof.add_object_button) + bpy.types.VIEW3D_MT_mesh_add.remove(ui.add_mesh_object_menu) bpy.types.VIEW3D_MT_add.remove(ui.add_menu) wm = bpy.context.window_manager kc = wm.keyconfigs.addon diff --git a/src/blenderbim/blenderbim/bim/module/model/door.py b/src/blenderbim/blenderbim/bim/module/model/door.py index a00559afec..7cc7936cde 100644 --- a/src/blenderbim/blenderbim/bim/module/model/door.py +++ b/src/blenderbim/blenderbim/bim/module/model/door.py @@ -647,7 +647,3 @@ class RemoveDoor(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset) return {"FINISHED"} - - -def add_object_button(self, context): - self.layout.operator(BIM_OT_add_door.bl_idname, icon="PLUGIN") diff --git a/src/blenderbim/blenderbim/bim/module/model/grid.py b/src/blenderbim/blenderbim/bim/module/model/grid.py index 597cae860d..a00720c2ed 100644 --- a/src/blenderbim/blenderbim/bim/module/model/grid.py +++ b/src/blenderbim/blenderbim/bim/module/model/grid.py @@ -111,7 +111,3 @@ class BIM_OT_add_object(Operator, tool.Ifc.Operator): def _execute(self, context): add_object(self, context) return {"FINISHED"} - - -def add_object_button(self, context): - self.layout.operator(BIM_OT_add_object.bl_idname, icon="PLUGIN") diff --git a/src/blenderbim/blenderbim/bim/module/model/railing.py b/src/blenderbim/blenderbim/bim/module/model/railing.py index c7dc278fe5..fff6099297 100644 --- a/src/blenderbim/blenderbim/bim/module/model/railing.py +++ b/src/blenderbim/blenderbim/bim/module/model/railing.py @@ -537,7 +537,3 @@ class RemoveRailing(bpy.types.Operator, tool.Ifc.Operator): pset = tool.Pset.get_element_pset(element, "BBIM_Railing") ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset) return {"FINISHED"} - - -def add_object_button(self, context): - self.layout.operator(BIM_OT_add_railing.bl_idname, icon="PLUGIN") diff --git a/src/blenderbim/blenderbim/bim/module/model/roof.py b/src/blenderbim/blenderbim/bim/module/model/roof.py index c07236cc02..53b9d6dce3 100644 --- a/src/blenderbim/blenderbim/bim/module/model/roof.py +++ b/src/blenderbim/blenderbim/bim/module/model/roof.py @@ -803,7 +803,3 @@ class SetGableRoofEdgeAngle(bpy.types.Operator): tool.Blender.apply_bmesh(me, bm) return {"FINISHED"} - - -def add_object_button(self, context): - self.layout.operator(BIM_OT_add_roof.bl_idname, icon="PLUGIN") diff --git a/src/blenderbim/blenderbim/bim/module/model/stair.py b/src/blenderbim/blenderbim/bim/module/model/stair.py index ed21e820b5..52a5d847c0 100644 --- a/src/blenderbim/blenderbim/bim/module/model/stair.py +++ b/src/blenderbim/blenderbim/bim/module/model/stair.py @@ -340,8 +340,3 @@ class RemoveStair(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset) return {"FINISHED"} - - -def add_object_button(self, context): - self.layout.operator(BIM_OT_add_object.bl_idname, icon="PLUGIN") - self.layout.operator(BIM_OT_add_clever_stair.bl_idname, icon="PLUGIN") diff --git a/src/blenderbim/blenderbim/bim/module/model/ui.py b/src/blenderbim/blenderbim/bim/module/model/ui.py index b56ceab0b3..f3ecff8691 100644 --- a/src/blenderbim/blenderbim/bim/module/model/ui.py +++ b/src/blenderbim/blenderbim/bim/module/model/ui.py @@ -17,6 +17,7 @@ # along with BlenderBIM Add-on. If not, see . import bpy +import blenderbim.bim import blenderbim.tool as tool from bpy.types import Panel, Menu from blenderbim.bim.module.model.data import ( @@ -652,3 +653,14 @@ class BIM_MT_model(Menu): def add_menu(self, context): self.layout.menu("BIM_MT_model", icon="FILE_3D") + + +def add_mesh_object_menu(self, context): + self.layout.separator() + self.layout.operator("mesh.add_grid", icon_value=blenderbim.bim.icons["IFC"].icon_id) + self.layout.operator("mesh.add_stair", icon_value=blenderbim.bim.icons["IFC"].icon_id) + self.layout.operator("mesh.add_clever_stair", icon_value=blenderbim.bim.icons["IFC"].icon_id) + self.layout.operator("mesh.add_window", icon_value=blenderbim.bim.icons["IFC"].icon_id) + self.layout.operator("mesh.add_door", icon_value=blenderbim.bim.icons["IFC"].icon_id) + self.layout.operator("mesh.add_railing", icon_value=blenderbim.bim.icons["IFC"].icon_id) + self.layout.operator("mesh.add_roof", icon_value=blenderbim.bim.icons["IFC"].icon_id) diff --git a/src/blenderbim/blenderbim/bim/module/model/window.py b/src/blenderbim/blenderbim/bim/module/model/window.py index db204a7ac8..0843b20fe4 100644 --- a/src/blenderbim/blenderbim/bim/module/model/window.py +++ b/src/blenderbim/blenderbim/bim/module/model/window.py @@ -593,7 +593,3 @@ class RemoveWindow(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset) return {"FINISHED"} - - -def add_object_button(self, context): - self.layout.operator(BIM_OT_add_window.bl_idname, icon="PLUGIN")