From 4817360ecda34199d8693be7ce64e949e6a9fefe Mon Sep 17 00:00:00 2001 From: Jesusbill Date: Tue, 16 Mar 2021 01:05:25 +0100 Subject: [PATCH] place structural elements in dedicated collections --- .../blenderbim/bim/import_ifc.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/import_ifc.py b/src/ifcblenderexport/blenderbim/bim/import_ifc.py index f7edab54be..2cffda4d97 100644 --- a/src/ifcblenderexport/blenderbim/bim/import_ifc.py +++ b/src/ifcblenderexport/blenderbim/bim/import_ifc.py @@ -712,6 +712,14 @@ class IfcImporter: self.create_curve_products(self.file.by_type("IfcAnnotation")) def create_structural_elements(self): + # Create structural collections + self.structural_member_collection = bpy.data.collections.new("Members") + self.structural_connection_collection = bpy.data.collections.new("Connections") + self.structural_collection = bpy.data.collections.new("StructuralEntities") + self.structural_collection.children.link(self.structural_member_collection) + self.structural_collection.children.link(self.structural_connection_collection) + self.project["blender"].children.link(self.structural_collection) + self.create_curve_products(self.file.by_type("IfcStructuralCurveMember")) self.create_curve_products(self.file.by_type("IfcStructuralCurveConnection")) self.create_structural_point_connections() @@ -1311,10 +1319,12 @@ class IfcImporter: self.ifc_import_settings.logger.error("An element could not be placed in the spatial tree %s", element) elif element.is_a("IfcOpeningElement"): self.opening_collection.objects.link(obj) + elif element.is_a("IfcStructuralMember"): + self.structural_member_collection.objects.link(obj) + elif element.is_a("IfcStructuralConnection"): + self.structural_connection_collection.objects.link(obj) else: - # Avoid warning for structural analysis entities - if "Structural" not in element.is_a(): # TODO test with the list of structural analysis entities - self.ifc_import_settings.logger.warning("Warning: this object is outside the spatial hierarchy %s", element) + self.ifc_import_settings.logger.warning("Warning: this object is outside the spatial hierarchy %s", element) bpy.context.scene.collection.objects.link(obj) def cast_edge_case_attribute(self, ifc_class, key, value):