diff --git a/src/blenderbim/blenderbim/bim/module/cad/__init__.py b/src/blenderbim/blenderbim/bim/module/cad/__init__.py index a053e701c2..217528a574 100644 --- a/src/blenderbim/blenderbim/bim/module/cad/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/cad/__init__.py @@ -37,7 +37,7 @@ classes = ( def register(): if not bpy.app.background: - bpy.utils.register_tool(workspace.CadTool, after={"builtin.transform"}, separator=True, group=True) + bpy.utils.register_tool(workspace.CadTool, after={"builtin.transform"}, separator=True, group=False) bpy.types.Scene.BIMCadProperties = bpy.props.PointerProperty(type=prop.BIMCadProperties) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 1c8f80fdd2..370c99793e 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -194,15 +194,18 @@ addon_keymaps = [] def register(): if not bpy.app.background: - bpy.utils.register_tool(workspace.WallTool, after={"builtin.transform"}, separator=True, group=False) + bpy.utils.register_tool(workspace.WallTool, after={"bim.explore_tool"}, separator=True, group=False) bpy.utils.register_tool(workspace.SlabTool, after={"bim.wall_tool"}, separator=False, group=False) bpy.utils.register_tool(workspace.DoorTool, after={"bim.slab_tool"}, separator=False, group=False) bpy.utils.register_tool(workspace.WindowTool, after={"bim.door_tool"}, separator=False, group=False) bpy.utils.register_tool(workspace.ColumnTool, after={"bim.window_tool"}, separator=False, group=False) bpy.utils.register_tool(workspace.BeamTool, after={"bim.column_tool"}, separator=False, group=False) - bpy.utils.register_tool(workspace.DuctTool, after={"bim.beam_tool"}, separator=False, group=False) + bpy.utils.register_tool(workspace.BimTool, after={"bim.beam_tool"}, separator=False, group=False) + bpy.utils.register_tool(workspace.DuctTool, after={"bim.beam_tool"}, separator=False, group=True) bpy.utils.register_tool(workspace.PipeTool, after={"bim.duct_tool"}, separator=False, group=False) - bpy.utils.register_tool(workspace.BimTool, after={"bim.pipe_tool"}, separator=False, group=False) + bpy.utils.register_tool(workspace.CableCarrierTool, after={"bim.pipe_tool"}, separator=False, group=False) + bpy.utils.register_tool(workspace.CableTool, after={"bim.cable_carrier_tool"}, separator=False, group=False) + bpy.types.Scene.BIMModelProperties = bpy.props.PointerProperty(type=prop.BIMModelProperties) bpy.types.Object.BIMArrayProperties = bpy.props.PointerProperty(type=prop.BIMArrayProperties) bpy.types.Object.BIMStairProperties = bpy.props.PointerProperty(type=prop.BIMStairProperties) @@ -211,6 +214,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(ui.add_mesh_object_menu) bpy.types.VIEW3D_MT_add.append(ui.add_menu) bpy.app.handlers.load_post.append(handler.load_post) @@ -232,6 +236,8 @@ def unregister(): bpy.utils.unregister_tool(workspace.BeamTool) bpy.utils.unregister_tool(workspace.DuctTool) bpy.utils.unregister_tool(workspace.PipeTool) + bpy.utils.unregister_tool(workspace.CableCarrierTool) + bpy.utils.unregister_tool(workspace.CableTool) bpy.utils.unregister_tool(workspace.BimTool) del bpy.types.Scene.BIMModelProperties del bpy.types.Object.BIMArrayProperties diff --git a/src/blenderbim/blenderbim/bim/module/model/ops.authoring.cable.dat b/src/blenderbim/blenderbim/bim/module/model/ops.authoring.cable.dat new file mode 100644 index 0000000000..1dfb3a55f9 Binary files /dev/null and b/src/blenderbim/blenderbim/bim/module/model/ops.authoring.cable.dat differ diff --git a/src/blenderbim/blenderbim/bim/module/model/ops.authoring.cablecarrier.dat b/src/blenderbim/blenderbim/bim/module/model/ops.authoring.cablecarrier.dat new file mode 100644 index 0000000000..fb22227dfc Binary files /dev/null and b/src/blenderbim/blenderbim/bim/module/model/ops.authoring.cablecarrier.dat differ diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index 43b1fbf5b6..100d59cb5d 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -176,6 +176,21 @@ class DuctTool(BimTool): BimToolUI.draw(context, layout, ifc_element_type=cls.ifc_element_type) +class CableCarrierTool(BimTool): + bl_space_type = "VIEW_3D" + bl_context_mode = "OBJECT" + bl_idname = "bim.cable_carrier_tool" + bl_label = "Create Cable Carrier" + bl_description = "Create and edit cable carriers" + bl_icon = os.path.join(os.path.dirname(__file__), "ops.authoring.cablecarrier") + bl_widget = None + ifc_element_type = "IfcCableCarrierSegmentType" + + @classmethod + def draw_settings(cls, context, layout, ws_tool): + BimToolUI.draw(context, layout, ifc_element_type=cls.ifc_element_type) + + class PipeTool(BimTool): bl_space_type = "VIEW_3D" bl_context_mode = "OBJECT" @@ -191,6 +206,21 @@ class PipeTool(BimTool): BimToolUI.draw(context, layout, ifc_element_type=cls.ifc_element_type) +class CableTool(BimTool): + bl_space_type = "VIEW_3D" + bl_context_mode = "OBJECT" + bl_idname = "bim.cable_tool" + bl_label = "Create Cable" + bl_description = "Create and edit cables" + bl_icon = os.path.join(os.path.dirname(__file__), "ops.authoring.cable") + bl_widget = None + ifc_element_type = "IfcCableSegmentType" + + @classmethod + def draw_settings(cls, context, layout, ws_tool): + BimToolUI.draw(context, layout, ifc_element_type=cls.ifc_element_type) + + def add_layout_hotkey_operator(layout, text, hotkey, description): modifiers = { "A": "EVENT_ALT",