From fae405bfe0d2c2f0eced09b80496659745a0e967 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 6 Nov 2019 11:10:51 +1100 Subject: [PATCH] Add support for importing curves, such as for survey point curve sets --- src/ifcblenderexport/io_export_ifc/import_ifc.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ifcblenderexport/io_export_ifc/import_ifc.py b/src/ifcblenderexport/io_export_ifc/import_ifc.py index e2b7af323c..7637a7af32 100644 --- a/src/ifcblenderexport/io_export_ifc/import_ifc.py +++ b/src/ifcblenderexport/io_export_ifc/import_ifc.py @@ -98,6 +98,7 @@ class IfcImporter(): self.ifc_import_settings = ifc_import_settings self.file = None self.settings = ifcopenshell.geom.settings() + self.settings.set(self.settings.INCLUDE_CURVES, True) self.project = None self.spatial_structure_elements = {} self.elements = {} @@ -272,12 +273,18 @@ class IfcImporter(): try: mesh = bpy.data.meshes.new(shape.geometry.id) f = shape.geometry.faces + e = shape.geometry.edges v = shape.geometry.verts vertices = [[v[i], v[i + 1], v[i + 2]] for i in range(0, len(v), 3)] faces = [[f[i], f[i + 1], f[i + 2]] for i in range(0, len(f), 3)] - mesh.from_pydata(vertices, [], faces) + if faces: + edges = [] + else: + edges = [[e[i], e[i + 1]] + for i in range(0, len(e), 2)] + mesh.from_pydata(vertices, edges, faces) return mesh except: print('Could not create mesh for {}: {}/{}'.format(