Geometric Description Language
In computer-aided design, Geometric Description Language (GDL) is the programming language of ArchiCAD library parts. GSM is the file format of these CAD objects.

Area of usage

These objects are similar to blocks in AutoCAD, but unlike blocks, these are parametric, and the 2D and 3D features are connected, so in any view one can get the correct visualization (for example a side view on the section, top view on plan, and perspective in the 3D view). GDL scripts define an ArchiCAD library part in its main roles, these are 3D model, 3D model projected to section/elevation or to 2D plan, 2D plan view, user interface display and behaviour and listing quantities.

All versions of the ArchiCAD contain their own default libraries, also objects like furniture, windows, doors, trees, people, cars, construction elements, etc.

There are several commercial websites for selling high-detailed intelligent parametric objects, which are perhaps better and more variable than the default libraries, for example there are a lot of environmental objects like plants, people or garden elements, which are not included in the original software.

Licensing 

GDL is a free technology (although ArchiCAD itself is a commercial software), it is allowed and possible to develop GDL based object libraries using free tools like Graphisoft LP_XMLConverter and Graphisoft GDL Web Plug-In.

Technical information 

The GDL programming language is BASIC-like. It has the same control flow statements and variable logic.

In 2D and 3D in GDL, all the model elements are linked to a local right-handed coordinate system. For placing an element in the desired position, you have to move the coordinate system to the desired position (and orientation), then generate the element itself. Every movement, rotation or stretching of the coordinate system is called a transformation. Transformations are stored in a stack, which can be extended by further transformations and can be cut by deleting one or more transformations from the top of it.

GDL maintains forward compatibility, which means that an ArchiCAD library part will be readable with every subsequent ArchiCAD program, but not necessarily with any earlier versions.

External links 
GDL Center, GRAPHISOFT's GDL knowledge base and community center
GDL Cookbook 3
GDL Cookbook 4
ArchiCAD GDL vs Revit Families

CAD file formats
Procedural programming languages
Dynamically typed programming languages
Domain-specific programming languages