Build "select by class / type" feature in the UI panel

This commit is contained in:
Dion Moult
2019-10-08 22:09:39 +11:00
parent 202a4c0a08
commit 792c9b65b1
3 changed files with 35 additions and 0 deletions
@@ -16,6 +16,8 @@ from . import operator
classes = (
operator.AssignClass,
operator.SelectClass,
operator.SelectType,
operator.SelectDataDir,
operator.SelectSchemaDir,
operator.ExportIFC,
@@ -64,6 +64,35 @@ class AssignClass(bpy.types.Operator):
del(object['IfcObjectType'])
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):
bl_idname = "bim.select_data_dir"
bl_label = "Select Data Directory"
+4
View File
@@ -70,6 +70,10 @@ class BIMPanel(bpy.types.Panel):
row = layout.row()
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):
bl_label = "Model View Definitions"
bl_idname = "mvd.panel"