- •Contents
- •General Overview
- •Starting Out
- •Scripting
- •Library Part Structure
- •Analyze, Deconstruct and Simplify
- •Elaboration
- •Entry Level
- •Intermediate Level
- •Advanced Level
- •Expert Level
- •3D Generation
- •The 3D Space
- •Coordinate Transformations
- •The GDL Interpreter
- •The GDL Script Analysis
- •GDL Syntax
- •Statements
- •Line
- •Label
- •Characters
- •Strings
- •Identifiers
- •Variables
- •Parameters
- •Simple Types
- •Derived Types
- •Coordinate Transformations
- •2D Transformations
- •3D Transformations
- •Managing the Transformation Stack
- •3D Shapes
- •Basic Shapes
- •BLOCK
- •BRICK
- •CYLIND
- •SPHERE
- •ELLIPS
- •CONE
- •PRISM
- •PRISM_
- •CPRISM_
- •BPRISM_
- •FPRISM_
- •HPRISM_
- •SPRISM_
- •SLAB
- •SLAB_
- •CSLAB_
- •CWALL_
- •BWALL_
- •XWALL_
- •XWALL_{2}
- •BEAM
- •CROOF_
- •MESH
- •ARMC
- •ARME
- •ELBOW
- •Planar Shapes in 3D
- •HOTSPOT
- •RECT
- •POLY
- •POLY_
- •PLANE
- •PLANE_
- •CIRCLE
- •Shapes Generated from Polylines
- •EXTRUDE
- •PYRAMID
- •REVOLVE
- •RULED
- •RULED{2}
- •SWEEP
- •TUBE
- •TUBEA
- •COONS
- •MASS
- •Elements for Visualization
- •LIGHT
- •PICTURE
- •3D Text Elements
- •TEXT
- •RICHTEXT
- •Primitive Elements
- •VERT
- •TEVE
- •VECT
- •EDGE
- •PGON
- •PIPG
- •COOR
- •BODY
- •BASE
- •Cutting in 3D
- •CUTPLANE
- •CUTPOLY
- •CUTPOLYA
- •CUTSHAPE
- •CUTFORM
- •Solid Geometry Commands
- •GROUP
- •ENDGROUP
- •ADDGROUP
- •SUBGROUP
- •ISECTGROUP
- •ISECTLINES
- •PLACEGROUP
- •KILLGROUP
- •SWEEPGROUP
- •Binary 3D
- •2D Shapes
- •Drawing Elements
- •HOTSPOT2
- •LINE2
- •RECT2
- •POLY2
- •POLY2_
- •POLY2_A
- •POLY2_B
- •POLY2_B{2}
- •POLY2_B{3}
- •CIRCLE2
- •SPLINE2
- •SPLINE2A
- •PICTURE2
- •PICTURE2{2}
- •Text Element
- •TEXT2
- •RICHTEXT2
- •Binary 2D
- •FRAGMENT2
- •FRAGMENT2
- •3D Projections in 2D
- •PROJECT2
- •PROJECT2{2}
- •PROJECT2{3}
- •Drawings in the List
- •DRAWING2
- •DRAWING3
- •DRAWING3{2}
- •DRAWING3{3}
- •Graphical Editing
- •Hotspot-based Editing Commands
- •HOTSPOT
- •HOTLINE2
- •HOTARC2
- •Status Codes
- •Status Code Syntax
- •Additional Status Codes
- •Previous part of the polyline: current position and tangent is defined
- •Segment by absolute endpoint
- •Segment by relative endpoint
- •Segment by length and direction
- •Tangential segment by length
- •Set start point
- •Close polyline
- •Set tangent
- •Set centerpoint
- •Tangential arc to endpoint
- •Tangential arc by radius and angle
- •Arc using centerpoint and point on the final radius
- •Arc using centerpoint and angle
- •Full circle using centerpoint and radius
- •Attributes
- •Directives
- •Directives for 3D and 2D Scripts
- •RADIUS
- •RESOL
- •TOLER
- •LINE_PROPERTY
- •[SET] STYLE
- •SET STYLE 0
- •Directives Used in 3D Scripts Only
- •MODEL
- •[SET] MATERIAL
- •SECT_FILL
- •SHADOW
- •Directives Used in 2D Scripts Only
- •DRAWINDEX
- •[SET] FILL
- •[SET] LINE_TYPE
- •Inline Attribute Definition
- •Materials
- •DEFINE MATERIAL
- •DEFINE MATERIAL BASED_ON
- •DEFINE TEXTURE
- •Fills
- •DEFINE FILL
- •DEFINE FILLA
- •DEFINE SYMBOL_FILL
- •DEFINE SOLID_FILL
- •DEFINE EMPTY_FILL
- •Line Types
- •DEFINE LINE_TYPE
- •DEFINE SYMBOL_LINE
- •Styles
- •DEFINE STYLE
- •DEFINE STYLE {2}
- •Paragraph
- •Textblock
- •Additional Data
- •External file dependence
- •Non-Geometric Scripts
- •The Properties Script
- •DATABASE_SET
- •DESCRIPTOR
- •REF DESCRIPTOR
- •COMPONENT
- •REF COMPONENT
- •BINARYPROP
- •SURFACE3D ( )
- •VOLUME3D ( )
- •POSITION
- •DRAWING
- •The Parameter Script
- •VALUES
- •PARAMETERS
- •LOCK
- •HIDEPARAMETER
- •The User Interface Script
- •UI_DIALOG
- •UI_PAGE
- •UI_CURRENT_PAGE
- •UI_BUTTON
- •UI_SEPARATOR
- •UI_GROUPBOX
- •UI_PICT
- •UI_STYLE
- •UI_OUTFIELD
- •UI_INFIELD
- •UI_INFIELD {2}
- •UI_INFIELD{3}
- •UI_TOOLTIP
- •Expressions and Functions
- •Expressions
- •VARDIM1(expr)
- •VARDIM2(expr)
- •Operators
- •Arithmetical Operators
- •Relational Operators
- •Boolean Operators
- •Functions
- •Arithmetical Functions
- •CEIL
- •ROUND_INT
- •Circular Functions
- •Transcendental Functions
- •Boolean Functions
- •Statistical Functions
- •Bit functions
- •BITTEST
- •BITSET
- •Special Functions
- •String Functions
- •SPLIT
- •STRLEN
- •STRSTR
- •STRSUB
- •Control Statements
- •Flow Control Statements
- •NEXT
- •GOTO
- •GOSUB
- •RETURN
- •END / EXIT
- •Parameter Buffer Manipulation
- •Macro Objects
- •The Output Statement
- •File Operations
- •OPEN
- •INPUT
- •VARTYPE
- •OUTPUT
- •CLOSE
- •Miscellaneous
- •Global Variables
- •General environment information
- •Story information
- •Fly-through information
- •General element parameters
- •Object, Lamp, Door, Window parameters
- •Object, Lamp parameters
- •Object, Lamp, Door, Window parameters - available for listing and labels only
- •Object, Lamp parameters - available for listing and labels only
- •Window, Door and Wall End parameters
- •Window, Door parameters - available for listing and labels only
- •Lamp parameters - available for listing and labels only
- •Label parameters
- •Wall parameters - available for Doors/Windows
- •Wall parameters - available for listing and labels only
- •Column parameters - available for listing and labels only
- •Beam parameters - available for listing and labels only
- •Slab parameters - available for listing and labels only
- •Roof parameters - available for listing and labels only
- •Fill parameters - available for listing and labels only
- •Mesh parameters - available for listing and labels only
- •Free users’ globals
- •Requests
- •REQUEST
- •Doors and Windows
- •General Guidelines
- •Creation of Door/Window Library Parts
- •3D related challanges
- •Rectangular Doors/Windows in Straight Walls
- •Non-Rectangular Doors/Windows in Straight Walls
- •WALLHOLE
- •WALLNICHE
- •Rectangular Doors/Windows in Curved Walls
- •Non-Rectangular Doors/Windows in Curved Walls
- •2D Related Challanges
- •Cutting custom wall opening
- •WALLHOLE2
- •WALLBLOCK2
- •WALLLINE2
- •WALLARC2
- •GDL Created from the Floor Plan
- •Keywords
- •Common Keywords
- •Reserved Keywords
- •3D Use Only
- •2D Use Only
- •Non-Geometric Scripts
- •Property Script
- •Parameter Script
- •Interface Script
- •Alphabetical List of Current GDL Keywords
- •Parameter Naming Convention
- •GDL Data I/O Add-On
- •Description of Database
- •Opening a Database
- •Reading Values from Database
- •Writing Values into Database
- •Closing Database
- •GDL DateTime Add-On
- •Opening Channel
- •Reading Information
- •Closing Channel
- •GDL File Manager I/O Add-On
- •Specifying Folder
- •Getting File/Folder Name
- •Finishing Folder Scanning
- •GDL Text I/O Add-On
- •Opening File
- •Reading Values
- •Writing Values
- •Closing File
- •Property GDL Add-On
- •OPEN
- •CLOSE
- •INPUT
- •OUTPUT
- •GDL XML Extension
- •Opening XML Document
- •Reading XML Document
- •Modifying XML Document
- •Index
- •Numerics
Miscellaneous
MESH_SEGMENTS_NR |
|
number of segments of the mesh |
MESH_HOLES_NR |
|
number of holes in the mesh |
MESH_HOLES_AREA |
|
area of holes in the mesh |
MESH_HOLES_PRM |
|
perimeter of holes in the mesh |
Free users’ globals |
|
|
|
|
|
GLOB_USER_1 |
S_ |
|
|
|
|
GLOB_USER_2 |
T_ |
|
|
|
|
GLOB_USER_3 |
U_ |
|
|
|
|
GLOB_USER_4 |
V_ |
|
|
|
|
GLOB_USER_5 |
W_ |
|
|
|
|
GLOB_USER_6 |
X_ |
|
|
|
|
GLOB_USER_7 |
Y_ |
|
|
|
|
GLOB_USER_8 |
Z_ |
|
|
|
|
GLOB_USER_9 |
G~ |
|
|
|
|
GLOB_USER_10 |
I~ |
free variables 1 to 10 are initalized to number by default |
|
|
|
GLOB_USER_11 |
|
|
|
|
|
GLOB_USER_12 |
|
|
|
|
|
GLOB_USER_13 |
|
|
|
|
|
GLOB_USER_14 |
|
|
|
|
|
GLOB_USER_15 |
|
|
|
|
|
GLOB_USER_16 |
|
|
|
|
|
GLOB_USER_17 |
|
|
|
|
|
GLOB_USER_18 |
|
|
|
|
|
GLOB_USER_19 |
|
|
|
|
|
GLOB_USER_20 |
|
free variables 11 to 20 are initalized to string by default |
|
|
|
ArchiCAD 11 GDL Reference Guide |
239 |
Miscellaneous
Example illustrating the usage of the GLOB_WORLD_ORIGO_... globals:
GLOB_WORLD_ORIGO_... globals:
ADD2 -GLOB_WORLD_ORIGO_OFFSET_X - SYMB_POS_X, -GLOB_WORLD_ORIGO_OFFSET_X -SYMB_POS_Y
LINE2 -0.1, 0.0, 0.1, 0.0
LINE2 0.0, -0.1, 0.0, 0.1 HOTSPOT2 0.0, 0.0, 1
TEXT2 0, 0, "( 0.00 ; 0.00 )" TEXT2 0, 0.5, "World Origo" DEL TOP
if ABS(GLOB_WORLD_ORIGO_OFFSET_X) > 0.01 OR ABS(GLOB_WORLD_ORIGO_OFFSET_Y) > 0.01 THEN ADD2 - SYMB_POS_X, - SYMB_POS_Y
LINE2 -0.1, 0.0, 0.1, 0.0
LINE2 0.0, -0.1, 0.0, 0.1 HOTSPOT2 0.0, 0.0, 2 TEXT2 0, 0, "(" + STR
(GLOB_WORLD_ORIGO_OFFSET_X, 9, 4) + "; " +
STR (GLOB_WORLD_ORIGO_OFFSET_Y, 9, 4) + " )" TEXT2 0, 0.5, "Virtual Origo"
DEL TOP
ENDIF
if ABS(GLOB_WORLD_ORIGO_OFFSET_X + SYMB_POS_X) > 0.01 OR ABS(GLOB_WORLD_ORIGO_OFFSET_Y + SYMB_POS_Y) > 0.01 THEN
LINE2 -0.1, 0.0, 0.1, 0.0
LINE2 0.0, -0.1, 0.0, 0.1 HOTSPOT2 0.0, 0.0, 3
TEXT2 0, 0, "(" + STR (GLOB_WORLD_ORIGO_OFFSET_X + SYMB_POS_X, 9, 4) + "; " + STR (GLOB_WORLD_ORIGO_OFFSET_Y + SYMB_POS_Y, 9, 4)+ " )"TEXT2 0, 0.5, "Object Placement"
ENDIF
Old global variable names can be used; however, the use of the new names is recommended. Each old global corresponds to a new variable with a long name.
A_ |
GLOB_SCALE |
B_ |
GLOB_HSTORY_ELEV |
C_ |
WALL_THICKNESS |
D_ |
WALL_HEIGHT |
E_ |
WALL_SECT_PEN |
F_ |
WALL_FILL_PEN |
G_ |
WALL_MAT_A |
H_ |
WALL_MAT_B |
I_ |
WALL_MAT_EDGE |
J_ |
GLOB_ELEVATION |
K_ |
WIDO_SILL |
L_ |
SYMB_VIEW_PEN |
M_ |
SYMB_MAT |
N_ |
GLOB_FRAME_NR |
O_ |
GLOB_FIRST_FRAME |
P_ |
GLOB_LAST_FRAME |
Q_ |
GLOB_HSTORY_HEIGHT |
R_ |
WIDO_ORIG_DIST |
S_ |
GLOB_USER_1 |
T_ |
GLOB_USER_2 |
U_ |
GLOB_USER_3 |
V_ |
GLOB_USER_4 |
W_ |
GLOB_USER_5 |
X_ |
GLOB_USER_6 |
Y_ |
GLOB_USER_7 |
Z_ |
GLOB_USER_8 |
A~ |
WALL_FILL |
B~ |
WIDO_RIGHT_JAMB |
C~ |
WIDO_THRES_DEPTH |
D~ |
WIDO_HEAD_DEPTH |
E~ |
WIDO_REVEAL_SIDE |
F~ |
WIDO_FRAME_THICKNESS |
G~ |
GLOB_USER_9 |
H~ |
WIDO_POSITION |
240 |
ArchiCAD 11 GDL Reference Guide |
Miscellaneous
I~ |
GLOB_USER_10 |
J~ |
WALL_RESOL |
K~ |
GLOB_EYEPOS_X |
L~ |
GLOB_EYEPOS_Y |
M~ |
GLOB_EYEPOS_Z |
N~ |
GLOB_TARGPOS_X |
O~ |
GLOB_TARGPOS_Y |
P~ |
GLOB_TARGPOS_Z |
Q~ |
GLOB_CSTORY_ELEV |
R~ |
GLOB_CSTORY_HEIGHT |
S~ |
GLOB_CH_STORY_DIST |
T~ |
GLOB_SCRIPT_TYPE |
U~ |
GLOB_NORTH_DIR |
V~ |
SYMB_MIRRORED |
W~ |
SYMB_ROTANGLE |
X~ |
SYMB_POS_X |
Y~ |
SYMB_POS_Y |
Z~ |
SYMB_POS_Z |
ArchiCAD 11 GDL Reference Guide |
241 |
