diff --git a/src/blenderbim/blenderbim/bim/module/aggregate/operator.py b/src/blenderbim/blenderbim/bim/module/aggregate/operator.py index 5d366d5191..27a62fd4d2 100644 --- a/src/blenderbim/blenderbim/bim/module/aggregate/operator.py +++ b/src/blenderbim/blenderbim/bim/module/aggregate/operator.py @@ -39,7 +39,8 @@ class AssignObject(bpy.types.Operator): self.remove_collection(bpy.context.scene.collection, spatial_collection) for collection in bpy.data.collections: if collection == relating_collection: - collection.children.link(spatial_collection) + if not collection.children.get(spatial_collection.name): + collection.children.link(spatial_collection) continue self.remove_collection(collection, spatial_collection) else: diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 0af5b8bddb..a785741d60 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -153,6 +153,7 @@ class AssignClass(bpy.types.Operator): collection.objects.link(obj) if parent_collection: parent_collection.children.link(collection) + bpy.ops.bim.assign_object(related_object=obj.name, relating_object=parent_collection.name) else: bpy.context.scene.collection.children.link(collection)