This section contains a fly-through of the new GDL features in ARCHICAD 23.
New data type: dictionary
It is now possible to organize variables and parameters in a structured way, similar to many other languages. Dictionary data type – declared with the keyword DICT
– is a hierarchical collection of key-value pairs, where values can be other dictionaries or arrays too.
dict pointA, object pointA.x = 1 pointA.y = 2 object.parts[3].edges[4].points[5] = pointA
This technique
- allows more readable and easier-to-maintain code
- can be used when more-than-two dimensional arrays would be needed
- reduces the number of variables needed for data exchange between AC and GDL objects (global variables and requests)
- reduces the number of parameters needed for data exchange between objects and macros
For more detailed info, see
- general syntax: Structured types section of the manual,
DICT
keyword - new functions:
HASKEY
,REMOVEKEY
, PolyOperations functions - new return type:
VARTYPE
- globals using dict data type:
OPENING_SYMBOL_GEOMETRY
,OPENING_HEADERHEIGHT_VALUES
,OPENING_CENTERHEIGHT_VALUES
,OPENING_SILLHEIGHT_VALUES
- requests using dict data type:
"Component_Ids_Of_Parent"
,"Component_Property_Values_Of_Parent"
,"Property_Values_Of_Parent"
New functions in PolyOperations add-on
Polygons/polylines can be given as a dictionary when communicating with the PolyOperations add-on. The general workflow is the same, storing/reading can be simplified with these functions:
StoreDictPolyline
,StoreDictPolygon
GetSourceDictPolyline
,GetSourceDictPolygon
GetDestinationDictPolyline
,GetDestinationDictPolygon
The dictionary structure is the same as OPENING_SYMBOL_GEOMETRY.polygon2D
.
New tool: Opening
The new opening tool’s 2D symbol is a GDL object. New symbols can be created using the subtype General GDL Object / Documentation Element / Opening Symbol
.
An opening has two independent symbols, one shown when the opening is cut (in a wall), the other when the opening is viewed (in a slab).
For more detailed info, see
OPENING_SYMBOL_DISPLAY
OPENING_SYMBOL_GEOMETRY
OPENING_HEIGHT
OPENING_WIDTH
OPENING_HEADERHEIGHT_VALUES
OPENING_CENTERHEIGHT_VALUES
OPENING_SILLHEIGHT_VALUES
GLOB_ELEM_TYPE
Updated tools: Beam and Column
With the updated Beam and Column tools it is possible to model multi-segmented elements. New labels can be chosen to be placed on the elements or on segments, labels placed on segments receive a new GLOB_ELEM_TYPE
. Most of the Beam and Column global variables are available for them, for availability details see Beam and Column global variables.
For more detailed info, see:
GLOB_ELEM_TYPE
BEAM_SEGMENT_INDEX
COLU_SEGMENT_INDEX
BEAM_SEGMENT_INFO
COLU_SEGMENT_INFO
- deprecated
BEAM_CROSSSECTION_TYPE
- deprecated
COLU_CROSSSECTION_TYPE
- deprecated
ac_beam_crosssection_type
- deprecated
ac_colu_crosssection_type
New Property requests
From ARCHICAD 23 Building Materials can have Properties and Classifications. The properties of the building materials are referred to as component properties, as these properties belong to a component of the parent element. To display these properties new requests have been introduced, which are available in Labels.
The input and output values of “Component_Ids_Of_Parent” and “Component_Property_Values_Of_Parent” requests are in the new dictionary format, “Component_Properties_Of_Parent” has the same input and output data structure as the existing “Properties_Of_Parent” request.
- “Component_Ids_Of_Parent” The available Building Material components in the parent element are identified by ARCHICAD, these IDs are available through the “Component_Ids_Of_Parent” request.
- “Component_Property_Values_Of_Parent” To get the component property values of a parent element, the new “Component_Property_Values_Of_Parent” request can be used. It returns the property values for a given component with any number of given property IDs.
- “Component_Properties_Of_Parent” For the Property selection on the User Interface the “Component_Properties_Of_Parent” has been introduced. This request is similar to “Properties_Of_Parent”, except that it returns the available component properties of the parent element.
- “Property_Values_Of_Parent” A new version of the “Property_Value_Of_Parent” request is available: “Property_Values_Of_Parent”. This request’s input and output values are defined in the new dictionary format. Unlike “Property_Value_Of_Parent”, multiple property IDs can be defined as dictionary keys, and multiple property values are returned.
Diagnostics mode
There is a new menu command that allows easier debugging where the GDL Debugger doesn’t work (complex tools like Curtain Wall, Stair, Railing, Opening or debugging the contents of dictionaries). In the Library Developer Menu (it can be added via Work Environment / Menus) the Library Part Diagnostics Mode menu item toggles the GLOB_DIAGNOSTICS_MODE
global. It can be used to write conditional PRINT
commands and/or show hidden parameters on the UI that control the debugging process. The model is not automatically rebuilt after toggling the menu, use Rebuild & Regenerate (Ctrl-Alt-Shift-R) to re-run the scripts.
Some ARCHICAD library parts use this feature, make sure to publish plans with the menu item turned off.
Command updates and extended versions
TUBE
andTUBE{2}
Edge elimination (automatically hidden lines where two faces meet in the same plane with the same surface) is possible with these commands too. Similarly toCPRISM_{3}
, masks can be given for the whole body to control base, end, longitudinal and sectional edges.- new
COONS{2}
It is possible to hide the boundaries of aCOONS
with a smooth surface. - new
RULEDSEGMENTED{2}
It is possible to assign different materials to each segment.. "ASSOCLP_PARVALUE"
and"ASSOCLP_PARVALUE_WITH_DESCRIPTION"
requests can handle parameters of profile type.- Documentation We made some clarifications in the Reference Guide, look them up if you use these:
AC_LabelPointerLineType
– typeAC_LabelPointerPen
– typeAC_bLabelFrame
– typeac_holeSideMaterial
– previously existing, but undocumentedac_holeMaterialCurved
– previously existing, but undocumentedVARTYPE
– undocumented return value 3 for groups, new value 4 for dictionaries"CentreOfGravity"
– previously existing, but undocumented PolyOperations function
IFC4
The IFC Add-on uses IFC4 standard instead of IFC 2×3. There are some minor changes in these these fix-named parameters:
ifc_optype
– new opening type for Doorsifc_optype
,ifc_CapacityByWeight
andifc_CapacityByNumber
– deprecated for Transport Elementsifc_subtype
– new types for MEP elements
New source format with LP_XMLConverter
The LP_XMLConverter tool can convert to and from a new type of source format called HSF. Library parts are stored in the same folder as images, the xml source is split into smaller xml files and separate .gdl scripts.
LCF and GSM made from XML is fully compatible in ARCHICAD with one made from HSF, conversion between HSF and XML can be done using LP_XMLConverter via the GSM format.