archipack icon indicating copy to clipboard operation
archipack copied to clipboard

[2d to 3d] Polygon selection crashes

Open derkling opened this issue 6 years ago • 4 comments

Description of the issue:

Not able to really understand what's the sequence to reproduce the error.

It most recently happened to me while using the "Polygons" tool to select a door from a curve. It usually happens after entering/exiting the "

Blender version:

Blended v2.79 Archipack master (8ecfc55), updated via internal updater

Os version:

Ubuntu 16.04

Backtrace from info view:

Traceback (most recent call last):
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 2626, in modal
    return vars_dict['select_points'].modal(context, event)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 419, in modal
    self.keyboard(context, event)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 415, in keyboard
    self._draw(context)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 318, in _draw
    self.curves = [Io.to_curve(context.scene, self.coordsys, geom.convex_hull, 'selection', '3D')]
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 442, in convex_hull
    return ConvexHull(self).getConvexHull()
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/algorithms.py", line 891, in getConvexHull
    return self.lineOrPolygon(cHs)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/algorithms.py", line 800, in lineOrPolygon
    lr = self._factory.createLinearRing(cs)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 1537, in createLinearRing
    return LinearRing(fromCoords, self)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 944, in __init__
    LineString.__init__(self, coords, newFactory)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 745, in __init__
    self.validateConstruction()
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 951, in validateConstruction
    raise ValueError("point array must contain 0 or >3 elements")
ValueError: point array must contain 0 or >3 elements

location: <unknown location>:-1

Here is a screenshot I've got right after the crash: latest-screenshot

I was trying to select the door share right below the crossing arrows.

After the crash the Blender UI is "corrupted" and the overlay info at the bottom remains there as well as the dotted selection lines.

Here is the complete content of the info window since when I've opened the file with a floorplan. I was able to create walls and some windows/doors. Then I've edited the floorplan curves to add some more lines to represent missing doors. I've joined the new lines to the floorplan line which I then selected to proceed with the creation of the new doors... that's when I've got the crash.

bpy.ops.archipack.polylib_polygonize()
bpy.data.window_managers["WinMan"].archipack_polylib.polygonize_expand = True
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.mesh.primitive_plane_add(radius=11.2779, view_align=False, enter_editmode=True, location=(-3.60358, 5.63898, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.mesh.knife_project()
bpy.ops.mesh.select_all(action='INVERT')
bpy.ops.mesh.intersect_boolean()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.mesh.knife_project()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.intersect_boolean()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.extrude_region_move(MESH_OT_extrude_region={"mirror":False}, TRANSFORM_OT_translate={"value":(0, 0, 2.7), "constraint_axis":(False, False, True), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False, "use_accurate":False})
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.uv.cube_project(correct_aspect=True, scale_to_bounds=False)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.uv.smart_project(use_aspect=True, stretch_to_bounds=False)
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.dissolve_limited(angle_limit=0.015708, delimit={'NORMAL'})
bpy.ops.mesh.dissolve_degenerate()
bpy.ops.mesh.quads_convert_to_tris(quad_method='BEAUTY', ngon_method='BEAUTY')
bpy.ops.mesh.normals_make_consistent()
bpy.ops.object.editmode_toggle()
bpy.ops.object.shade_flat()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.object.vertex_group_select()
bpy.ops.mesh.beautify_fill()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.object.vertex_group_select()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="wall", material="DEFAULT")
bpy.ops.archipack.wall(z=2.7)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.archipack.reference_point()
bpy.ops.archipack.parent_to_reference()
bpy.ops.archipack.disable_manipulate()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.parent_to_reference()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.auto_boolean()
bpy.ops.archipack.polylib_pick_2d_polygons()
bpy.data.objects["Reference"].hide = True
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-1.06773, 0, 0), size=(1.06773, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='BOTH', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(1.06773, 0, 0), size=(1.06773, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=2.13547, y=0.200195, z=2.2, altitude=0)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-0.400402, 0, 0), size=(0.400402, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='INSIDE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(0.400402, 0, 0), size=(0.400402, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=0.800804, y=0.200195, z=1.2, altitude=1)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-1.06773, 0, 0), size=(1.06773, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='BOTH', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(1.06773, 0, 0), size=(1.06773, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=2.13547, y=0.200195, z=2.2, altitude=0)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-0.934265, 0, 0), size=(0.934265, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='BOTH', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(0.934265, 0, 0), size=(0.934265, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=1.86853, y=0.266922, z=2.2, altitude=0)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-1.06774, 0, 0), size=(1.06774, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='BOTH', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(1.06774, 0, 0), size=(1.06774, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=2.13548, y=0.24469, z=2.2, altitude=0)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-0.934265, 0, 0), size=(0.934265, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='BOTH', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(0.934265, 0, 0), size=(0.934265, 2.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=1.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=1.86853, y=0.266922, z=2.2, altitude=0)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="door", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.door_panel(x=0.944265, z=2.005, y=0.02, direction=0, model=0, chanfer=0.005, panel_spacing=0.1, panel_bottom=0, panel_border=0.2, panels_x=1, panels_y=1, panels_distrib='REGULAR', handle='BOTH', material="DEFAULT")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.door(auto_manipulate=False, x=0.934265, y=0.200195, z=2, direction=0, n_panels=1)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-0.400401, 0, 0), size=(0.400401, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='INSIDE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(0.400401, 0, 0), size=(0.400401, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=0.800802, y=0.200195, z=1.2, altitude=1)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-0.400406, 0, 0), size=(0.400406, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='INSIDE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(0.400406, 0, 0), size=(0.400406, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=0.800812, y=0.200195, z=1.2, altitude=1)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="window", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(-0.400398, 0, 0), size=(0.400398, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=1, side_material=0, handle='INSIDE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window_panel(center=(0, 0, 0), origin=(0.400398, 0, 0), size=(0.400398, 1.2, 0), radius=(0, 0, 0), angle_y=0, frame_y=0.06, frame_x=0.06, curve_steps=16, shape='RECTANGLE', pivot=-1, side_material=0, handle='NONE', handle_model=1, handle_altitude=0.4, fixed=False, material="DEFAULT", enable_glass=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.window(auto_manipulate=False, x=0.800797, y=0.200195, z=1.2, altitude=1)
bpy.ops.archipack.polylib_pick_2d_polygons()
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.archipack.polylib_pick_2d_points()
bpy.ops.archipack.polylib_pick_2d_polygons()
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.object.join()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.archipack.polylib_pick_2d_lines()
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.archipack.polylib_polygonize()
bpy.ops.archipack.polylib_pick_2d_lines()
bpy.ops.archipack.polylib_pick_2d_points()
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.object.editmode_toggle()
bpy.ops.curve.subdivide()
bpy.ops.curve.subdivide()
bpy.context.scene.tool_settings.snap_element = 'INCREMENT'
bpy.ops.transform.translate(value=(0, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.curve.select_all(action='TOGGLE')
bpy.ops.transform.translate(value=(-0.3, -0.05, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.transform.translate(value=(-0.01, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.context.scene.tool_settings.snap_element = 'VERTEX'
bpy.ops.transform.translate(value=(-0.023664, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.curve.shortest_path_pick()
bpy.ops.curve.subdivide()
bpy.ops.curve.select_all(action='TOGGLE')
bpy.ops.transform.translate(value=(0, 0.0416217, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.transform.translate(value=(-0.0500488, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.transform.translate(value=(0, 0.308728, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.transform.translate(value=(0, -0.100101, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.curve.subdivide()
bpy.ops.curve.select_all(action='TOGGLE')
bpy.ops.transform.translate(value=(-0.0500488, 0.400406, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.transform.translate(value=(0, -0.800812, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True, use_accurate=False)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.curve.select_all(action='TOGGLE')
bpy.ops.object.editmode_toggle()
bpy.ops.object.join()
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.archipack.polylib_polygonize()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.archipack.material(category="door", material="DEFAULT")
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.material_slot_add()
bpy.ops.object.make_local(type='SELECT_OBDATA_MATERIAL')
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.faces_shade_smooth()
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.door_panel(x=0.677328, z=2.005, y=0.02, direction=0, model=0, chanfer=0.005, panel_spacing=0.1, panel_bottom=0, panel_border=0.2, panels_x=1, panels_y=1, panels_distrib='REGULAR', handle='BOTH', material="DEFAULT")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_linked(type='OBDATA')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.archipack.door(auto_manipulate=False, x=0.667328, y=0.100098, z=2, direction=0, n_panels=1)
bpy.ops.archipack.polylib_pick_2d_polygons()
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.archipack.polylib_pick_2d_points()
bpy.ops.object.select_all(action='TOGGLE')
bpy.data.window_managers["WinMan"].archipack_polylib.polygonize_expand = False
bpy.data.window_managers["WinMan"].archipack_polylib.polygonize_expand = True
bpy.ops.object.select_all(action='TOGGLE')
Traceback (most recent call last):
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 2626, in modal
    return vars_dict['select_points'].modal(context, event)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 419, in modal
    self.keyboard(context, event)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 415, in keyboard
    self._draw(context)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/archipack_polylines.py", line 318, in _draw
    self.curves = [Io.to_curve(context.scene, self.coordsys, geom.convex_hull, 'selection', '3D')]
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 442, in convex_hull
    return ConvexHull(self).getConvexHull()
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/algorithms.py", line 891, in getConvexHull
    return self.lineOrPolygon(cHs)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/algorithms.py", line 800, in lineOrPolygon
    lr = self._factory.createLinearRing(cs)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 1537, in createLinearRing
    return LinearRing(fromCoords, self)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 944, in __init__
    LineString.__init__(self, coords, newFactory)
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 745, in __init__
    self.validateConstruction()
  File "/home/derkling/opt/blender-2.79b-linux-glibc219-x86_64/2.79/scripts/addons/archipack/pygeos/geom.py", line 951, in validateConstruction
    raise ValueError("point array must contain 0 or >3 elements")
ValueError: point array must contain 0 or >3 elements

location: <unknown location>:-1

bpy.data.window_managers["WinMan"].(null) = True
bpy.data.window_managers["WinMan"].(null) = True
bpy.data.window_managers["WinMan"].(null) = False
bpy.data.window_managers["WinMan"].addon_search = "archi"

derkling avatar Jun 16 '18 16:06 derkling

Hi, Thank you for reporting. This error means there are not enough points selected to build a correct LinearRing (wich require either 0 or more than 2 different locations). Must fix the root of this issue in the Point select tool.

Looks like you are in the "Select Points" mode, wich is not suited to create doors / windows / walls. Use "Select Polygons" instead.

Select points is ment to create lines / polygons around a selection of points, eg to fill the empty door parts on walls. As you can see on this part of the 2d to 3d video tutorial

s-leger avatar Jun 16 '18 17:06 s-leger

Подтверждаю. В моем случае это обычно случается после удаления стены потом попытке нарисовать её повторно. Но не всегда.

Сonfirm. In my case, this usually happens after removing the wall and then trying to draw it again. But not always. blender.crash.txt

Fedora 28

ekkl avatar Jul 08 '18 18:07 ekkl

Hi, Definitely not the same issue. Downloaded archipack (1.3.8 - 1.4_dev) or blender's one (version 1.2.8) ? Blender 2.79b include stability improvement fix.

s-leger avatar Jul 09 '18 02:07 s-leger

Blender 2.79b I used 1.2.8. and next time use 1.3.8. same problem, but most stability. Now I will to try 1.4_dev

ekkl avatar Jul 09 '18 10:07 ekkl