From 46bc688f26d8552ca241f900705c70975e207676 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 8 May 2021 08:57:33 +1000 Subject: [PATCH] Fix bug where empty material slots caused errors --- src/blenderbim/blenderbim/bim/module/geometry/operator.py | 2 +- src/blenderbim/blenderbim/bim/module/root/operator.py | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 0047d012eb..3c41163b54 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -122,7 +122,7 @@ class AddRepresentation(bpy.types.Operator): [ bpy.ops.bim.add_style(material=s.material.name) for s in obj.material_slots - if not s.material.BIMMaterialProperties.ifc_style_id + if s.material and not s.material.BIMMaterialProperties.ifc_style_id ] ifcopenshell.api.run( diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 19e6f07a7d..f345282471 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -76,7 +76,7 @@ class ReassignClass(bpy.types.Operator): class AssignClass(bpy.types.Operator): bl_idname = "bim.assign_class" bl_label = "Assign IFC Class" - bl_options = {'REGISTER', 'UNDO'} + bl_options = {"REGISTER", "UNDO"} obj: bpy.props.StringProperty() ifc_class: bpy.props.StringProperty() predefined_type: bpy.props.StringProperty() @@ -92,10 +92,6 @@ class AssignClass(bpy.types.Operator): elif self.predefined_type == "": predefined_type = None for obj in objects: - if obj.data and hasattr(obj.data, "materials"): - for material in obj.data.materials: - if not material.BIMMaterialProperties.ifc_style_id: - bpy.ops.bim.add_style(material=material.name) self.assign_class(context, obj) return {"FINISHED"}