From 6b2e86710744d4e55d3e1336d6c2aef52f6693c8 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 18 Apr 2023 18:07:44 +1000 Subject: [PATCH] Fix #2916. Bug where joining swept solids didn't merge styles correctly. --- src/blenderbim/blenderbim/bim/module/geometry/operator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 8de04e1a94..4680094562 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -636,7 +636,7 @@ class OverrideJoin(bpy.types.Operator, Operator): continue element = tool.Ifc.get_entity(obj) - # Non IFC elements cannot be join since we cannot guarantee SweptSolid compliance + # Non IFC elements cannot be joined since we cannot guarantee SweptSolid compliance if not element: obj.select_set(False) continue @@ -651,6 +651,9 @@ class OverrideJoin(bpy.types.Operator, Operator): for item in obj_rep.Items: copied_item = ifcopenshell.util.element.copy_deep(tool.Ifc.get(), item) + for style in item.StyledByItem: + copied_style = ifcopenshell.util.element.copy(tool.Ifc.get(), style) + copied_style.Item = copied_item if copied_item.Position: position = ifcopenshell.util.placement.get_axis2placement(copied_item.Position) else: