- •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
3D Shapes
CSLAB_
CSLAB_ top_material, bottom_material, side_material, n, h, x1, y1, z1, s1, ... xn, yn, zn, sn
Extension of the SLAB_ statement; the first three parameters are used for the material name/index of the top, bottom and side surfaces. The other parameters are the same as above in the SLAB_ statement.
See also “Materials” on page 160 and the “Requests” on page 242 > IND function description “Miscellaneous” on page 223.
si: status code that allows you to control the visibility of polygon edges and side surfaces. You can also define holes and create segments and arcs in the polyline using special constraints.
See “Status Codes” on page 139 for details.
CWALL_
CWALL_ left_material, right_material, side_material, height, x1, x2, x3, x4, t,
mask1, mask2, mask3, mask4, n,
x_start1, y_low1, x_end1, y_high1, frame_shown1,
...
x_startn, y_lown, x_endn, y_highn, frame_shownn, m,
a1, b1, c1, d1,
...
am, bm, cm, dm
left_material, right_material, side_material:
Material names/indices for the left, right and side surfaces. (The left and right sides of the wall follow the x axis.)
See also “Materials” on page 160 and the “Requests” on page 242 > IND function description.
The reference line of the wall is always transformed to coincide with the x axis. The sides of the wall are in the x-z plane.
height: The height of the wall relative to its base.
ArchiCAD 11 GDL Reference Guide |
45 |
3D Shapes
x1, x2, x3, x4: The projected endpoints of the wall lying on the x-y plane as seen below. If the wall stands on its own, then
x1 = x4 = 0, x2 = x3 = the length of the wall. t: the thickness of the wall.
t < 0 if the body of the wall is to the right of the x axis, t > 0 if the body of the wall is to the left of the x axis,
t = 0 if the wall is represented by a polygon and frames are generated around the holes. mask1, mask2, mask3, mask4: Control the visibility of edges and side polygons.
maski = j1 + 2*j2 + 4*j3 + 8*j4 where j1, j2, j3, j4 can be 0 or 1.
The j1, j2, j3, j4 numbers represent whether the vertices and the side are present (1)
or omitted (0). |
mask 4 |
|
|
n: the number of openings in the wall. |
|
x_starti, y_lowi, x_endi, y_highi: coordinates of the openings as shown below. |
|
Y |
|
|
|
t |
|
|
|
|
|
|
X |
x1 |
x4 |
x3 |
x2 |
Z |
mask 3 |
|
|
|
|
|
|
|
Y |
|
|
|
|
|
mask 2 |
j2 |
j3 |
|
|
j4 |
|
|
|
|
|
|
|
|
j1 |
|
X |
frame_showni values:
1, if the edges of the hole are visible; 0, if the edges of the hole are invisible.
Negative values control the visibility of each of the opening’s edges separately.
Z
height
frame_showni = -(1*j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7 + 128*j8),
where j1, j2... j8 can be either 0 or 1. The numbers j1 to j4 control the visibility of the edges of the hole on the left-hand side of the wall surface,
while j5 to j8 affect the edges on the right-hand side, as shown on the illustration below.
x_start i
x_end i
mask 1
|
i |
|
high |
i |
|
low |
y_ |
y_ |
|
|
|
X
46 |
ArchiCAD 11 GDL Reference Guide |
3D Shapes
An edge that is perpendicular to the surface of the wall is visible if there are visible edges drawn from both of its endpoints.
m: the number of cutting planes.
ai, bi, ci, di: coefficients of the equation defining the cutting plane [ai*x + bi*y + ci*z = di]. Parts on the positive side of the cutting plane (i.e., ai*x + bi*y + ci*z > di) will be cut and removed.
[ai, bi, ci]
Z |
|
|
|
j3 |
|
|
j7 |
j2 |
|
|
|
j4 |
j1 |
j6 |
|
|
|
j8 |
j5 |
|
Y |
|
|
|
|
|
|
|
X |
BWALL_
BWALL_ left_material, right_material, side_material, height, x1, x2, x3, x4, t, radius,
mask1, mask2, mask3, mask4, n,
x_start1, y_low1, x_end1, y_high1, frame_shown1,
...
x_startn, y_lown, x_endn, y_highn, frame_shownn, m,
a1, b1, c1, d1,
...
am, bm, cm, dm
A smooth curved wall based on the same data structure as the straight wall CWALL_ element. The only additional parameter is radius.
Derived from the corresponding CWALL_ by bending the x-z plane onto a cylinder tangential to that plane. Edges along the x axis are transformed to circular arcs, edges along the y axis will be radial in direction, and vertical edges remain vertical. The curvature is approximated by a number of segments set by the current resolution (see the commands: “RADIUS” on page 152, “RESOL” on page 153 and “TOLER” on page 154).
See also “CWALL_” on page 45 for details.
ArchiCAD 11 GDL Reference Guide |
47 |
3D Shapes
Examples: a BWALL_ and the corresponding CWALL_.
ROTZ -60 |
|
|
|
|
|
|
BWALL_ 1, 1, 1, |
6, |
0, |
|
|||
4, |
0, |
6, |
|
|||
0.3, |
|
2, |
15, |
15, |
|
|
15, |
|
15, |
|
|||
5, |
|
|
|
|
|
-255, |
1, 1, 3.8, 2.5, |
||||||
1.8, 0, 3, 2.5, |
-255, |
|||||
4.1, 1, 4.5, 1.4, -255, |
||||||
4.1, 1.55, 4.5, |
1.95,-255, |
|||||
4.1, 2.1, 4.5, 2.5, -255, |
||||||
1, 0, -0.25, 1, |
3 |
48 |
ArchiCAD 11 GDL Reference Guide |