From fdaf059c608991c0c636c1599cef83b2a089fa39 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 5 Jul 2024 13:49:45 +0500 Subject: [PATCH] Fix bug duplicating and editing materials #4843 It was giving errors trying since ifc materials are no longer to connect to the blender materials. --- .../blenderbim/bim/module/material/operator.py | 6 ------ src/blenderbim/blenderbim/core/material.py | 1 - src/blenderbim/blenderbim/core/tool.py | 1 - src/blenderbim/blenderbim/tool/material.py | 13 ------------- 4 files changed, 21 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index b446cb98af..04dd5bbffd 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -148,15 +148,9 @@ class DuplicateMaterial(bpy.types.Operator, tool.Ifc.Operator): material = tool.Ifc.get().by_id(self.material) new = tool.Ifc.run("material.copy_material", material=material) - blender_material = tool.Ifc.get_object(material) - new_blender = blender_material.copy() - new_blender.use_fake_user = True - tool.Ifc.link(new, new_blender) - if not new.is_a("IfcMaterialList"): name = new[0] + " Copy" new[0] = name - new_blender.name = name material_prop_purge() bpy.ops.bim.load_materials() diff --git a/src/blenderbim/blenderbim/core/material.py b/src/blenderbim/blenderbim/core/material.py index 7987f2517d..8181b74eab 100644 --- a/src/blenderbim/blenderbim/core/material.py +++ b/src/blenderbim/blenderbim/core/material.py @@ -88,7 +88,6 @@ def enable_editing_material(material_tool: tool.Material, material: ifcopenshell def edit_material(ifc: tool.Ifc, material_tool: tool.Material, material: ifcopenshell.entity_instance) -> None: attributes = material_tool.get_material_attributes() ifc.run("material.edit_material", material=material, attributes=attributes) - material_tool.sync_blender_material_name(material) material_tool.disable_editing_material() material_type = material_tool.get_active_material_type() material_tool.import_material_definitions(material_type) diff --git a/src/blenderbim/blenderbim/core/tool.py b/src/blenderbim/blenderbim/core/tool.py index c8ca87e744..1f3893cb2a 100644 --- a/src/blenderbim/blenderbim/core/tool.py +++ b/src/blenderbim/blenderbim/core/tool.py @@ -507,7 +507,6 @@ class Material: def is_material_used_in_sets(cls, material): pass def load_material_attributes(cls, material): pass def replace_material_with_material_profile(cls, element): pass - def sync_blender_material_name(cls, material): pass @interface diff --git a/src/blenderbim/blenderbim/tool/material.py b/src/blenderbim/blenderbim/tool/material.py index 18d1ed9526..89ce7f4db6 100644 --- a/src/blenderbim/blenderbim/tool/material.py +++ b/src/blenderbim/blenderbim/tool/material.py @@ -263,19 +263,6 @@ class Material(blenderbim.core.tool.Material): objects = [tool.Ifc.get_object(e) for e in elements] tool.Geometry.reload_representation(objects) - @classmethod - def sync_blender_material_name(cls, material: ifcopenshell.entity_instance) -> None: - name = material.Name or "Unnamed" - obj = tool.Ifc.get_object(material) - if obj: - obj.name = name - style = tool.Style.get_style(obj) - if style: - style.Name = name - obj = tool.Ifc.get_object(style) - if obj: - obj.name = name - @classmethod def get_style(cls, material: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]: for material_representation in material.HasRepresentation: