fix errors getting layer assignments in ifc2x3 #4330

This commit is contained in:
Andrej730
2024-02-16 16:01:09 +05:00
parent 8b360742a7
commit 16eba637f1
2 changed files with 14 additions and 2 deletions
+7 -1
View File
@@ -745,7 +745,13 @@ class Geometry(blenderbim.core.tool.Geometry):
consider_inverses = []
styled_item, colour, texture, layer = None, None, None, None
[consider_inverses.append(styled_item := t) for t in representation_item.StyledByItem]
[consider_inverses.append(layer := t) for t in representation_item.LayerAssignment]
# IFC2X3 is using LayerAssignments
for t in (
representation_item.LayerAssignment
if hasattr(representation_item, "LayerAssignment")
else representation_item.LayerAssignments
):
consider_inverses.append(layer := t)
# IfcTessellatedFaceSet
[consider_inverses.append(colour := t) for t in getattr(representation_item, "HasColours", [])]
[consider_inverses.append(texture := t) for t in getattr(representation_item, "HasTextures", [])]
@@ -47,7 +47,13 @@ class Usecase:
for subelement in self.file.traverse(self.settings["representation"]):
if subelement.is_a("IfcRepresentationItem"):
[styled_items.add(s) for s in subelement.StyledByItem or []]
[presentation_layer_assignments.add(s) for s in subelement.LayerAssignment]
# IFC2X3 is using LayerAssignments
for s in (
subelement.LayerAssignment
if hasattr(subelement, "LayerAssignment")
else subelement.LayerAssignments
):
presentation_layer_assignments.add(s)
# IfcTessellatedFaceSet inverses
[textures.add(t) for t in getattr(subelement, "HasTextures", []) or []]
[colours.add(t) for t in getattr(subelement, "HasColours", []) or []]