diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 3bac172d59..ba35fc694e 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -200,6 +200,7 @@ if bpy is not None: operator.RemoveDrawingStyleAttribute, operator.CopyPropertyToSelection, operator.CreateShapeFromStepId, + operator.SelectHighPolygonMeshes, prop.StrProperty, prop.Variable, prop.Role, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index af30143e20..270727834f 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -3963,3 +3963,24 @@ class CreateShapeFromStepId(bpy.types.Operator): obj = bpy.data.objects.new('Debug', mesh) bpy.context.scene.collection.objects.link(obj) return {'FINISHED'} + + +class SelectHighPolygonMeshes(bpy.types.Operator): + bl_idname = 'bim.select_high_polygon_meshes' + bl_label = 'Select High Polygon Meshes' + + def execute(self, context): + results = {} + for obj in bpy.data.objects: + if not isinstance(obj.data, bpy.types.Mesh) \ + or len(obj.data.polygons) < int(bpy.context.scene.BIMDebugProperties.number_of_polygons): + continue + try: + obj.select_set(True) + except: + # If it is not in the view layer + pass + relating_type = obj.BIMObjectProperties.relating_type + if relating_type: + relating_type.select_set(True) + return {'FINISHED'} diff --git a/src/ifcblenderexport/blenderbim/bim/prop.py b/src/ifcblenderexport/blenderbim/bim/prop.py index 300dc0be32..e87cff3ea9 100644 --- a/src/ifcblenderexport/blenderbim/bim/prop.py +++ b/src/ifcblenderexport/blenderbim/bim/prop.py @@ -1353,6 +1353,7 @@ class BIMObjectProperties(PropertyGroup): class BIMDebugProperties(PropertyGroup): step_id: IntProperty(name="STEP ID") + number_of_polygons: IntProperty(name="Number of Polygons") class BIMMaterialProperties(PropertyGroup): diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index 20cc614f85..f39c77c51d 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -2026,6 +2026,12 @@ class BIM_PT_debug(Panel): row = layout.row() row.operator('bim.create_shape_from_step_id') + row = layout.row() + row.prop(debug_props, 'number_of_polygons', text='') + row = layout.row() + row.operator('bim.select_high_polygon_meshes') + + def ifc_units(self, context): scene = context.scene