Fix #4504. Extract CAD layers when linking in models.

This commit is contained in:
Dion Moult
2024-04-05 15:03:47 +11:00
parent f72604052b
commit a12c732d0f
@@ -124,6 +124,7 @@ class Patcher:
elif not isinstance(value, str):
value = str(value)
properties.append([i, pset_name, prop_name, value])
material = ifcopenshell.util.element.get_material(element, should_skip_usage=True)
if material:
name = getattr(material, "Name", getattr(material, "LayerSetName", None)) or "Unnamed"
@@ -155,6 +156,10 @@ class Patcher:
if getattr(material, "Category"):
properties.append([i, "IFC Material", f"Material {idx + 1} Category", item.material.Category])
layers = ifcopenshell.util.element.get_layers(element)
for idx, layer in enumerate(layers):
properties.append([i, "IFC Presentation Layer Assignment", f"Layer {idx + 1}", layer.Name])
relating_type = ifcopenshell.util.element.get_type(element)
if relating_type and relating_type != element:
relationships.append([i, "IfcRelDefinesByType", id_map[relating_type.id()]])