From 280466df53428fb392d0c12f578ac712706e2728 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 20 Nov 2020 23:31:52 +1100 Subject: [PATCH] Fix bug where a material wouldn't get assigned for multiple mapped representations --- .../blenderbim/bim/import_ifc.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/import_ifc.py b/src/ifcblenderexport/blenderbim/bim/import_ifc.py index 9dada52f0c..afb49d7c19 100644 --- a/src/ifcblenderexport/blenderbim/bim/import_ifc.py +++ b/src/ifcblenderexport/blenderbim/bim/import_ifc.py @@ -51,12 +51,13 @@ class MaterialCreator: hasattr(element, "RepresentationMaps") and not element.RepresentationMaps ): return - if self.mesh and self.mesh.name in self.parsed_meshes: - return self.parse_material(element) - if self.mesh: - self.parsed_meshes.append(self.mesh.name) - if self.mesh and self.parse_representations(element): + if not self.mesh: + return + if self.mesh.name in self.parsed_meshes: + return + self.parsed_meshes.append(self.mesh.name) + if self.parse_representations(element): self.assign_material_slots_to_faces(obj, self.mesh) def parse_representations(self, element): @@ -927,7 +928,6 @@ class IfcImporter: self.ifc_import_settings.logger.info("Creating object %s", element) - is_fresh_mesh = False if shape: # TODO: make names more meaningful mesh_name = f"mesh-{shape.geometry.id}" @@ -938,7 +938,6 @@ class IfcImporter: if mesh is None: mesh = self.create_mesh(element, shape) self.meshes[mesh_name] = mesh - is_fresh_mesh = True else: mesh = None @@ -951,8 +950,7 @@ class IfcImporter: ) mat.transpose() obj.matrix_world = mat - if is_fresh_mesh: - self.material_creator.create(element, obj, mesh) + self.material_creator.create(element, obj, mesh) elif hasattr(element, "ObjectPlacement"): obj.matrix_world = self.get_element_matrix(element)