diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 66e6a42635..d2b38f8258 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -49,6 +49,7 @@ if bpy is not None: operator.ValidateIfcFile, operator.ExportIFC, operator.ImportIFC, + operator.ProfileImportIFC, operator.ColourByClass, operator.ColourByAttribute, operator.ColourByPset, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index ed8f122da3..bf9ee7395d 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -138,6 +138,19 @@ class ImportIFC(bpy.types.Operator, ImportHelper): return {"FINISHED"} +class ProfileImportIFC(bpy.types.Operator): + bl_idname = "bim.profile_import_ifc" + bl_label = "Profile Import IFC" + + def execute(self, context): + import cProfile + import pstats + cProfile.run(f"import bpy; bpy.ops.import_ifc.bim(filepath='{bpy.context.scene.BIMProperties.ifc_file}')", "blender.prof") + p = pstats.Stats("blender.prof") + p.sort_stats("cumulative").print_stats(50) + return {"FINISHED"} + + class SelectGlobalId(bpy.types.Operator): bl_idname = "bim.select_global_id" bl_label = "Select GlobalId" diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index 61058397f5..91b23aa6cd 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -2541,6 +2541,9 @@ class BIM_PT_debug(Panel): scene = context.scene props = scene.BIMDebugProperties + row = layout.row() + row.operator("bim.profile_import_ifc") + row = layout.row() row.prop(props, "step_id", text="") row = layout.row()