New GDL Features in ARCHICAD 20

New GDL Features in ARCHICAD 20

This section informs you about new GDL features in version 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 in addends_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:

Enhanced GDL commands

  • UI_RADIOBUTTON{2}: option to use the command with string expressions as well.
  • UI_INFIELD: new method 9 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 standard
  • REQUEST "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: