mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-17 14:02:27 +00:00
Fix #4504. Extract CAD layers when linking in models.
This commit is contained in:
@@ -124,6 +124,7 @@ class Patcher:
|
|||||||
elif not isinstance(value, str):
|
elif not isinstance(value, str):
|
||||||
value = str(value)
|
value = str(value)
|
||||||
properties.append([i, pset_name, prop_name, value])
|
properties.append([i, pset_name, prop_name, value])
|
||||||
|
|
||||||
material = ifcopenshell.util.element.get_material(element, should_skip_usage=True)
|
material = ifcopenshell.util.element.get_material(element, should_skip_usage=True)
|
||||||
if material:
|
if material:
|
||||||
name = getattr(material, "Name", getattr(material, "LayerSetName", None)) or "Unnamed"
|
name = getattr(material, "Name", getattr(material, "LayerSetName", None)) or "Unnamed"
|
||||||
@@ -155,6 +156,10 @@ class Patcher:
|
|||||||
if getattr(material, "Category"):
|
if getattr(material, "Category"):
|
||||||
properties.append([i, "IFC Material", f"Material {idx + 1} Category", item.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)
|
relating_type = ifcopenshell.util.element.get_type(element)
|
||||||
if relating_type and relating_type != element:
|
if relating_type and relating_type != element:
|
||||||
relationships.append([i, "IfcRelDefinesByType", id_map[relating_type.id()]])
|
relationships.append([i, "IfcRelDefinesByType", id_map[relating_type.id()]])
|
||||||
|
|||||||
Reference in New Issue
Block a user