From 25d86a50c5632712578a99d035be8d1e3201ea6e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 21 Feb 2021 11:55:04 +1100 Subject: [PATCH] Minor fix for previous commit --- .../blenderbim/bim/module/model/grid.py | 6 +++++- .../blenderbim/bim/module/model/pie.py | 12 ++++++------ .../blenderbim/bim/module/root/operator.py | 8 ++++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/module/model/grid.py b/src/ifcblenderexport/blenderbim/bim/module/model/grid.py index 2d8f26c131..6f57f76ce3 100644 --- a/src/ifcblenderexport/blenderbim/bim/module/model/grid.py +++ b/src/ifcblenderexport/blenderbim/bim/module/model/grid.py @@ -31,7 +31,11 @@ def add_object(self, context): bpy.ops.bim.assign_class(obj=obj.name, ifc_class="IfcGrid") grid = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) if has_site_collection: - bpy.ops.bim.assign_container(relating_structure=grandchild.name, related_element=obj.name) + site_obj = bpy.data.objects.get(grandchild.name) + if site_obj and site_obj.BIMObjectProperties.ifc_definition_id: + bpy.ops.bim.assign_container( + relating_structure=site_obj.BIMObjectProperties.ifc_definition_id, related_element=obj.name + ) axes_collection = bpy.data.collections.new("UAxes") collection.children.link(axes_collection) diff --git a/src/ifcblenderexport/blenderbim/bim/module/model/pie.py b/src/ifcblenderexport/blenderbim/bim/module/model/pie.py index d3f7f69411..a93010bd47 100644 --- a/src/ifcblenderexport/blenderbim/bim/module/model/pie.py +++ b/src/ifcblenderexport/blenderbim/bim/module/model/pie.py @@ -98,13 +98,13 @@ class PieUpdateContainer(bpy.types.Operator): for obj in context.selected_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue - relating_structure = None for collection in obj.users_collection: - relating_structure_obj = bpy.data.objects.get(collection.name) - if not relating_structure_obj or not relating_structure_obj.BIMObjectProperties.ifc_definition_id: - continue - relating_structure = relating_structure_obj - bpy.ops.bim.assign_container(relating_structure=relating_structure.name, related_element=obj.name) + spatial_obj = bpy.data.objects.get(collection.name) + if spatial_obj and spatial_obj.BIMObjectProperties.ifc_definition_id: + bpy.ops.bim.assign_container( + relating_structure=spatial_obj.BIMObjectProperties.ifc_definition_id, related_element=obj.name + ) + break return {"FINISHED"} diff --git a/src/ifcblenderexport/blenderbim/bim/module/root/operator.py b/src/ifcblenderexport/blenderbim/bim/module/root/operator.py index c5bdba0626..b65f948fab 100644 --- a/src/ifcblenderexport/blenderbim/bim/module/root/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/module/root/operator.py @@ -160,8 +160,12 @@ class AssignClass(bpy.types.Operator): for collection in obj.users_collection: if "Ifc" not in collection.name or collection.name == obj.name: continue - bpy.ops.bim.assign_container(relating_structure=collection.name, related_element=obj.name) - break + spatial_obj = bpy.data.objects.get(collection.name) + if spatial_obj and spatial_obj.BIMObjectProperties.ifc_definition_id: + bpy.ops.bim.assign_container( + relating_structure=spatial_obj.BIMObjectProperties.ifc_definition_id, related_element=obj.name + ) + break class UnassignClass(bpy.types.Operator):