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

Anonymous
Not applicable
Hi SinceV6,

Thanks for your thoughts... Lots of good points that made me rethink the idea. And the link/thread you showed (Raised by Paul King) is a very good description of the need for a proper Road Tool.

sinceV6 wrote:
I understand the wish, but not what it would solve,...
The purpose of this object, is to streamline the process that I manually do with Meshes. Usually the surveyor delivers a dwg file with very few point (Perhaps I have to put some pressure on him for a better service ). Then as you said I do the drill... Trace a Mesh on the surveyor points ("Paint the fence. Up…down. Up!" Down! )... But I also have to make tons of interpolated points to meet the terrain curve. This is my main pain in the rear . With new urbanization projects is the same process... I mark some key levels for crossroads and then the interpolations for smooth slopes. And finally draw the 2d sloping diagram that the Civil Engineer will use to make soil fills/excavations. But imagine if I have to change some key levels With this object, I could trace the few points on the surveyor dwg > Enter its heights > Indicate the interpolation method for each segment > Once the points were ok then I generate a txt file with the contours and axis points (I am pretty sure Put, Get and I/O operations can do the trick) > Finally, I create a Mesh with the "Place a Mesh with the txt file". After this, I could use the Railing tool with magic wand to apply curbs, etc with regular AC tools. With the advantage that I could schedule and quantify everything (That's why I think that adding curbs, manholes and other accessories is not a good idea).

But perhaps you are right... The work involved in this object is not justified, as there are better workflows to achieve the same goal.

Cheers,

sinceV6
Participant
Hi.

Thanks Braza.
I think we would need a real case scenario to evaluate how this could be achieved. Anything you could share?

Braza wrote:
... With new urbanization projects is the same process...
If urbanization projects are a constant thing, I would turn to see if there are other tools tailored for the task that could fit into the workflow. A hammer can be used for a lot of things, even put in a screw if needed, but a screwdriver will do a better job in that case.

Better topo tools are needed indeed, as they are part of the architectural workflow. I think urbanization projects are another whole thing to be dealt within AC.

Best regards.

Anonymous
Not applicable
Actually I am not practicing Architecture for a considerable time, as I mostly work for a contractor as a site manager on small residential projects. But I recall facing this kind of pain when I worked as Architect on small/mid size urbanization projects (up to 50 lots). I agree there are better tools for this job. But, as in the MEP design, there are some situations where the dimension of the work and the budget of the project doesn't allow me to buy and learn a dedicated software.

Podolsky
Mentor
Hello there!

Just quick upload of an object, that can be useful. Biarc curve - arcs with common tangent. Can be used for further developments - for example for the roads.
Currently it's simple 2d element. It has maximum 11 nodes (10 segments). Each node is moveable on plan. If you overlay one node on another - it disappears. It also has editable hotspots to control radiuses of the segments.

Script is OK, but in some cases it gives me sharp edge connection - the main formula that calculates radiuses needs to be improved. GDL version 32 - ArchiCAD 17.

Cheers.

Podolsky
Mentor
Looks like I've fixed the bug. Should work fine now.

Podolsky
Mentor
Last bug fixed...

From the script you can see how I name variables. I like to write the code, that it would be more understandable by human by giving 'real' names to variables. For example if it's a length parameter - I use 'coordinates' or 'length' or 'distance' or 'radius' - it's clear, that distanceBend is length parameter. If it's an angle, then variable name angleBend.
If it's integer - I use 'type' or 'number': numberNodes. If it's a string, then it could be 'name': nameFile, nameImage

bouhmidage
Enthusiast
What about ameliorations of the existing framing object, it already works but with a llt of bugs and missi g good functuonnalities
- offset framing from wall edge (automatic or manual)
- making possible to add complex profiles to frames
- windows and doors special framing
- corner framing
- T junction framing
AMD Ryzen 9 3900X, 32 GB RAM, RTX 3080 10 GB

Archicad 23

Windows 10 professional

https://www.behance.net/Nuance-Architects

Anonymous
Not applicable
@Podolsky
Very cool object. I just think its usability is very limited. The 3d dynamic Polyline from SinceV6 is very versatile. This also makes me think which is the best way to trace road paths? Just Lines and Arcs? Quadratic Belsier curve? It would be nice if someone with Civil Engineering in this matter could put some light on it. I personally think Lines and Arcs can do the job.

@bouhmidage
This framing object uses the Wall Accessories Goodies, right?
If so, the problem is that it has little to no support from GS.
Besides this, I have seen many users using the Curtain Wall Element to do this with very good results. Including scheduling and quantities takeoffs.

p.s.: It would be really nice if SinceV6 could send us a simple object with a "raw/clean" working version of his 3d Polyline that we could start to work.

Podolsky
Mentor
The use of biarc is very important in architecture. As I know, in most cases it's biarcs instead of spline. As I know from people, who worked in road design - they never use splines. I uploaded the object on purpose - to use it as it is of course is limited, but it's can be useful for more complicated objects (as macro) to define let say edge of polygon. Also this algorithm can be converted into 3D curve - with some modifications. For example for plastic pipes, like MDPE or PEX. Standard set of MEP tools has only straight and curve parts, that needs to be combined together. That works for metal pipes - where bends are welded to straight parts, but when it's plastic - it usually goes as one long pipe up to 200 m. To have one long pipe that can be bended into any direction will solve this problem - for water supply or underfloor heating installations. Why this is important - to get right quantities. When I'm using standard parts (straight parts and bends) I'm getting very long schedule of lengths of all parts, that represents only one pipe. This is not comfortable.

Timber frames - it's something that I'm working on right now. Currently I'm finalising timber beam object (that has biarc curve as an option - this is from where this algorithm came). Next step will be floor joists and wall frames. Very possible that I will open my scripts for use for everyone, at least part of them for sure.

Podolsky
Mentor
I also want to say, that I don't think that to use curtain wall for something else apart of curtain wall - like for concrete blocks or timber frame or railing for curb stone is a good idea. ArchiCAD is based on objects (as principle of object-oriented programming) and each object represents specific element. It remains me conversations happened long time ago about difference between modelling in 3DS Max and ArchiCAD. I did hear a lot of critics towards ArchiCAD - that to compare to Max ArchiCAD is limited in modelling. But there is the whole point - building elements and building materials are limited in use and their geometry fits to specific, limited again, needs - you cannot use bricks for roof tiles, windows for rooflights or reinforced concrete for furniture.
Making GDL objects, that serve specific needs (like wall frames), instead of making universal objects - for example the same frame, that you can use and for wall and for floor and for roof, will give better results in the projects, because each building structure has its own special features, structural function and properties. Steel connections are different for slab and wall - so, if include steel connections into timber frames (let say Simpsons Strong Tie) - it would be just great for making BIM models to LOD 5 and this is what construction sites are expecting from BIM.

Lol my wall accessories has a framing object that I use Dayly. It's incomplete but works better than the one that comes with accessories.
It also has sheet rock and baseboards if you wish to show them





Videos made from my coverings and wall framing/finish object

Also why would you not just code you biarcs with a loop? Seems like a waste to me. Just use since v6 polyline and apple the data to the loops.
AC 24, Twinmotion current, Windows 11, Msi 10UG with rtx 3070, wacom intuos pro m, Wacom Cintiq Pro 16, razer Tartarus pro.

Anonymous
Not applicable
Podolsky wrote:
The use of biarc is very important in architecture. As I know, in most cases it's biarcs instead of spline.
Agreed. I am just saying that Road paths can be very tricky (Specially existing ones), with alternate straight and arched segments in the same path. Your object doesn't allow the user to set individual path segments type. I think SinceV6 Polyline is more versatile in this mater.

Podolsky wrote:
I also want to say, that I don't think that to use curtain wall for something else apart of curtain wall -
The thing is that Curtain Wall Tool does the job. So why do I need something else. But I understand your point. It is difficult for a new user discover that they can do wall framing with a Curtain Wall Tool. That is when I see that Param-o could have a much bigger role in AC if it would become an Assembling Tool for all 2d and 3d AC elements. Including Walls, Slabs, Roofs, Objects, Lines, Fills, etc.

Aaron Bourgoin
Advocate
Can someone at Graphisoft find and post the video they made when the CW tool was first released. The one I'm talking about is a heavy timber and plaster German Beer Hall modelled entirely with the Curtainwall tool. It was there to prove a point. I think.
Think Like a Spec Writer
AC23-3003 USA / AC24-4018 USA
Rhino 7 Mac
OSX 10.14.6 & 11.3.1

Barry Kelly
Moderator
Aaron wrote:
Can someone at Graphisoft find and post the video they made when the CW tool was first released.

Do you mean when the curtain wall was introduced in version 12 (2008) or when it was renewed in version 22 (2018)?

I just googled ...curtain wall archicad version 12
And there are quite a lot to choose from on youtube.
I am not if any of those are the one you want.


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

Aaron Bourgoin
Advocate
Hey Barry, yes it was from the v12 Curtain Wall Tool Rollout. As I recall it was sent to Archicad sellers as a technical sales tool.
Think Like a Spec Writer
AC23-3003 USA / AC24-4018 USA
Rhino 7 Mac
OSX 10.14.6 & 11.3.1

sinceV6
Participant
Hi.
Braza wrote:
p.s.: It would be really nice if SinceV6 could send us a simple object with a "raw/clean" working version of his 3d Polyline that we could start to work.
Based on the image you posted, I think you already have the object. The library was posted here. The version with arcs is as simple as I could figure, taking into account 2D/3D projections of arcs/helices. Maybe I took the long road to solve that one

The fact that ArchiCAD's tools can be used to model things other than their purpose is a great advantage. Specific tools and objects for every aspect of a building would mean a never ending list of... tools and objects. I remember a great discussion about simplifying the tools (and maybe it was a bit extreme), like considering Walls, Beams and Columns based on the same principle of extruded geometry along a path. Sure... each have different uses and properties, but the principle is quite the same. I guess this is for another thread.

Back on topic.
Maybe is time to dig a bit into the wish forums. There may be some good ideas there.

Best regards.

Anonymous
Not applicable
Hi SinceV6,
Unfortunately I can´t edit them... They are password protected. (At leas the one I was testing).
But never mind... I was testing the "Create Mesh from Surveyor File" command and it wont work the way I planned. The thing is that the command doesn't create "negative" contour meshes. If a point creates a concave contour, it converts to an internal node and draw the outer possible contour. Does this makes sense?
So bye bye Road Object.

sinceV6
Participant
Braza wrote:
They are password protected. (At leas the one I was testing).
You used the one that slipped. Try the other ones.

Anonymous
Not applicable
Thanks a lot SinceV6. Dynamic Polyline ER is exactly what I was looking for. I will dive in.

But this limitation for the "Create Mesh from Surveyor File" command makes this project inviable. I think.
Anyway... It is weird, because if I save a Mesh as an object, it will use mass{2} command for 3d and a poly2_b{5} for 2d. Both allow concave contours. It looks like the "Create Mesh from Surveyor File" command is using MESH command to build the final mesh. Which is very archaic and limited. I would like to be missing something good here.

sinceV6
Participant
Braza wrote:
mass{2} command for 3d and a poly2_b{5} for 2d
A bit off topic, but related... This states one of the things I hate and love about AC. I have always understood the flexibility, and perhaps efficiency, of having a 3D shape that can be displayed as something entirely different in 2D. But this also makes it sometimes feel like floor plans are disconnected from the model, instead of being derived from the 3D geometry of elements, even for its own native tools. Display order should only exist for 2D elements, not 3D elements or their projections.

As for the mesh/road... I think we need to be careful to know when something requires a scripted object -one that parametrically solves one or a set of defined things- or a tool -which can accommodate a broader set of solutions-. Thinking about all the things road design means, I would say it is a better job for a tool(set).

Best regards.

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!