mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-24 00:07:53 +00:00
Build "select by class / type" feature in the UI panel
This commit is contained in:
@@ -16,6 +16,8 @@ from . import operator
|
|||||||
|
|
||||||
classes = (
|
classes = (
|
||||||
operator.AssignClass,
|
operator.AssignClass,
|
||||||
|
operator.SelectClass,
|
||||||
|
operator.SelectType,
|
||||||
operator.SelectDataDir,
|
operator.SelectDataDir,
|
||||||
operator.SelectSchemaDir,
|
operator.SelectSchemaDir,
|
||||||
operator.ExportIFC,
|
operator.ExportIFC,
|
||||||
|
|||||||
@@ -64,6 +64,35 @@ class AssignClass(bpy.types.Operator):
|
|||||||
del(object['IfcObjectType'])
|
del(object['IfcObjectType'])
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
class SelectClass(bpy.types.Operator):
|
||||||
|
bl_idname = 'bim.select_class'
|
||||||
|
bl_label = 'Select IFC Class'
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
for object in bpy.context.visible_objects:
|
||||||
|
if '/' in object.name \
|
||||||
|
and object.name[0:3] == 'Ifc' \
|
||||||
|
and object.name.split('/')[0] == bpy.context.scene.BIMProperties.ifc_class:
|
||||||
|
object.select_set(True)
|
||||||
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
class SelectType(bpy.types.Operator):
|
||||||
|
bl_idname = 'bim.select_type'
|
||||||
|
bl_label = 'Select IFC Type'
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
for object in bpy.context.visible_objects:
|
||||||
|
if '/' in object.name \
|
||||||
|
and object.name[0:3] == 'Ifc' \
|
||||||
|
and object.name.split('/')[0] == bpy.context.scene.BIMProperties.ifc_class \
|
||||||
|
and 'IfcPredefinedType' in object.keys() \
|
||||||
|
and object['IfcPredefinedType'] == bpy.context.scene.BIMProperties.ifc_predefined_type:
|
||||||
|
if bpy.context.scene.BIMProperties.ifc_predefined_type != 'USERDEFINED':
|
||||||
|
object.select_set(True)
|
||||||
|
elif object['IfcObjectType'] == bpy.context.scene.BIMProperties.ifc_userdefined_type:
|
||||||
|
object.select_set(True)
|
||||||
|
return {'FINISHED'}
|
||||||
|
|
||||||
class SelectDataDir(bpy.types.Operator):
|
class SelectDataDir(bpy.types.Operator):
|
||||||
bl_idname = "bim.select_data_dir"
|
bl_idname = "bim.select_data_dir"
|
||||||
bl_label = "Select Data Directory"
|
bl_label = "Select Data Directory"
|
||||||
|
|||||||
@@ -70,6 +70,10 @@ class BIMPanel(bpy.types.Panel):
|
|||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.operator("bim.assign_class")
|
row.operator("bim.assign_class")
|
||||||
|
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.operator("bim.select_class")
|
||||||
|
row.operator("bim.select_type")
|
||||||
|
|
||||||
class MVDPanel(bpy.types.Panel):
|
class MVDPanel(bpy.types.Panel):
|
||||||
bl_label = "Model View Definitions"
|
bl_label = "Model View Definitions"
|
||||||
bl_idname = "mvd.panel"
|
bl_idname = "mvd.panel"
|
||||||
|
|||||||
Reference in New Issue
Block a user