From 875afd69d58d8966b81865adf221b55197edcb26 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 8 May 2024 12:55:59 +0500 Subject: [PATCH] skip objects without placements importing containers It seems that IFC doesn't specify that IfcRelAggregates.RelatedObjects should necessary have a placement. E.g. FreeCAD is using IfcGroups in RelatedObjects to store hierarchy in IFC. Example - https://community.osarch.org/discussion/2144/object-information-spatial-container --- src/blenderbim/blenderbim/tool/spatial.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/blenderbim/blenderbim/tool/spatial.py b/src/blenderbim/blenderbim/tool/spatial.py index ffb886ce78..68c1d8c0e8 100644 --- a/src/blenderbim/blenderbim/tool/spatial.py +++ b/src/blenderbim/blenderbim/tool/spatial.py @@ -111,6 +111,9 @@ class Spatial(blenderbim.core.tool.Spatial): for rel in parent.IsDecomposedBy or []: related_objects = [] for element in rel.RelatedObjects: + # skip objects without placements + if not element.is_a("IfcProduct"): + continue related_objects.append((element, ifcopenshell.util.placement.get_storey_elevation(element))) related_objects = sorted(related_objects, key=lambda e: e[1]) for element, _ in related_objects: