Graphisoft®

Basic Library Version: 16

Shutter Macro

  1. General Description
  2. Parameters
  3. Usage

1. General Description

A window can use this macro to draw Shutter in 2D and 3D. The macro can manage the different kinds of walls, e.g. staright and curved walls.

2. Parameters

This macro has similar input parameters as a normal ArchiCAD window:

Name Type Default Scripts related to the parameter Remarks
A Length 1 2D / 3D Nominal width of the wall opening
B Length 1 3D Nominal height of the wall opening
ZZYZX Length 1 - Not used
AC_show2DHotspotsIn3D Boolean 0 - Not used
offsX Length 0 2D / 3D Horizontal coordinate offset length
offsY Length 0 3D Vertical coordinate offset length
isWindow Boolean 0 Parameter Identifies the type of object, the macro was called from.
0 Called from a Door
1 Called from a Window
gs_window_shutter Text "Off" Parameter Shutter chooser for Windows
gs_door_shutter Text "Off" Parameter Shutter chooser for Doors
iShutterStyle Integer 2 2D / 3D Style of the Shutter panels
gs_shutter_type Text "Decorative" Parameter Shutter type name
iShutterType Integer 1 2D / 3D Type of the Shutter.
1 Decorative
2 Functional
iShutterShape Integer 1 3D Shutter shape
archHeight Length 0.25 3D Height of the Arc.
Only effective when iShutterShape = 1
nArchResolution Integer 0 3D Arc resolution for arched shutter.
if nArchResolution < 3, WALL_RESOL used instead.
gs_shutter_width Length 0.45 2D / 3D Shutter Width - Only effective in case of Functional Shutters, iShutterType = 2
gs_shutter_thk Length 0.05 2D / 3D Shutter Thickness
gs_shutter_pos Text "Both Sides" Parameter Shutter position chooser
iShutterPos Integer 1 2D / 3D Identifies the position of the Shutter panels.
1 Both Sides
2 Right Side
3 Left Side
gs_shut_open Boolean 0 3D The open/closed state of the Shutter.
0 Shutter is in opened position
1 Shutter is in closed position
gs_shut_stile_width Length 50 3D "Width of Stiles"
gs_shut_bottom_rail_width Length 0.075 3D "Width of Bottom Rail"
gs_shut_top_rail_width Length 0.05 3D "Width of Top Rail"
gs_shut_horizontal_board_width Length 0.0 3D "Horizontal Board Width"
gs_shut_vertical_board_width Length 0.0 3D "Vertical Board Width"
gs_shut_louver_width Length 0.05 3D "Louver Width"
gs_shut_louver_thk Length 0.008 3D "Louver Thickness"
gs_shut_louver_angle Angle 30.0 3D "Louver Angle"
gs_shut_board_width Length 0.0 3D "Board Width"
gs_shut_board_thk Length 0.0 3D "Board Thickness"
gs_hor_bn Integer 1 Parameter Indicates the number of Horizontal Boards
gs_ver_bn Integer 1 Parameter Indicates the number of Vertical Boards
gs_window_trim String Trim/Casing
iTrim Integer 1 2D / 3D / Parameter "Trim"
gs_trim_oversize Boolean 0 2D / 3D / Parameter "Trim Oversize"
gs_trim_width Length 0 2D / 3D / Parameter Trim Width
gs_trim_width_in Length 0 2D / 3D / Parameter "Trim Width Inside"
gs_trim_width_out Length 0 2D / 3D / Parameter "Trim Width Outside"
gs_trim_thk Length 0 2D / 3D / Parameter Trim Thickness
gs_trim_thk_out Length 0 2D / 3D / Parameter Thickness of the exterior casing.
iSill Integer 1 3D Sill
gs_sill_oversize Boolean 0 3D "Sill Oversize"
iSillType Integer 1 3D "Type of the Sill"
gs_sill_thk Length 0 3D "Sill Thickness"
gs_board_thk Length 0 3D "Board Thickness"
gs_window_oversize Title --- - Oversize
gs_left_oversize Length 0 2D / 3D "Left Opening Oversize"
gs_right_oversize Length 0 2D / 3D "Right Opening Oversize"
ac_corner_window Boolean 1 2D / 3D / Parameter Switch to Corner Window mode
ac_cw_function Boolean 0 2D / 3D / Parameter "Placement Type (1=CW,0=W)"
gs_window_stack Title --- - Stacked Window
gs_stack_left Boolean 0 2D / 3D / Parameter "Connection on the Left"
gs_stack_right Boolean 0 2D / 3D / Parameter "Connection on the Right"
gs_stack_top Boolean 0 2D / 3D "Connection on the Top"
gs_stack_bottom Boolean 0 2D / 3D "Connection on the Bottom"
gs_2D_representation Title --- - 2D Representation
lod2D Integer 1 2D Level of Detail in 2D
< 4 For scales 1:100 <
4 For scales 1:99 - 1:50
gs_pen_2D PenColor 3 2D 2D Contour Pen
gs_shutter_fill FillPattern 65 2D / 3D (Section View) Shutter Fill Type
gs_shutter_fill_pen_fg PenColor 0 2D / 3D (Section View) Shutter Fill Pen
gs_shutter_fill_pen_bg PenColor 0 2D / 3D (Section View) Shutter Fill Background Pen
gs_3D_representation Title --- - 3D Representation
lod3D Integer 1 3D Level of detail in 3D
1 Simple model. Always use the iShutterStyle = 8 Shutter style
2 Detailed
gs_frame_pen PenColor 2 3D Contour pen in 3D
gs_resol Integer 32 3D Arc resolution. Minimum value: 3
gs_window_material Title --- - Materials
gs_shut_frame_mat Material 0 3D Material of the frame of the Shutter.
gs_shut_fill_mat Material 0 3D Matreial of the louvers.
gs_stShutter String Parameter One dimension Array parameter for receiving locale strings.

Geometry parameters of Shutter

The following pictures clear the meaning of the geometry specific parameters used in Shutter macro:

Shutter panel shape and style

There are two shapes and seven available shutter styles plus the undisplayed state.

Shapes

0 - Square 1 - Arched
Square panel Arched panel

Styles

1 Off 2
shutter with louvers
3
shutter with louvers and one horizontal bar
4
shutter with louvers and one horizontal and one vertical bar
5
old style shutter
6
shutter with solid panel
7
shutter with solid panel and one horizontal bar
8
solid shutter

Level of Detail in 2D

There are two levels of detail programmed into the macro.

2D detail levels: less than 4 and 4

2D Representation

The following picture explains the meaning of 2D attribute parameters.

2D parameters in plan view

3. Usage

Localization

The macro's default language is the English, but you can localize it with the gs_stShutter parameter.

Row Default value Description
1 Off Value list item - gs_window_shutter
2 Style 1 Value list item - gs_window_shutter
3 Style 2 Value list item - gs_window_shutter
4 Style 3 Value list item - gs_window_shutter
5 Style 4 Value list item - gs_window_shutter
6 Style 5 Value list item - gs_window_shutter
7 Style 6 Value list item - gs_window_shutter
8 Style 7 Value list item - gs_window_shutter
9 Decorative Value list item - gs_shutter_type
10 Functional Value list item - gs_shutter_type
11 Both Sides Value list item - gs_shutter_pos
12 Right Side Value list item - gs_shutter_pos
13 Left Side Value list item - gs_shutter_pos
14 Shutter Settings UI String - tabpage name
15 Materials UI String - static text (title of the materials pane)
16 Fills UI String - static text (title of the fills pane)
17 Shutter Style UI String - static text - gs_shutter_type
18 Shutter Width UI String - static text - gs_shutter_width
19 Shutter Position UI String - static text - gs_shutter_pos
20 Close Shutter UI String - static text - gs_shut_open
21 Frame UI String - static text - gs_shut_frame_mat
22 Filling UI String - static text - gs_shut_fill_mat
23 Type UI String - gs_fillShutter
24 Pen UI String - gs_penShutter_fg
25 Backgr. Pen UI String - gs_penShutter_bg

Parameter Script

For implementing the parameter logic of the Shutter, you have to call this macro passing the following parameters.

! Master Script =============================================================== dim gs_stShutter[] gs_stShutter[13] = "" gs_stShutter[ 1] = `Off` gs_stShutter[ 2] = `Style 1` gs_stShutter[ 3] = `Style 2` gs_stShutter[ 4] = `Style 3` gs_stShutter[ 5] = `Style 4` gs_stShutter[ 6] = `Style 5` gs_stShutter[ 7] = `Style 6` gs_stShutter[ 8] = `Style 7` gs_stShutter[ 9] = `Decorative` gs_stShutter[10] = `Functional` gs_stShutter[11] = `Both Sides` gs_stShutter[12] = `Right Side` gs_stShutter[13] = `Left Side` ! Parameter Script ============================================================ call "Shutter" parameters A = A, isWindow = 1, iShutterShape = iWindowShape, gs_window_shutter = gs_window_shutter, gs_shutter_type = gs_shutter_type, gs_shutter_pos = gs_shutter_pos, gs_shut_stile_width = gs_frame_width, ! --- Trim iTrim = iTrim, gs_trim_oversize = gs_trim_oversize, gs_trim_width = gs_trim_width, gs_trim_width_in = gs_trim_width_in, gs_trim_width_out = gs_trim_width_out, gs_trim_thk = gs_trim_thk, gs_trim_thk_out = gs_trim_thk_out, ! --- Corner Window Function --- ac_cw_function = ac_cw_function, ac_corner_window = ac_corner_window, ! --- Stacked Window gs_stack_left = gs_stack_left, gs_stack_right = gs_stack_right, ! --- String Resource --- gs_stShutter = gs_stShutter

2D Script

In the 2D script the window has to contain the following code portion. It has to empty the transformation stack before calling this macro (eg. with a del top command)

! ===== Draw Shutter ===== if iShutterStyle <> 1 then call "Shutter" parameters A = A, offsX = 0, iShutterStyle = iShutterStyle, iShutterType = iShutterType, iShutterPos = iShutterPos, gs_shutter_width = gs_shutter_width, gs_shutter_thk = 1 3/4", gs_shut_open = gs_shut_open, ! --- Trim iTrim = iTrim, gs_trim_oversize = gs_trim_oversize, gs_trim_width = gs_trim_width, gs_trim_width_in = gs_trim_width_in, gs_trim_width_out = gs_trim_width_out, gs_trim_thk = gs_trim_thk, gs_trim_thk_out = gs_trim_thk_out, ! --- Oversize --- gs_left_oversize = gs_left_oversize, gs_right_oversize = gs_right_oversize, ! --- Corner Window Function --- ac_cw_function = ac_cw_function, ac_corner_window = ac_corner_window, ! --- Stacked Window gs_stack_left = gs_stack_left, gs_stack_right = gs_stack_right, ! --- 2D Representation lod2D = lod2D, gs_pen_2D = gs_pen_2D, gs_shutter_fill = emptyFill, gs_shutter_fill_pen_fg = 0, gs_shutter_fill_pen_bg = GLOB_DRAWING_BGD_PEN endif

3D Script

In this script the window has to contain the following code lines. It has to empty the transformation stack before calling this macro (eg. with a del top command)

! ===== Draw Shutter ===== if iShutterStyle <> 1 then call "Shutter" parameters A = A, B = B, offsX = 0, offsY = 0, iShutterStyle = iShutterStyle, iShutterType = iShutterType, iShutterPos = iShutterPos, iShutterShape = 1, gs_shutter_width = gs_shutter_width, gs_shutter_thk = 1 3/4", gs_shut_louver_width = 2", gs_shut_louver_thk = 3/8", gs_shut_open = gs_shut_open, gs_shut_stile_width = gs_frame_width, gs_shut_bottom_rail_width = gs_frame_width, gs_shut_top_rail_width = gs_frame_width, ! --- Trim iTrim = iTrim, gs_trim_oversize = gs_trim_oversize, gs_trim_width = gs_trim_width, gs_trim_width_in = gs_trim_width_in, gs_trim_width_out = gs_trim_width_out, gs_trim_thk = gs_trim_thk, gs_trim_thk_out = gs_trim_thk_out, ! --- Sill Parameters iSill = iSill, iSillType = iSillType, gs_sill_oversize = gs_sill_oversize, gs_sill_thk = gs_sill_thk, gs_board_thk = gs_board_thk, ! --- Oversize gs_left_oversize = gs_left_oversize, gs_right_oversize = gs_right_oversize, ! --- Corner Window Function --- ac_cw_function = ac_cw_function, ac_corner_window = ac_corner_window, ! --- Stacked Window gs_stack_left = gs_stack_left, gs_stack_right = gs_stack_right, gs_stack_top = gs_stack_top, gs_stack_bottom = gs_stack_bottom, ! --- 2D Representation gs_pen_2D = gs_pen_2D, gs_shutter_fill = emptyFill, gs_shutter_fill_pen_fg = 0, gs_shutter_fill_pen_bg = GLOB_DRAWING_BGD_PEN, ! --- 3D Representation lod3D = lod3D, gs_frame_pen = gs_frame_pen, gs_resol = res, ! --- Materials gs_shut_frame_mat = gs_shut_frame_mat, gs_shut_fill_mat = gs_shut_fill_mat endif

UI Script

For implementing the Shutter user interface page into your object, just call the macro from the UI script.

! Master Script =============================================================== dim gs_stShutter[] gs_stShutter[13] = "" gs_stShutter[ 1] = `Off` gs_stShutter[ 2] = `Style 1` gs_stShutter[ 3] = `Style 2` gs_stShutter[ 4] = `Style 3` gs_stShutter[ 5] = `Style 4` gs_stShutter[ 6] = `Style 5` gs_stShutter[ 7] = `Style 6` gs_stShutter[ 8] = `Style 7` gs_stShutter[ 9] = `Decorative` gs_stShutter[10] = `Functional` gs_stShutter[11] = `Both Sides` gs_stShutter[12] = `Right Side` gs_stShutter[13] = `Left Side` ! UI Script =================================================================== gs_stShutter[25] = "" gs_stShutter[14] = `Shutter` gs_stShutter[15] = `Materials` gs_stShutter[16] = `Fills` gs_stShutter[17] = `Shutter Style` gs_stShutter[18] = `Shutter Width` gs_stShutter[19] = `Shutter Position` gs_stShutter[20] = `Close Shutter` gs_stShutter[21] = `Frame` gs_stShutter[22] = `Filling` gs_stShutter[23] = `Type` gs_stShutter[24] = `Pen` gs_stShutter[25] = `Backgr. Pen` tabpageIndex = 1 call "Shutter.gsm" parameters isWindow = 1, iShutterShape = iWindowShape, gs_window_shutter = gs_window_shutter, gs_shutter_type = gs_shutter_type, gs_stack_left = gs_stack_left, gs_stack_right = gs_stack_right, gs_bFills = gs_bFills, idTab_ShutterSettings = tabpageIndex, gs_stShutter = gs_stShutter