From 32fb359ee2518587dc535c05d5bd829fe2a9cee9 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 25 May 2021 11:07:38 +1000 Subject: [PATCH] Copying objects in Blender now auto copy them in IFC too. See #1360. Thanks s-leger! --- src/blenderbim/blenderbim/bim/handler.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index 4874f1da90..c91fb3f410 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -171,8 +171,19 @@ def create_application_organisation(ifc): ) +def active_object_callback(): + obj = bpy.context.active_object + for obj in bpy.context.selected_objects: + if not obj.BIMObjectProperties.ifc_definition_id: + continue + if IfcStore.id_map[obj.BIMObjectProperties.ifc_definition_id] != obj: + bpy.ops.bim.copy_class(obj=obj.name) + + @persistent def setDefaultProperties(scene): + active_object_key = bpy.types.LayerObjects, "active" + bpy.msgbus.subscribe_rna(key=active_object_key, owner="BlenderBIM", args=(), notify=active_object_callback) ifcopenshell.api.owner.settings.get_person = ( lambda ifc: ifc.by_id(int(bpy.context.scene.BIMOwnerProperties.user_person)) if bpy.context.scene.BIMOwnerProperties.user_person