From 8f5f346fa481690572837cbd431998a943fcdcd0 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 31 Mar 2025 18:23:29 +0500 Subject: [PATCH] boundary/create_mesh - small optimizations --- src/bonsai/bonsai/bim/module/boundary/operator.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/boundary/operator.py b/src/bonsai/bonsai/bim/module/boundary/operator.py index 14d9987d8a..997bdef5f9 100644 --- a/src/bonsai/bonsai/bim/module/boundary/operator.py +++ b/src/bonsai/bonsai/bim/module/boundary/operator.py @@ -101,7 +101,8 @@ class Loader: return None mesh = bpy.data.meshes.new(str(surface.id())) bm = bmesh.new() - verts = [bm.verts.new(shape.verts[i : i + 3]) for i in range(0, len(shape.verts), 3)] + coords = ifcopenshell.util.shape.get_vertices(shape) + verts = [bm.verts.new(coord) for coord in coords] bm.faces.new(verts) for inner_boundary in surface.InnerBoundaries: try: @@ -112,7 +113,9 @@ class Loader: f"Skipping an inner boundary for IfcRelSpaceBoundary with ID {boundary.id()}. Geometry might be invalid", ) return None - verts = [bm.verts.new(shape.verts[i : i + 3]) for i in range(0, len(shape.verts), 3)] + coords = ifcopenshell.util.shape.get_vertices(shape) + verts = [bm.verts.new(coord) for coord in coords] + bm.faces.new(verts) for i in range(len(verts) - 1): bm.edges.new(verts[i : i + 2]) bm.edges.new((verts[-1], verts[0]))