diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index caff816278..caf57879e2 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -1712,7 +1712,7 @@ class LoadLinkedProject(bpy.types.Operator): mesh.polygons.foreach_set("loop_total", loop_total) mesh.polygons.foreach_set("use_smooth", [0] * total_faces) - if material_ids.size > 0: + if material_ids.size > 0 and len(mesh.polygons) == len(material_ids): mesh.polygons.foreach_set("material_index", material_ids) mesh.update() diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py index 3b7f49de9c..f9fdc9727a 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py @@ -136,21 +136,21 @@ class Patcher: if material.is_a("IfcMaterial"): materials = [] elif material.is_a("IfcMaterialLayerSet"): - for idx, item in enumerate(material.MaterialLayers): + for idx, item in enumerate(material.MaterialLayers or []): material = item.Material properties.append([i, "IFC Material", f"Layer {idx + 1} Name", getattr(item, "Name", None)]) properties.append([i, "IFC Material", f"Layer {idx + 1} Material", material.Name]) if category := getattr(material, "Category", None): properties.append([i, "IFC Material", f"Layer {idx + 1} Category", category]) elif material.is_a("IfcMaterialProfileSet"): - for idx, item in enumerate(material.MaterialProfiles): + for idx, item in enumerate(material.MaterialProfiles or []): material = item.Material properties.append([i, "IFC Material", f"Profile {idx + 1} Name", item.Name]) properties.append([i, "IFC Material", f"Profile {idx + 1} Material", material.Name]) if category := getattr(material, "Category", None): properties.append([i, "IFC Material", f"Profile {idx + 1} Category", category]) elif material.is_a("IfcMaterialConstituentSet"): - for idx, item in enumerate(material.MaterialConstituents): + for idx, item in enumerate(material.MaterialConstituents or []): material = item.Material properties.append([i, "IFC Material", f"Constituent {idx + 1} Name", item.Name]) properties.append([i, "IFC Material", f"Constituent {idx + 1} Material", material.Name])