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

Open Source GDL library project

Podolsky
Mentor
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

Podolsky
Mentor
As a starting point I would like to introduce MVO object that sets Level Of Details global parameter. I took description and images from AEC UK BIM Technology protocol document. It works the same in the most countries - as I know. USA and Singapore are using the same principle (the difference is only that they call LOD100, 200 etc.)
See attached screenshots.
I used ap_LOD variable name - just as analog to gs_... variables (using my initials). But that is not necessary, of course. LOD6 (as built) I didn't include - as this is not making sense in library parts development.
Maybe to replace ap_LOD to just LOD - if this variable name is not reserved. I think it would be nice if any future object would be connected to this variable (or, if LOD object is not presented in the library, to level of details of standard ArchiCAD library instead).
Files are located on Google Drive. GSM, SVG, TIFF and TXT. Any contributions are welcomed - as to clean TIFF in Photoshop for sharpest view, include image file into GSM, review descriptions and images. Also to create multi-language support. File has ArchiCAD 23 version, but can be downgraded to lowest versions.
I'll write later - how I'm usually making multi-language support in UI.

Access on Google Drive is open for modifications.

https://drive.google.com/drive/folders/11057YJzm2GEICTWN7bZnPiuC9_FFZbHi?usp=sharing

SenecaDesignLLC
Advocate
I'm so excited for this man. And this will help even myself be more aligned in my code with everyone. Thank you for taking the time to get this started.

I think I might just start by taking your advice!
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

runxel
Mentor
Great initiative.

However a few comments:
• You don't mention where the development shall happen. I strongly suggest that this must take place on GitHub. Ideas can be left here.
• I'm not fond of following the GS standards. They are outdated and I'm not taking part in any cargo cult.
Have you ever opened a GS object? They don't follow the "GDL Standards" themself. Especially talking about the "ALL UPPERCASE" madness.
• "Every GDL object must be written on as lowest ArchiCAD/GDL version as possible" – I mean, there is a lot "possible", but that doesn't mean we should persue this. I strongly suggest that we agree on a certain version that is the last to support. GS themself support only the last 2 versions I think. Anything else makes no sense.
AC 24 [ger] | Win 10 | Developer of the GDL plugin for Sublime Text |
«Furthermore, I consider that Carth... yearly releases must be destroyed»

Podolsky
Mentor
Great. Just because I'm not using GitHub - I placed the first object on my G Drive. Feel free to open an account for it there and move the file there. We of course can move everything on separate web-site too, but I think the whole idea - to keep discussion here. That it would really open and accessible to anyone.

If you think it's not necessary to follow strictly GDL standard because it does not make sense - I'm some sort with you. We can stick to our standards. As I mentioned before - I like to use all GDL commands UPPER case - because this is how it's written in GDL manual and sometimes it's easy to copy paste command from the manual.
GDL white paper (it's very old document) mentioned, that for example changing variables must not destroy geometry of the object in some cases. Let say if some case you enter 0 and script gives you error etc. - this things must be avoided. Also correct use of variables is important, when for example number with the floating point shall not be equal zero or whole number in IF statements.

Podolsky
Mentor
There was a wish on the forum to have section/elevation markers to have control how to show on different stories. Also to change position of section head on each storey. This can be merged with ideas I used for section marker in my own library.
So this is the full list of desired functions:
- Control visibility and position on different floors.
- Change marker style via MVO and by company standards settings. Possibility to choose needed CAD standard from the list (BS ISO, USA NCS...).
- Support USA section marker style - with small handle on one side.

And another wish was for PointCloud object. Users wanted to cut parts of PointCloud within ArchiCAD. We can make new PointCloud tool, that can pick up PointCloud and cut it as anyone wish.

I'll come back later with sketches about these two.

SenecaDesignLLC
Advocate
Based on what I'm reading it sounds like we all need to come up with some sketches on how the over all UI should look.
Consistency so we can all copy paste and create all the objects made with the same user interface.
Then once we have that base code all the objects generated will start to fall into place.
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

Podolsky
Mentor
Yes, I think sketches of UI and graphical scheme of object functionality - it is a core of the idea of the object. I also think that any ArchiCAD user (and this forum visitor) can post here his wish and proposal as a description and at least hand sketch of desired object, even if he does not know how to program on GDL.

SenecaDesignLLC
Advocate
I think we are on the same page but to clarify I'm not talking individual objects but a standard UI that is the default for any object gets started specifying distances what type of parameters get what type of fields and how they're handled how the pages should be set up if there are pages so on and so forth.

I also think it's not a good idea for people to request wishes in this thread this thread should try to stay solely on the coding of the objects themselves once they've been started.

There is already a wish thread but maybe it would be advantageous for people to request on a separate thread that one of us makes but at the same time lay out some initial parameters of what can be requested so that we don't have a flood of crazy amounts of objects that are duplicates or illogical concepts based on what might already have been requested or suggested.

And I say that because if we allow wishes nobody's going to read the whole thread before adding their wish
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

Podolsky
Mentor
Okey, here is my sketch about point cloud tool. The idea - to have more flexible preview on floor plan and also to have ability to cut part of the point cloud - without using external program for this, following the wish I've found on this forum.
So it can have external cube - that cuts the same way as cutting planes in ArchiCAD (top, bottom, sides). And add as many as needed cube, cylinder and polygon shapes.

See sketch for more details.

I already created the new folder on Google Drive, where information about this tool can go in.

Podolsky
Mentor
What I mean - that when person who does not know GDL, posting his conceptual sketch here - he is automatically joining the project. If person does not know GDL, but can draw nice UI in Photoshop - then why not? It also can be very good GDL learning source - when anyone can see object creation process and read the scripts.

SenecaDesignLLC
Advocate
Okay that makes more sense I do like that.

I don't use point clouds currently because they haven't been relevant yet but I love the concept behind what you've drawn up.

I think anybody that posts their drawings should maybe try to do so in a similar fashion to what you have already posted we can keep things consistent at the very base even the sketches, and I think the end products will be much better. Because if somebody can sketch they shouldn't have an issue sketching based on a few simple parameters so that our start points aren't all over the place in terms of ideas and concepts
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

Braza
Newcomer
Looks like the thing is getting serious.

So the pilot project will be this Point Cloud Tool?
I think first we should elaborate a list of potential tools suggested by users and then put it to vote in the Wish section.
Paulo Henrique Santos, Architect
AC24_INT#3008 / I7 / 16Gb / 512Mb SSD / Windows 10

Tormenta4
Contributor
Hi, I already developed a Point Cutter Tool several years ago, you can see the demos here:

https://vimeo.com/208090648

https://vimeo.com/209133334

https://vimeo.com/198487978

The problem is that the point cloud command in GDL does not accept variables in the data file name. So the GDL code needs to be edited to adapt it to a new point cloud. Otherwise I think the only other option is to create an alternative add-on for importing point clouds that implements the desired functionality in the imported object.
Archicad 25, MacBook Pro 2015, macOS Big Sur.

Braza
Newcomer
Hi Jaime,

Cool stuff. Thanks for sharing.
Did you try to save the point cloud as .gsm and use a regular Call?
Paulo Henrique Santos, Architect
AC24_INT#3008 / I7 / 16Gb / 512Mb SSD / Windows 10

Podolsky
Mentor
Very cool! But you don't have user interface in your object. Let's make good looking UI and connect to your object.

Tormenta4
Contributor
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...
Archicad 25, MacBook Pro 2015, macOS Big Sur.

SenecaDesignLLC
Advocate
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...
Are you using subgroup commands? I know these work on called objects in my objects. I done ever use cutplane commands if I can do it with groups
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

Podolsky
Mentor
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.

SenecaDesignLLC
Advocate
Ok so just a thought, maybe we need a whole sub forum for open library development. It would certainly make things easier to organize and keep topics aligned and relevant.
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!