Choose your top Archicad wishes!

Read more

Useful guides to start your first GDL development

Doreena Deng

GDL is the abbreviation of Geometric Description Language, a functional programming language based on BASIC.

It was created to encourage architects to build their own geometric objects in Archicad, extending the possibilities of both design and presentation. The needs of your design, your background in programming, and your knowledge of descriptive geometry will all influence where you start in GDL.


Basic GDL is easy to understand: an architect with an affinity for programming is able to start creating simple objects with only a handful of commands. The more familiar you become with the language, the more complexity you can add to your growing collection of objects. The objects themselves can serve multiple purposes:

  • fulfilling custom requests
  • creating a standard object collection for office use
  • creating manufacturer object collection, based on specifications
  • customizing, enhancing objects shipped with ARCHICAD


An object (furniture, door, window, drawing element, etc.) created in GDL is called a library part. The name of the collection of such items is a library. The concept of a library part includes:

  • floor plan representation
  • 3D representation
  • listing and labeling options
  • user interface
  • parametric values


As you can see, an object created in GDL is able (and should) handle many ARCHICAD contexts. But how does it work? Creating a GDL object is based on 3 main principles:

  1. move the local coordinate system using and managing the transformation stack
  2. place 2D or 3D primitives (or bodies) into the coordinate system
  3. set the representation attributes of the used primitives

Most objects surrounding us in the real world can be modelled in a GDL space following this simple logic. 


Additional Resources

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!