New GDL Features in ARCHICAD 19

This section informs you about new GDL features in version 19.
You can find the definition of the new and modified commands by following the links.

New GDL commands, functions and options

Parameter script
The number of the parameter script runs can be reduced to one by a new switch in Compatibility Options.

See the section called Parameter script in the Basic Technical Standards for more information.

New global variables
See the section called Global Variables:

  • LABEL_ALWAYS_READABLE for annotation objects
  • LABEL_TEXT_WRAP for annotation objects
  • LABEL_FRAME_OFFSET for annotation objects
  • LABEL_ASSOC_ELEM_ORIENTATION for annotation objects
  • GLOB_VIEW_TYPE to determine the active view
  • GLOB_PREVIEW_MODE to determine the active preview
  • GLOB_FEEDBACK_MODE for editing context indication
  • GLOB_SEO_TOOL_MODE for solid element operations context indication

New requests options
See the section called REQUEST Options for details:

  • REQUEST for “Full_ID_of_parent” in annotation elements
  • REQUEST for “COMPONENT_PROJECTED_AREA” for Properties script use
  • REQUEST for “COMPONENT_VOLUME” for Properties script use

New and enhanced string commands
New commands:

  • STRTOUPPER to convert strings to uppercase
  • STRTOLOWER to convert strings to lowercase

Enhanced command:

  • STRSTR search for substrings in case insensitive mode option added

Enhanced user interface script commands

  • UI_INFIELD{3}
  • UI_INFIELD{4}
  • UI_TOOLTIP

New options:

  • dynamic array handling function for picture indexes, descriptions and values for UI_INFIELD commands
  • tooltip option for UI_LISTITEM and UI_LISTFIELD commands

New and enhanced 3D commands
New commands:

  • PGON{3}
  • COOR{2}
  • CUTFORM{2}
  • SWEEPGROUP extended with version {4}
  • POINTCLOUD

Enhanced commands:

  • ISECTGROUP new bit value for “operationStatus” to control surface and texture settings inheritance
  • EDGE new bit value for sharp edge rendering between 2 curved polygons
  • PROJECT2 version {3} new bit value to enable transparency with transparent surfaces
  • DRAWING3 new bit value to enable transparency with transparent surfaces

Enhanced graphical editing commands:

  • HOTSPOT
  • HOTSPOT2

New options:

  • j11: new flag bit to use paramReference value as meters in paper space for HOTSPOT2
  • customDescription: new parameter to set a custom description for the displayed parameter in the information palette

Recommended updates of existing library parts

With the growing feature set of , the coding requirements of GDL objects have also grown during the last years.
To gain the advantage of these new features, the optimization of existing GDL codes might be necessary.

Background Processing

Starting from ARCHICAD 19, all calculations necessary for opening 3D related views or viewpoints will be run as backgound processes.
This will make model generation considerably faster.
However, there are some GDL functions and commands which are not compatible with multi-thread processing. For detailed information, check out the
the section called Background Conversion of the manual. Objects containing the excluded items will not be able to take advantage of the new speed enhancement,
they will work only the same way as in the previous version.

Restrictions of Global Variable, Request and Application Query use in Parameter Script
To ensure the parameter value consistency of a library part, and the validity of returned values in all views, contexts, and TeamWork environment,
the use of some Global Variables, Requests and Application Queries is not supported in the following environments, starting from version 19:

  • parameter script
  • master script used as parameter script
  • Master.gdl, Master.gsm, and Library Master objects

The occurence of these items in parameter script will cause additional GDL warnings, but the functionality will remain the same for the current version.
(More information about GDL warning improvements in the section called GDL warnings.)

For more detailed information, please consult:

Deprecated and obsolete functionalities

Global Variable Updates
Parallel to the 4 new view and context definition globals, the GLOB_CONTEXT global became deprecated.
See the section called “Deprecated Global Variables”.

User Global functionality changes

The value of user globals was not always reset to the default defined in the Master GDL, potentially leading to erroneous data exchange among library parts.
From 19, all elements will always read the value set by the Master GDL first, unless their own scripts (caller object or called macro) modify that value.
There will be no user global data exchange between the different interpretation instances. See the section called Variables for details.

Plans for next versions

Restrictions of Global Variable, Request and Application Query use in Parameter Script
More severe restrictions of use is subject to be implemented in the next versions: the previously mentioned,
restricted items will return a static value (0, emtpy string or a generic default) when used in parameter scripts, along with the existing warning message.
Make sure to keep this in mind while developing for the future releases.