From 745709c56a3cc0cff69b05f6f49f464b1a7982a6 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Jan 2023 16:46:23 +1100 Subject: [PATCH] Handle orphaned spatial elements when loading projects --- src/blenderbim/blenderbim/bim/import_ifc.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 95fca6d0f9..84bcdadbb7 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -1357,6 +1357,13 @@ class IfcImporter: def create_spatial_decomposition_collections(self): for rel_aggregate in self.project["ifc"].IsDecomposedBy or []: self.create_spatial_decomposition_collection(self.project["blender"], rel_aggregate.RelatedObjects) + + # Invalid IFCs may have orphaned spatial structure elements. + orphaned_spaces = [e for e in self.spatial_elements if e.GlobalId not in self.collections] + while orphaned_spaces: + self.create_spatial_decomposition_collection(self.project["blender"], orphaned_spaces) + orphaned_spaces = [e for e in self.spatial_elements if e.GlobalId not in self.collections] + self.create_views_collection() self.create_type_collection()