Wishes
Post your wishes about Graphisoft products: Archicad, BIMx, BIMcloud, and DDScad.

Central storage and management of GDL value lists

Laszlo Nagy
Community Admin
Community Admin
Here is a wish which I think would be really great if implemented.
Many GDL objects have value lists.
This topic is about how to extend the default value list of Flooring Types available in Zone Stamps:
https://archicad-talk.graphisoft.com/viewtopic.php?f=6&t=69713&p=310458#p310458
This other topic is about the default value list of Fire Rating values available in Doors:
https://archicad-talk.graphisoft.com/viewtopic.php?f=34&t=71264

So my wish is:

Let us have a central repository for all value lists that are used by GDL Objects (maybe in a folder within the embedded Library), plus an interface to open any of the values lists and edit/add the list of available values. GDL objects using these values then will always use the most up-to-date list of values. This way, these values list will not be buried somewhere deep in GDL but would be accessible for modification, which is desirable because no default GDL value list will ever be suitable for the whole Archicad users community.

There are many of these potential value lists:
-Zone names
-Flooring/Covering types
-Fire ratings
-Acoustic ratings
-Standard Door/Window/Skylight size combinations (e. g. 90x150, 150x150 etc.)
-Standard Steel Profile sizes
-Standard MEP element sizes
-Standard Kitchen cabinet sizes

Currently, if the list of default values is not good enough one has to have good GDL scripting skills to be able to modify them. This would greatly enhance the usability of these GDL Objects.

Additionally, the use of these value lists could be optional. For example, in the case of Doors/Windows, you could have a checkbox using which you could either restrict sizes to be selected from the value list or use "custom" and set any value you want.
Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac27
10 REPLIES 10
Barry Kelly
Moderator
It can kind of be done now with a MASTER_GDL macro.
Any macro with the name containing MASTER_GDL (i.e. MASTER_GDL_variables) will be run when a library is loaded.
This MASTER_GDL file can just be a bunch of VALUE lists, just as you would create in any object.

So now you create the parameter in any object but do not create the VALUE list - as you already have it in the MASTER_GDL.
This will be available to any object that has that parameter.

If you do create a VALUE list in the object using that parameter - it will simply override what is in the MASTER_GDL.

The thing is you need to manually edit this MASTER_GDL and re-load the library if you want to make any changes.
It would be nice to have an interface that allows the user to simply edit this list rather than opening and editing the macro script.

Using Properties in objects is similar and gives us the interface for editing the list, but theses are not actual variables in the object.


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
My opinion in inline with that of Barry Kelly, although I would also propose using a macro dedicated for that purpose only
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
Legend
Totally wrong direction.
I'd rather wish to have access to Properties in GDL.

This would tick so many boxes at once!

Please not another fiddling "solution". Graphisoft needs to start thinking more integratively.
GDL is the biggest asset of Archicad and it's mightiest enemy.
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»
Anonymous
Not applicable
I am with runxel in this one.
IMO "Properties" is the foundation of BIM. Filter, inject, assemble them freely.
The Property Manager can do exactly what the Parameter section do inside a GDL object. We just need to also have the option to insert already created properties on objects.
My 2cts.
Nader Belal
Mentor
@Braza & @runxel

I would go with the opinion of @runxel if and only if,
  • Properties can be exported with projects file saving as PLA. (Checked)
  • Properties values can be assigned by a GDL parameter, or vice verse. (Unchecked)
  • Editing a list of values in Properties or their order, would not necessarily mean that the values in GDL parameters of used library parts would get shifted. (Unchecked)
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.
Can I suggest rewording this wish and the criteria selected for the Wishlist. I think the metadata path from objects to properties is an important one which wasn't part of the original wish.
Think Like a Spec Writer
AC4.55 through 27 / USA AC27-4060 USA
Rhino 8 Mac
MacOS 14.2.1
Laszlo Nagy
Community Admin
Community Admin
Guys,

I think this is good that this wish has created a good discussion with many suggestions.

So, to summarize, if I understand correctly, runxel and Braza suggest that instead of having a master file of value lists for Library Parts, we should make Library Parts capable of reading and using Property values. I agree that this is a better idea. I have one concern though: what happens if the Property the Library Part is referencing does not exist in the file? In this case, we should receive a message from the Library part that it is missing and should be created and its value list created as well.

Aaron's suggestion is to enable data flow the other way around: to make Library Part parameters available for use in Property Expressions (something that is currently not available), just like Library Part parameters can be listed in schedules.
Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac27
Nader Belal
Mentor
@LaszloNagy

You got @Braza & @runxel idea correctly, but adding to your concern there is another, what happens if the values' order have been changed ???

I propose (if possible), that there would be a database table for Properties values, for all properties we want to add to the project to act as a reference point for the whole project, then the Property parameter would reference to the specific values by GUID, so even if the text of a specific value was changed, it would be a global one.

Then there would be another table in ArchiCAD that would only reference Property parameters by GUID, something in the same manner with GLOB_ISSUE_SCHEME or GLOB_CHANGE_SCHEME, that way if any user made any number of custom Property parameters it can be referenced easily.

On the GDL side (if possible), Graphisoft would create a new type of GDL parameter type only for Properties, to make a relationship between GDL Property Parameters, and Property Parameters, using the GUID only, therefore no more overhead from the GDL side.
But the GDL Property Parameters, will also reference the selected/desired value of the Property Parameter, either by GUID or by array (just as with LAYOUT_REVISION_HISTORY, or LAYOUT_CHANGE_HISTORY), so if the Property parameter's value have changed, the change will be global, and if GDL Property Parameters can be referenced to a Property Parameter value, ArchiCAD would emit an alert of the broken references
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
Perhaps my agreement on runxel's idea, is a lot biased by my Dedicated Shared Resource File wish. This issue on a missing property "called" by an object could be fixed by just loading the correct Resource File. If you create an element with specific properties, you save it in a resource file that could be loaded on any other file. If a missing property is detected, both on GDL or a Project, I think a simple warning would be enough.