From 788217c73c36520e981250e4693808054c52ebab Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 2 Aug 2024 09:31:15 +1000 Subject: [PATCH] Use loader to get name instead of hardcoding when loading IFCs. See #4517. --- src/blenderbim/blenderbim/bim/import_ifc.py | 6 +++--- src/blenderbim/blenderbim/tool/loader.py | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 60d202194d..9018592086 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -551,7 +551,7 @@ class IfcImporter: for axis in axes: shape = tool.Loader.create_generic_shape(axis.AxisCurve) mesh = self.create_mesh(axis, shape) - obj = bpy.data.objects.new(f"IfcGridAxis/{axis.AxisTag}", mesh) + obj = bpy.data.objects.new(tool.Loader.get_name(axis), mesh) if tool.Blender.get_addon_preferences().lock_grids_on_import: obj.lock_location = (True, True, True) obj.lock_rotation = (True, True, True) @@ -781,7 +781,7 @@ class IfcImporter: mesh = bpy.data.meshes.new(mesh_name) mesh.from_pydata([mathutils.Vector(vertex) * self.unit_scale], [], []) - obj = bpy.data.objects.new("{}/{}".format(product.is_a(), product.Name), mesh) + obj = bpy.data.objects.new(tool.Loader.get_name(product), mesh) self.set_matrix_world(obj, tool.Loader.apply_blender_offset_to_matrix_world(obj, placement_matrix)) self.link_element(product, obj) @@ -847,7 +847,7 @@ class IfcImporter: mesh.from_pydata(vertex_list, [], []) tool.Ifc.link(representation, mesh) - obj = bpy.data.objects.new("{}/{}".format(product.is_a(), product.Name), mesh) + obj = bpy.data.objects.new(tool.Loader.get_name(product), mesh) self.set_matrix_world(obj, tool.Loader.apply_blender_offset_to_matrix_world(obj, placement_matrix)) self.link_element(product, obj) return product diff --git a/src/blenderbim/blenderbim/tool/loader.py b/src/blenderbim/blenderbim/tool/loader.py index a55339f4b0..3bfbc62cd0 100644 --- a/src/blenderbim/blenderbim/tool/loader.py +++ b/src/blenderbim/blenderbim/tool/loader.py @@ -91,6 +91,8 @@ class Loader(blenderbim.core.tool.Loader): @classmethod def get_name(cls, element: ifcopenshell.entity_instance) -> str: + if element.is_a("IfcGridAxis"): + return "{}/{}".format(element.is_a(), element.AxisTag) return "{}/{}".format(element.is_a(), getattr(element, "Name", "None")) @classmethod