mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 10:11:46 +00:00
New convenience button to add an empty for a type with no representation
This commit is contained in:
@@ -69,7 +69,7 @@ endif
|
|||||||
cp -r blenderbim/* dist/blenderbim/
|
cp -r blenderbim/* dist/blenderbim/
|
||||||
|
|
||||||
# Provides IfcOpenShell Python functionality
|
# Provides IfcOpenShell Python functionality
|
||||||
cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-$(PYNUMBER)-v0.6.0-0087fa8-$(PLATFORM)64.zip
|
cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-$(PYNUMBER)-v0.6.0-2f3c79a-$(PLATFORM)64.zip
|
||||||
cd dist/working && unzip ifcblender*
|
cd dist/working && unzip ifcblender*
|
||||||
cp -r dist/working/io_import_scene_ifc/ifcopenshell dist/blenderbim/libs/site/packages/
|
cp -r dist/working/io_import_scene_ifc/ifcopenshell dist/blenderbim/libs/site/packages/
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import bpy
|
|||||||
from . import handler, prop, ui, grid, product, wall, slab, stair, door, window, opening, pie, workspace
|
from . import handler, prop, ui, grid, product, wall, slab, stair, door, window, opening, pie, workspace
|
||||||
|
|
||||||
classes = (
|
classes = (
|
||||||
|
product.AddEmptyType,
|
||||||
product.AddTypeInstance,
|
product.AddTypeInstance,
|
||||||
product.AlignProduct,
|
product.AlignProduct,
|
||||||
product.DynamicallyVoidProduct,
|
product.DynamicallyVoidProduct,
|
||||||
@@ -41,6 +42,7 @@ def register():
|
|||||||
bpy.types.VIEW3D_MT_mesh_add.append(door.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.append(door.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.append(window.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.append(window.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.append(opening.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.append(opening.add_object_button)
|
||||||
|
bpy.types.VIEW3D_MT_add.append(product.add_empty_type_button)
|
||||||
bpy.app.handlers.load_post.append(handler.load_post)
|
bpy.app.handlers.load_post.append(handler.load_post)
|
||||||
wm = bpy.context.window_manager
|
wm = bpy.context.window_manager
|
||||||
if wm.keyconfigs.addon:
|
if wm.keyconfigs.addon:
|
||||||
@@ -60,6 +62,7 @@ def unregister():
|
|||||||
bpy.types.VIEW3D_MT_mesh_add.remove(door.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.remove(door.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.remove(window.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.remove(window.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.remove(opening.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.remove(opening.add_object_button)
|
||||||
|
bpy.types.VIEW3D_MT_add.remove(product.add_empty_type_button)
|
||||||
wm = bpy.context.window_manager
|
wm = bpy.context.window_manager
|
||||||
kc = wm.keyconfigs.addon
|
kc = wm.keyconfigs.addon
|
||||||
if kc:
|
if kc:
|
||||||
|
|||||||
@@ -8,6 +8,33 @@ from . import wall, slab, profile
|
|||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from ifcopenshell.api.pset.data import Data as PsetData
|
from ifcopenshell.api.pset.data import Data as PsetData
|
||||||
from mathutils import Vector, Matrix
|
from mathutils import Vector, Matrix
|
||||||
|
from bpy_extras.object_utils import AddObjectHelper
|
||||||
|
|
||||||
|
|
||||||
|
class AddEmptyType(bpy.types.Operator, AddObjectHelper):
|
||||||
|
bl_idname = "bim.add_empty_type"
|
||||||
|
bl_label = "Add Empty Type"
|
||||||
|
bl_options = {"REGISTER", "UNDO"}
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
obj = bpy.data.objects.new("TYPEX", None)
|
||||||
|
for project in [c for c in context.view_layer.layer_collection.children if "IfcProject" in c.name]:
|
||||||
|
if not [c for c in project.children if "Types" in c.name]:
|
||||||
|
types = bpy.data.collections.new("Types")
|
||||||
|
project.collection.children.link(types)
|
||||||
|
for collection in [c for c in project.children if "Types" in c.name]:
|
||||||
|
collection.collection.objects.link(obj)
|
||||||
|
break
|
||||||
|
break
|
||||||
|
context.scene.BIMRootProperties.ifc_product = "IfcElementType"
|
||||||
|
bpy.ops.object.select_all(action="DESELECT")
|
||||||
|
context.view_layer.objects.active = obj
|
||||||
|
obj.select_set(True)
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
|
def add_empty_type_button(self, context):
|
||||||
|
self.layout.operator(AddEmptyType.bl_idname, icon="FILE_3D")
|
||||||
|
|
||||||
|
|
||||||
class AddTypeInstance(bpy.types.Operator):
|
class AddTypeInstance(bpy.types.Operator):
|
||||||
|
|||||||
Reference in New Issue
Block a user