diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 26f40f2dba..c8d1227892 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -553,6 +553,12 @@ class DrawPolylineWall(bpy.types.Operator): if event.value == "RELEASE" and event.type == "LEFTMOUSE": tool.Snap.insert_polyline_point() + tool.Blender.update_viewport() + + if event.value == "PRESS" and event.type == "C": + tool.Snap.close_polyline() + WallPolylineDecorator.set_input_panel(self.input_panel, self.input_type) + tool.Blender.update_viewport() if not self.is_input_on: if event.value == "RELEASE" and event.type == "BACK_SPACE": diff --git a/src/blenderbim/blenderbim/tool/snap.py b/src/blenderbim/blenderbim/tool/snap.py index 2028d6ae20..5d3c22668a 100644 --- a/src/blenderbim/blenderbim/tool/snap.py +++ b/src/blenderbim/blenderbim/tool/snap.py @@ -104,6 +104,16 @@ class Snap(blenderbim.core.tool.Snap): polyline_point.y = snap_vertex.y polyline_point.z = default_container_elevation + @classmethod + def close_polyline(cls): + polyline_data = bpy.context.scene.BIMModelProperties.polyline_point + if len(polyline_data) > 2: + first_point = polyline_data[0] + polyline_point = bpy.context.scene.BIMModelProperties.polyline_point.add() + polyline_point.x = first_point.x + polyline_point.y = first_point.y + polyline_point.z = first_point.z + @classmethod def clear_polyline(cls): bpy.context.scene.BIMModelProperties.polyline_point.clear()