From b035129788572dc12ae38f6cb5ca30188373c9b8 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 8 Jun 2023 16:00:21 +1000 Subject: [PATCH] Fix bug where you couldn't unassign inherited materials. --- .../blenderbim/bim/module/material/operator.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 756b2d8e9b..e3cf6fa02e 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -249,7 +249,14 @@ class UnassignMaterial(bpy.types.Operator, tool.Ifc.Operator): element = tool.Ifc.get_entity(obj) if element: material = ifcopenshell.util.element.get_material(element, should_inherit=False) - if "Usage" not in material.is_a(): + inherited_material = ifcopenshell.util.element.get_material(element, should_inherit=True) + if "Usage" in material.is_a(): + element_type = ifcopenshell.util.element.get_type(element) + ifcopenshell.api.run("material.unassign_material", tool.Ifc.get(), product=element_type) + elif not material and inherited_material: + element_type = ifcopenshell.util.element.get_type(element) + ifcopenshell.api.run("material.unassign_material", tool.Ifc.get(), product=element_type) + elif material: ifcopenshell.api.run("material.unassign_material", tool.Ifc.get(), product=element)