From a12c732d0f566b183efa73ccaa1ee9d7fb226ea2 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 5 Apr 2024 15:03:47 +1100 Subject: [PATCH] Fix #4504. Extract CAD layers when linking in models. --- src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py index ff4a146521..5a6820871c 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py @@ -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()]])