GDL
About building parametric objects with GDL.

Open Source GDL library project

Podolsky
Ace
Hi there,

After long thinking on this subject I would like to hit the new Open Source GDL programming project on this forum. The idea to involve GDL developers worldwide to start building new, independent, international, non-commercial library for all. GDL technology has very strong potential and that is very important part why ArchiCAD as a CAD and BIM system is so unique.

Please read the initial statements of this project:

1. The project is running under the GNU GPL licence. It is based on GDL technology, but not limited by it. Any further translations to different programming languages or use in different CAD systems apart of ArchiCAD are welcomed. Additional C++ programming to improve use of the library parts by making special Add-Ons are welcomed too.
2. Anyone, who is taking part of the project, doing it by their free will and free of charge just following the desire to make BIM world better. Donations, investments and grants for developers are discussible and acceptable.
3. The objects must follow all official GDL standards (like GDL white paper) and Graphisoft recommendations. For example - I like to use uppercase in my GDL script for commands (because GDL manual shows all of them in uppercase). But as soon as GS recommends to use lowercase - my opinion or preferences are not valid.
4. Developed library parts must use standard GS variables names to have full compatibility with standard libraries, distributed with official ArchiCAD releases. As well - to use standard GDL subtypes, as soon as introducing new one is not necessary.
5. All library elements must be compatible with Grasshopper - means that most of calculations (that usually happens in Parameter script) shall happens in Master Script, because Grasshopper is not reading Parameter script.
6. Completed library element must be uploaded to BIMcomponents.com web-site for free access of ArchiCAD users worldwide.
7. Any modification to the library part code must be reflected into the versions text file (or log file), provided with the library element.
8. Library part must be truly international - means that they must have multi-language support.
9. Library objects must be not manufacturer-oriented but building element class-oriented with manufacturer support. For example - instead of having ACO drain element - to have rainwater drain element with possibility to choose ACO from manufacturers list.
10. There is no discussions about leadership of the project. Everyone is equal and differs only by experience - strongest are supporting weakest. I will try to manage this project as long as I can, also I'm willing to open some of my personal developments, but I do not pretend to be head of the project (even if this is my idea).
11. Anyone can be involved into any stage of library part development - starting from conceptual graphical schemes and algorithms ending by writing and re-writing actual scripts.
12. Any object must have textual / graphical description how to use it and YouTube video. The links to the manual must be implemented into the object User Interface.
13. Each object must have User Interface.
14. Common global variables names as for example from Add-Ons or MVO objects - matter of community decisions and consultancy with Graphisoft. After the decision is made - this subject is not discussable without serious technical reason.
15. Every GDL object must be written on as lowest ArchiCAD/GDL version as possible - as soon as needed features allowed to use the version.
16. Developing of the new object is starting by introducing your ideas in the post plus hand-drawn (or CAD drawn) sketches and logical (drawn) schemes.
17. This is not PARAM-O project. PARAM-O can be used as a temporary tool, but because of nature of scripts, generated by program automatically, must be reviewed and rewritten by human to achieve better performance and smaller size of script.

Any comments are welcomed.
89 REPLIES 89
Tormenta4
Booster
Podolsky wrote:
Tormenta4 wrote:
I do have an User Interface now , it was not finished at the time of the demo, but it is now.

The call does not work as then the cut planes do not operate on the point cloud unfortunately...
But you can still join this project (I don't know - is your object commercial?). The whole idea that we show / upload our ideas and parts of GDL developments for free use - and everyone can take it, modify, make better, include additional features, use part of codes... I pretty much know how to program interface I proposed and include all features into the code. I just don't want to be single activist here.
Hi, yes it is commercial and I have already sold it as a service to different companies. The limitation being that I need to adapt the code to each new point cloud.
Archicad 25, MacBook Pro M1 Max, macOS Monterrey.
Podolsky
Ace
You see, you are advertising here your commercial product, when we want to do objects via GNU GPL licence. Read my first post in this thread.
Tormenta4
Booster
Podolsky wrote:
You see, you are advertising here your commercial product, when we want to do objects via GNU GPL licence. Read my first post in this thread.
My intention was never to advertise it, just to point out that I already had put my time into developing something like what was being discussed. There is no link to buy the product. You asked if my development is commercial and I answered honestly.
Archicad 25, MacBook Pro M1 Max, macOS Monterrey.
Podolsky
Ace
Tormenta4 wrote:
Podolsky wrote:
You see, you are advertising here your commercial product, when we want to do objects via GNU GPL licence. Read my first post in this thread.
My intention was never to advertise it, just to point out that I already had put my time into developing something like what was being discussed. There is no link to buy the product. You asked if my development is commercial and I answered honestly.
All right. I've been kidding here a little bit. So, bring your code here! What the problem? Maybe together we can do your tool better.
sinceV6
Advocate
Hi.

This is a great initiative! Congrats. I've been [thinking about / wishing for] this for a long time too. But I also remember a few tries that just got lost over time: off the top of my head I remember Library Globals, keynotes, piping objects, markers, etc... all GDL based and kind of open sourced or community contributed. In GDL an object might work from the open source development standpoint, but a full Library project is a massive undertaking. There are many many things to consider, and only a few, as an example, have been stated in the first post.

It can be done for sure, but let's face it: GDL is not easy or friendly. There is a lot of trial and error involved in how it works. It might have been what gave AC an advantage, but now I think is what holds it back. You just need to have a read at this thread to understand that GDL is now one of AC shortcomings, and a big problem when you realize it drives most of what it does.

I don't have a lot of spare time right now, but count me in for sure, in whatever way I can contribute.

Best regards.
Podolsky
Ace
I have found that GDL is just excellent language that does its work very well. People like to talk about it that is not soo good, but haven’t found any another platform or technology, that could give something even close.
I have quite a lot of my GDL development and ideas that I can share here. Just don’t want to do it alone anymore. Believe me, ideas would be enough to post for entire year, if needed. Also this forum is closest to Graphisoft developers - so it’s possible to get quick response and support from people from software engineering department.
So, let me fix my computer that got broken and I’ll come back with more news.

Send from my iPhone
leceta
Expert
great initiative Podolsky, thanks!

I would like my two cents here proposing a complementary idea, I´m thinking in a macro library, rather than fully finished gdl library. Something like a thematic collection of encapsulated piece of reusable logic that could help to build new objects. Macros for geometry operations, for user interfaces, for hostpots, for algebraic operations, Nothing new here, just borrowing the idea of encapsulation from OO paradigm as a way to build software collaboratively. I have not much experience developing objects based on macros so I´m not fully aware of the limitation of macros, but since Graphisoft make an intensive use of them, I´m quite confident that the system could serve to build a powerfull library of ready made components (macros) that could be used to build other components(macros) or GDL objects, and so on... How flexible can be such a modular building system?

Have you seen how cadswift make use of hotspots to graphically interact with complex systems? https://www.youtube.com/watch?v=oSrKzLbXEXw wouldn´t be cool if we could have to our dispose pieces of encapsulated logic so everyone can incorporate such a great UX to their/our objects and for their own particular purposes. Can macros give enough flexibility to make open-enough encapsulated pieces of code?

All this macros would be incorporated to a more or less large gdl library that would act as the unique container of dependencies that a pln project would need to load to ensure the availability of all dependencies.

Just thinking loud. visioning something that i´m not 100% sure if it could work with enough flexibility, it needs time and work of research from my part to propose this more concisely... but yeah, again, nothing revolutionary, just guessing how the modularity that is used in the rest (if not all) of collective development efforts can be injected in this great initiative by Podolsky.

Will do my best to be part of this project. Thanks.
Podolsky
Ace
Macros are essential for good library. Just instead of repeating the same code again and again in various objects make macro call. It also reduces the library size.
Quite often, when I programmed my library, I thought - oh, I can take this part out of the object and make a macro.
Just I would like to ask anyone, who want to contribute to this project - please make hand drawn sketches of logical schemes, showing the main idea in graphic. We are architects, we speak by drawings and schemes!

I just made some illustrations. Can be used in documentation and in UI. And as well as logo. Will upload vector to GDrive soon.
Podolsky
Ace
more graphic...
Anonymous
Not applicable
leceta wrote:
I would like my two cents here proposing a complementary idea, I´m thinking in a macro library, rather than fully finished gdl library.
I like the idea of including Macros in the scope of this Open Source GDL Project. But limit it to Macros would also limit the number of users that would benefit from it. As we all know, GDL is still not for everyone and perhaps this initiative would make it more accessible.

Podolsky wrote:
Just I would like to ask anyone, who want to contribute to this project - please make hand drawn sketches of logical schemes, showing the main idea in graphic. We are architects, we speak by drawings and schemes!
You mean other suggestions instead of the Point Cloud Object?

Podolsky wrote:
I just made some illustrations. Can be used in documentation and in UI. And as well as logo. Will upload vector to GDrive soon.
Honestly, I think this is not quite adequate for UI. Too artistic and less objective IMO.

Anyway... Thank you Podolsky for the initiative.

Cheers,