From cd6eac3c8f73d1afe3a52f8240ffb787a539ec27 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 10 May 2024 22:39:56 +1000 Subject: [PATCH] See #4652. Fix bug where using create_mesh won't work if you pass it a triangulation. --- src/blenderbim/blenderbim/bim/import_ifc.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 4e9440ad1c..369c0812d3 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -1912,11 +1912,7 @@ class IfcImporter: and geometry.verts and self.is_point_far_away((geometry.verts[0], geometry.verts[1], geometry.verts[2])) ): - m = shape.transformation.matrix.data - mat = np.array( - ([m[0], m[3], m[6], m[9]], [m[1], m[4], m[7], m[10]], [m[2], m[5], m[8], m[11]], [0, 0, 0, 1]) - ) - offset_point = np.linalg.inv(mat) @ np.array( + offset_point = np.array( ( float(props.blender_eastings), float(props.blender_northings), @@ -1924,6 +1920,12 @@ class IfcImporter: 0.0, ) ) + if geometry != shape: + m = shape.transformation.matrix.data + mat = np.array( + ([m[0], m[3], m[6], m[9]], [m[1], m[4], m[7], m[10]], [m[2], m[5], m[8], m[11]], [0, 0, 0, 1]) + ) + offset_point = np.linalg.inv(mat) @ offset_point verts = [None] * len(geometry.verts) for i in range(0, len(geometry.verts), 3): verts[i], verts[i + 1], verts[i + 2] = ifcopenshell.util.geolocation.enh2xyz(