From f49d7ec2cb09fcd5cd00a400c1ddbd05a5af9c87 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Sep 2022 15:54:24 +1000 Subject: [PATCH] Implement unjoin in new wall engine --- src/blenderbim/blenderbim/bim/module/model/wall.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 7202b74b94..785d2b56f6 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -1058,6 +1058,18 @@ class WallPrototypeVTX(bpy.types.Operator): self.body_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") self.axis_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Plan", "Axis", "GRAPH_VIEW") + def unjoin(self, wall1): + element1 = tool.Ifc.get_entity(wall1) + if not element1: + return + + ifcopenshell.api.run("geometry.disconnect_path", tool.Ifc.get(), element=element1, connection_type="ATSTART") + ifcopenshell.api.run("geometry.disconnect_path", tool.Ifc.get(), element=element1, connection_type="ATEND") + + axis1 = self.get_wall_axis(wall1) + axis = axis1["reference"].copy() + body = axis1["reference"].copy() + self.recreate_wall(element1, wall1, axis, body) selected_objects = [o for o in context.selected_objects if tool.Ifc.get_entity(o)] if len(selected_objects) == 1: self.join_E(context.active_object, context.scene.cursor.location)