From 0028fd3e9c9538f5e272ff715da9148a7359fba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Perdig=C3=A3o?= Date: Mon, 16 Oct 2023 15:39:38 -0300 Subject: [PATCH] ifc_duplicate_operator now remove the connections with old objects. Similar solutions presented in PR #3789 --- .../blenderbim/bim/module/geometry/operator.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index e67ffc3f1e..820456045a 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -811,6 +811,9 @@ class OverrideDuplicateMove(bpy.types.Operator): if old.is_a("IfcElementAssembly"): OverrideDuplicateMove.recreate_assembly(old_to_new) + # Remove connections with old objects + OverrideDuplicateMove.remove_old_connections(old_to_new) + # Recreate decompositions tool.Root.recreate_decompositions(relationships, old_to_new) blenderbim.bim.handler.refresh_ui_data() @@ -867,6 +870,17 @@ class OverrideDuplicateMove(bpy.types.Operator): related_obj=tool.Ifc.get_object(new_element[0]), ) + def remove_old_connections(old_to_new): + for new in old_to_new.values(): + for connection in new[0].ConnectedTo: + entity = connection.RelatedElement + if entity in old_to_new.keys(): + core.remove_connection(tool.Geometry, connection=connection) + for connection in new[0].ConnectedFrom: + entity = connection.RelatingElement + if entity in old_to_new.keys(): + core.remove_connection(tool.Geometry, connection=connection) + class OverrideDuplicateMoveLinkedMacro(bpy.types.Macro): bl_idname = "bim.override_object_duplicate_move_linked_macro"