New GDL Features in Archicad 20
The exact definiton and syntax of the commands will be available soon in the updated Reference Guide.
Introducing NURBS
The biggest hit this year in GDL is the possibility to create and store exact NURBS geometries. A whole bunch of related commands will be available, see here. The main purpose of these commands is to enable the import of exact NURBS descriptions via the Rhino in add-on of ARCHICAD, without losing any of the geometric data in the process. The visualization still relies on tesselation, but the data will stay intact during the process. Of course, using these commands, it is possible to create NURBS geometries by direct coding as well.
New versions of existing commands in relations with NURBS
COOR{3}
: The coordinate system of the projection body is included in the COOR{3} command itself, no need to define additional vertexes in the current BODY. Compatible with NURBS bodies (no non-NURBS primitives are needed to set up the texture coordinate system).PROJECT2{4}
: adds the possibility to define multiple cutting planes parallel to the X-Y plane, and to control the attributes of the cut and projected parts of the slices, including the line type, pens and fills, within one command.
Note: the previous versions of COOR
commands got deprecated.
New Global Variables
WALL_TEXTURE_WRAP
: this array contains all data for correct texture alignment of wall-connected objects (wall ends, doors, windows)
Property related new features
Instead of the existing Application Queries, a series of new Request Options are introduced in ARCHICAD 20:
REQUEST "Properties_Of_Parent"
: Returns the properties of the parent object. All properties are returned in one array with the following form: ID, type, group, name. Can be used only in labels. Causes warning if used in parameter script.REQUEST "Property_Value_Of_Parent"
: Returns value array of the selected property. Can be used only in labels. Causes warning if used in parameter script.REQUEST "Property_Name"
: Returns the type, group and name of the selected property. Can be used only in labels. Causes warning if used in parameter script.
In addition, new User Interface commands were created to support the visualization of the above requests:
UI_CUSTOM_POPUP_INFIELD
(and version {2} supporting string variable input): Generates a popup for a value list of a parameter defined in the User Interface script to avoid using the Parameter script. Suitable value lists which can not be requested in Parameter script.UI_CUSTOM_POPUP_LISTITEM
(and version {2} supporting string variable input): Generates a listitem with popup for a value list of a parameter defined in the User Interface script to avoid using the Parameter script. Suitable for value lists which can not be requested in Parameter script.
Additional new REQUEST Options
In addition to the above, here is a list of some more new requests:
REQUEST{3} "Sum_with_rounding"
: Returns the sum of the numbers inaddends_array
, with rounding according to the “Calculate Totals by” project preference. This preference can be found in Project Preferences / Calculation Units and Rules.REQUEST "AUTOTEXT_LIST"
: Returns one AUTOTEXT array of the autotexts used in the project with the following triplets [“ID”, “Category”, Name”]. Causes warning if used in parameter script. Can be used only in UI script.REQUEST "Configuration_number"
: Returns the configuration number of the current ARCHICAD license. Causes warning if used in parameter script.
Additional new Fix Named Optional Parameters
The following parameters can be used to customize label frame and pointer connection:
ac_bDisableLabelFrameDisplay
: enable/disable built-in rectangular frame display in connection with Pointerac_bCustomPointerConnection
: set up custom connection points on a label head using special hotspots
Enhanced GDL commands
UI_RADIOBUTTON{2}
: option to use the command with string expressions as well.UI_INFIELD
: new method9
introduced to position popup arrow outside the drawing area (opposed to method 3).STR{2}
: new flag*7
to return fractional part in extra accuracy string for inch-type formats (fi, ffi)
Deprecated commands and functions
Due to some of the new features of ARCHICAD 20, some of the existing commands got deprecated:
COOR
: the old versions will work, but COOR{3} is the new standardREQUEST "Constr_Fills_display"
: the returned value will always be 6 by default (Cut fill patterns: as in Settings).
Recommended updates of existing library parts
As a follow up to the parameter script clean-up in ARCHICAD 19, the restrictions of Global Variable, Request and Application Query use in Parameter Script will be in full-effect starting from ARCHICAD 20, to ensure the parameter value consistency of a library part, and the validity of returned values in all views, contexts, and TeamWork environment.
The occurrence of these items in parameter script will cause additional GDL warnings, and the functionality changes as well:
- the request expression will always return 0
- the requested values will get a type-matching default value (empty string or zero)
For more detailed information, please consult:
- the section called Global Variables for a list of not supported globals
- the section called REQUEST Options for a list of not supported requests
- the section called Application Query Options for a list of not supported application queries