Design forum
cancel
Showing results for 
Search instead for 
Did you mean: 

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

Jarrod Phillips
Newcomer
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.
Jarrod Phillips
Graduate of Architecture,
Stukel Architecture, Sydney
Australia

Versions 15 to 24
Lenovo ThinkStation P330 Tower - 9th Gen Intel Core i9-9900, 32GB ram, NVIDIA Quadro RTX 4000 (8GB), Windows 10
20 REPLIES 20

Jim Allen
Newcomer
A little while ago I posted a reply on this topic in the Visual GDL thread.

GDL is fine. It works, so replacing it seems to make no sense seeing how much of a key part it plays in Archicad.

The issue for me is getting a means of creating GDL objects which works intuitively and easily.

The example I posted was of SketchUp's Dynamic Components, which uses a really simple set of principles to create some pretty complex nd properly parametric components without anything like the GDL learning curve.

I've looked into GDL, and you have to define the geometry point by point in 3d space, which is kind of like AutoLisp. That was fine in the 80s, but it's definitely not now.

I think Graphisoft understand how much of an obstacle GDL is to building a huge community resourced library or parametric content. Look at BIMObject and you will see lots of static components. Sure they have all the parameters, but most of us don't want to browse through 15 different versions of objects all with different specific dimensions to find the one we want. And if we want to change it - we have to do it all over again!

It's awful.

A visual GDL editor would be a great addition. My suggestion would be for a standalone web-based tool, used for building, viewing and modifying GDL objects. It could even output IFC objects, or geometry in other formats. Maybe it could even import geometry and use it for creating Archicad versions of files from other sources.

Once it's accepted that this is a critical feature, there's some interesting discussions to be had over what form the tool should take.

I don't think it needs to be in Archicad. I would go for a standalone separate application, that you can run alongside Archicad. We've seen how Twinmotion's Direct link can work really neatly, why can't we have a web app?

I've seen BImScript and Lena, but these are too complex for most people. Something like the SketchUp approach I think is the way forward.

Nader Belal
Advisor
@Jarrof Phillips

I'm a professional GDL and Grasshopper programmer.

So I will give you a resume:
1. Many people here are against coding in general & GDL upfront, simply because they treat it as an esoteric practice that are best leave to "PROGRAMMERS" because architects should not code ... and sometimes there problems are quiet simply to solve by two to three lines max.

2. GDL is a long term investment and should be planned as such, and I mean that you need to learn the basics just to get along and solve pressing issues, experience will come on the way, and the rest will be built up upon those basics.

3. Unfortunately, Graphisoft's GDL manuals is not a good one, if you're interested you can read my personal favourite for SIr David A. Nicholson-Cole, The GDL Cookbook. You can get both versions free.

4. With GDL you can achieve things that can't be done with Grasshopper connection, and with Grasshopper you can achieve other things that can't be done by GDL, but the power house is in the common area that can be achieved by both, since that area can be used complement the other ones.

I can give you more info, but not as much since I have signed a NDA.
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.

Jim Allen
Newcomer
@Moonlight

It's not that architects can't or shouldn't code, it's that it isn't an efficient use of our time. There are so many things we need to deal with that are construction-related, even learning BIM competence can be a stretch.

GDL is not a tool for end users in the way that Revit Families or SketchUp's Dynamic Components are.

Learning GDL would be like me going back and re-learning AutoLisp. As you say in point 2 - a long term investment in time.

I can justify learning something like Revit Families or SketchUp DCs. The ratio of time spent to benefits derived is way higher with these than with GDL. Admittedly I could build anything if I learned GDL, but I don't need to.

I need to build parametric components like for example furniture and the thing I really need right now - a parametric roller shutter door.

I've no idea how long it would take for a Revit family, but a SketchUp DC perhaps and hour, maybe an hour and a half, two hours tops, but that's for a component I might need for maybe 75% of my projects.

No - Archicad needs a much, much quicker and easier tool than GDL to build proper parametric library objects.

Nader Belal
Advisor
@Jim Allen

I´m not talking about architects who can't code because the lack of time or excess of responsibilities, I was talking that generally speaking, I have observed that most of the members here simply do not want to code, even if the ROI would help them achieve better or quicker results.

GDL is not complicated.

I will not talk about Sketchup DC as I didn't experiance it myself, but when I say long term investment, is because most of the people I know want to be the Kings of GDL library part creation for yesterday, and it doesn't work that way.

But I would like to highlight that most the available literature available for GDL, is not helpful except the one I have mentioned before. But I can offer you advise when you need.

Besides, future of architecture will be in coding.
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.

Nader Belal
Advisor
@JARROD PHILLIPS

There're few points that I have forgot to mention:

1. Generally speaking, whether to invest in GDL & Grasshopper, GDL or Grasshopper, or neither, will depend on:
1.a. How you want to plan your career's future steps (example: pure design, architectural & algorithmic design, pure algorithmic design with a focus on architectural design)

2.b. Scope:
Well if you want to be a light user of Grasshopper, well may be to only depend on the graphical representation of nodes and connections will be more than enough for you, but if you want to get deeper then you will have to learn to code, and on the Grasshopper side it would be python and C#.

If you want to get deeper, the quick way is Python, it's crystal clear to read, and quicker to learn, and it have the advantage that Graphisoft have already started on a project to incorporate python to ArchiCAD, which will avoid you the headache of learning of using the C++ api in ArchiCAD, and Grasshopper's C#, and the related incompatibilities between C++ and C#.

3. opportunities:
Well I can't walk in your shoes, but what ever was the opportunity you have available take it.
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.

Jarrod Phillips
Newcomer
Thanks for the comments!

@Jim Allen I agree with your point that architects could benefit from having a visual interface for GDL like the one you have described. I imagine this is why Revit has a lot more content available online from suppliers and manufacturers. I can also understand that not all architects have the time available to invest in learning programming be it GDL, Python or another programming language.

@Moonlight I think every architecture practice will at the very least require one person with a background in programming, this is already happening at a lot of the larger practices in Australia, they now have teams that fulfil this role. I'm not sure how many would know how to create custom objects using GDL, my guess would be not many. If you don't mind me asking what is the size of the practice you are currently working at? and how many people are working in a role similar or the same as yours? Thanks for the tips by the way, I have been learning from David A. Nicholson-Cole's GDL Cookbook 3 & 4 as well as Andrew Watson's GDL Handbook (although i have been having trouble getting myself a good copy of this). I am currently working on a Kitchen Carcass Object. this is taking a considerable amount of time and focus, I would love to pick your brain if you would be so kind!

Thanks!
Jarrod Phillips
Graduate of Architecture,
Stukel Architecture, Sydney
Australia

Versions 15 to 24
Lenovo ThinkStation P330 Tower - 9th Gen Intel Core i9-9900, 32GB ram, NVIDIA Quadro RTX 4000 (8GB), Windows 10

Nader Belal
Advisor
@Jarrod Phillips

First mistake:
many offices do not use revit cause they can model families, at the best you could consider it a plus, most of these offices were AutoCAD users, so when Autodesk gave them revit,it was a natural for these clients to make a switch.

Second mistake:
Manufacturer providing their content in Revit, is based on each company's marketing strategy and clients.

Answering your questions, I work as a freelance for a UK client, I would have shown some of my work, but since I have signed an NDA, I can't show you any

PM me
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.

runxel
Mentor
On the general question, if GDL is worth it:
Whatever broadens your knowledge is probably worth it 😉
It's also a question about your goal. There are only a handful of people who are doing GDL in a (near) fulltime manner worldwide.
But as already mentioned, sometimes you just have to "scratch your own itch" – and then it certainly helps to know a bit of GDL. Every office I was in didn't looked for someone who can do GDL. But in the end everyone of them was happy that I did, because it eased many things. So while most architecture firms will not really look out for us specifically, knowing GDL is still a valuable asset imho.

And there are certain aides, which will help to utilize GDL more easily.

Also good time to cite this ol' classic:
(Families only seem to be flexible and more easy than GDL. The opposite holds true)

AC 24 [ger] | Win 10 | Developer of the GDL plugin for Sublime Text |
«Furthermore, I consider that Carth... yearly releases must be destroyed»

Nader Belal
Advisor
@runxel

I'm Nader 😉

would you please how to use your colour coding for VS Code??
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
Contributor
And how to consider this ?:
AC12_20 |Win10_64bit|

Nader Belal
Advisor
@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
Contributor
I just eat ...as in the example above.
AC12_20 |Win10_64bit|

runxel
Mentor
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! 🙂
AC 24 [ger] | Win 10 | Developer of the GDL plugin for Sublime Text |
«Furthermore, I consider that Carth... yearly releases must be destroyed»

Nader Belal
Advisor
@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.

T_S_
Newcomer
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
Advisor
@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.

T_S_
Newcomer
@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 25
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Dell Precision 3510 - i7 6820HQ @ 2.70GHz, 16GB RAM, AMD FirePro W5130M, Windows 10

Nader Belal
Advisor
@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.

Didn't find the answer? Start a new discussion

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!