On Land

Environment Information
At Rill Architects we run ArchiCAD on macOS. If you work at Rill, this is your stuff. If you don't, but you work in ArchiCAD, you may find something interesting. Anybody else, I don't know.

You're mostly on your own. I can help with questions, but the way you learn is struggle. Once you get the basic ideas, the GDL manual actually makes sense. The code itself is not very hard; GDL is a lightweight in programming language terms. The hard part is design, and being perfect.

Yes, perfect, at least with regard to spelling and syntax. When you are working with code, errors really aren't tolerated very well. The machine has no idea you meant "PRISM_" when you typed "PRSM_". This is very different from high level software, where the developers of a program have written in the ability to cut the user some slack. For example, you can have MS Word switch that spelling error for you before you even see it. Another: A big part of Archicad is detectability, which is a way of saying, once you're close enough, you're there.

Code doesn't work like this, and it can be frustrating, especially since some of the error messages you get are a little cryptic. It takes patience, which, it turns out, is more of a habit than a trait.

OK, end of parental advisory. What is GDL? It is the language of Objects, in all their types: doors, windows, lamps, labels, zone stamps, properties. It is a way of using words, logic and math to create drawing and model elements. In its simplest form, a GDL script says: "Go over there, make something, come back." (The coming back is technically optional, but do it anyway.) The complexity and power come in when the script can say: "Depending on what the user [that's you] does, or on conditions in the environment, make things a certain way, or in a certain quantity, or in a certain arrangement, and if the environment changes, adjust/change/rearrange the things as appropriate". And: "Remember that these things are usually particular building parts, so you should know something about them if anyone asks, which they will."

The ability of objects to change themselves on the fly in response to changes in the environment or decisions by the user is called "parametrics". You can have objects that aren't parametric, such as those saved from the plan or 3D window. Such objects are useful, but they're not flexible, so they tend to be one-offs. Parametric objects can act smart and follow rules, saving you a lot of time. This leads to an axiom:

It is impossible to professionally deploy Archicad without customized, parametric, GDL objects. GDL is the way you get Archicad to do exactly what you want.

From this, it follows that we make objects to solve problems, and we learn GDL so we can solve problems that Archicad can't solve by itself. It also means we learn what we need to solve the problem we have, and leave the window library to someone else. This is because windows are hard, and a lot of people are way ahead of you. But you likely have some problem that no one has worked on yet, and chances are that even a little GDL can help.

GDL is arguably the single most powerful feature of Archicad. That doesn't mean everyone has to do it, but it does mean that one person in each firm has to do it, or at least have access to the skills somewhere.