From 531dc21d8e473ceb6e5470e1aad1bcaa65587e1d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jun 2023 21:07:37 +1000 Subject: [PATCH] New option to enable streaming IFC data into BBIM. To test, go into add-on preferences and enable "Should Stream". Then load an IFC-SPF in advanced mode, and disable "Load Geometry" before loading (the geometry iterator doesn't work with streaming). --- src/blenderbim/blenderbim/bim/ifc.py | 2 ++ src/blenderbim/blenderbim/bim/module/project/prop.py | 1 + src/blenderbim/blenderbim/bim/ui.py | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/ifc.py b/src/blenderbim/blenderbim/bim/ifc.py index 7e815a416f..0542b20512 100644 --- a/src/blenderbim/blenderbim/bim/ifc.py +++ b/src/blenderbim/blenderbim/bim/ifc.py @@ -132,6 +132,8 @@ class IfcStore: return elif extension.lower() == "ifcxml": IfcStore.file = ifcopenshell.file(ifcopenshell.ifcopenshell_wrapper.parse_ifcxml(path)) + elif bpy.context.scene.BIMProjectProperties.should_stream: + IfcStore.file = ifcopenshell.open(path, should_stream=True) else: IfcStore.file = ifcopenshell.open(path) diff --git a/src/blenderbim/blenderbim/bim/module/project/prop.py b/src/blenderbim/blenderbim/bim/module/project/prop.py index e4645945f7..66fc740292 100644 --- a/src/blenderbim/blenderbim/bim/module/project/prop.py +++ b/src/blenderbim/blenderbim/bim/module/project/prop.py @@ -148,6 +148,7 @@ class BIMProjectProperties(PropertyGroup): default="NONE", ) should_merge_materials_by_colour: BoolProperty(name="Merge Materials by Colour", default=False) + should_stream: BoolProperty(name="Stream Data From IFC-SPF (Only for advanced users)", default=True) should_load_geometry: BoolProperty(name="Load Geometry", default=True) should_use_native_meshes: BoolProperty(name="Native Meshes", default=False) should_clean_mesh: BoolProperty(name="Clean Meshes", default=True) diff --git a/src/blenderbim/blenderbim/bim/ui.py b/src/blenderbim/blenderbim/bim/ui.py index d930d4d20b..df9c0940b8 100644 --- a/src/blenderbim/blenderbim/bim/ui.py +++ b/src/blenderbim/blenderbim/bim/ui.py @@ -214,6 +214,8 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): row = layout.row() row.prop(context.scene.BIMProjectProperties, "should_disable_undo_on_save") + row = layout.row() + row.prop(context.scene.BIMProjectProperties, "should_stream") row = layout.row() row.prop(context.scene.BIMModelProperties, "occurrence_name_style")