Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

GDL in the age of Grasshopper, is it worth it?

Anonymous
Not applicable
Hello,

I have been using ArchiCAD for 8 years now, so naturally, learning GDL seemed to be the next step. I have been learning GDL scripting on and off for the past two years and while I enjoy creating custom objects in my personal time, I keep coming back to the same question... is it worth it?

Having recently graduated University in Sydney, Australia, I was exposed to Rhino + Grasshopper which I also enjoy using (especially with the ArchiCAD - Grasshopper Live Connection). The benefit of Grasshopper is that it is relatively user friendly for architects given that it has a visual interface. Similarly, Revit Families appear to have some type of visual interface (although I have not had much exposure to this). GDL on the other hand seems to be dated and not as user friendly, not to mention the lack of available learning resources (other than the obvious ones).

I guess my question is, has GDL had it's day? Should I really be investing so much time in learning something which seems to be out of sync with what is being taught in Universities? Of course this might not be the case for other Universities overseas, however in Australia, this is most certainly the case. It is also worth mentioning that I work for a small practice, however, GDL scripting does not appear to be a desirable skill that Architecture Practices are actively seeking. Is this also the case for large practices using ArchiCAD in Australia or elsewhere?

Furthermore, it is my understanding that GDL is a proprietary programming language, this also appears to be on a downwards trend with other programming languages such as Python becoming widely adopted and integrated into 3D modelling softwares such as Rhino + Grasshopper. Would my time be better spent learning Python?

Feel free to post your thoughts below. I am interested to know where people stand on this? And I welcome any advice that experienced ArchiCAD users have to offer.
20 REPLIES 20
TMA_80
Enthusiast
And how to consider this ?:
AC12_20 |Win10_64bit|
Nader Belal
Mentor
@TMA_80

Just a question,

Do you know how to cook ? Or to fry an egg ?
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.
TMA_80
Enthusiast
I just eat ...as in the example above.
AC12_20 |Win10_64bit|
runxel
Legend
Moonlight wrote:
@runxel

I'm Nader 😉

would you please how to use your colour coding for VS Code??
Ah, hi Nader! 🙂
Well... you can't – at the moment there is nothing like that.
But, ahem, I'm working on it! Albeit slowly. I can only do it in my currently very limited spare time. Also: developing for VSC is a time consuming task; Microsoft does a lot of things I consider unnecessarily hard.
So, since I'm not getting paid, the implementation for VSC will take some time. Don't wait for it. If it ever makes it I will let you know it's done! 🙂
Lucas Becker | AC 27 on Mac | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text |
«Furthermore, I consider that Carth... yearly releases must be destroyed»
Nader Belal
Mentor
@tma_80
just answer the question

@runxel

No problem, take your time 😉
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.
Anonymous
Not applicable
Is using Rhino BIMscript a viable option of creating objects for ArchiCAD?
I'm referring to parametric objects that perform well in ArchiCAD.

What i am trying to achieve is creating objects that have a few limited options of textures and general geometry layout that correspond to actual furniture available for purchase. No more, no less, since the actual goal is bringing into ArchiCAD environment representations of specific real life products.

I don't know if BIMscript is the way to go, but scripting every point with GDL seems to be a bit inefficient.
Nader Belal
Mentor
@T.S.

About BIMscript,

1. BIM script is not a McNeel product or initiative, it's BIM object project.

2. BIM Script, is a product destined mainly to companies that:
2.a. Have a firm grip of their products' BIM object & library parts.
2.b. Keep the creation of their BIM object & library parts in house, without the need of having specialized personnel for every BIM platform (remember that there're those who use AllPlan and Vectorworks).
2.c. Provide BIM object & library parts compatible with BIMobject's internal protocols.

So in that context, yes it makes sense, but ......

3.On other hands, if we compared library parts creation using traditional methods to those of BIMScript, I find that:
3.a. BIM Script library parts have a GDL verbose structure and method that goes in the opposite direction for what GDL can provide.
In fact, I wouldn't be surprised if a GDL novice user would be capable of delivering the same library part in a more structured and optimised version of the object if s/he have built it from the ground up.

3.b. A great portion of GDL's parametricism is usually ignored, that many times is can be a game changer for some object.

3.c. Although GDL have a limited bi-way capabilities to communicate with ArchiCAD, which if known and used correctly can help establish time saving procedures, these are not addressed with in BIM Script.
*In BIM scripts' context, even that con makes sense, but not for a practice that uses ArchiCAD on an everyday basis.

3.d. Few times I have stumbled upon library parts made by BIMscript, based on predefined templates that were built on ArchiCAD's library parts template, and some of them had errors that were (to say the least) eye catching, such as downloading a manufacturer's fire rated door that had the option to add wooden shutters.
*To put that error in context, is like a student decided to copy the homework from the most intelligent guy in class, without taking notice that their homework is different

TL:DR Manufacture companies love/like/use BIMscript because it gives them the false sensation of fulfilling their clients' needs of library parts, but it's better for practices/offices/firms to stick to library parts that were created in their native platform environment.
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.
Anonymous
Not applicable
@Moonlight you convinced me.

Now, as for a practical question: How would you describe your workflow?

I was thinking of approaching the problem somewhat like this:
1. Constructing the object from slabs, walls, etc.
2. Convert the geometry to morphs
3. Let archicad generate the code for the various geometry parts of the object
4. Assemble the code parts in a new object (basically pasting them in the 3D script part into if colses that verify which parts of the geometry should be shown and with which textures)
5. The variables for this would be defined in the master part


A problem that i'm having is that in this manner the code gets very long and hard to navigate. Therefore I thought of using Sublime Text Editor to help me with this.

I do understand that in principle it is better to write all the code by hand, but this method seems to be quite time consuming to me. I wouldn't dare for example to construct baroque ornaments in this fashion.
Barry Kelly
Moderator
T.S. wrote:
2. Convert the geometry to morphs
Don't convert your elements to morphs before you save as an object, unless you really need to.
The only reason I can think of is if you need to further edit the element as a morph because you need something like a filleted edge.

Scripts for morphs are way more complex than other elements and impossible to edit if you need to.


Barry.
One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Nader Belal
Mentor
@T.S.

First, thank you @Barry Kelly for that insight, I would have forgotten to mention it.

Second,
My work flow is that I usually program my work flow from scratch, and PM me.

Third,
Automatic GDL script generation from ArchiCAD, can be a good or a bad idea depending on the context for usage, cause if you model something from a 3D object that can be simply scripted by GDL functions, then it's a bad idea, but if the object is complex, then the automatic script may be a good idea. The downside of the latter method, it tends (not always) to be verbose, either by the number of lines, or in the definition of the different vertices.

In case of 2D perimeters, automatic GDL script generation, although not my style of scripting, can be definitely be a time saver.
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.