14 hours ago
I am using Archicad 28 and I have a custom library part that I wrote myself in GDL, so I can modify its scripts and parameters freely. The object is made of several distinct zones (not Zone Tool), and I would like each zone to be colored differently by Graphic Override rules, in the floor plan (fills), in 3D, and in sections and elevations (surfaces). The color of each zone would be driven by data, for example a property or a parameter value, and the rules can be designed in whatever way works best.
The important constraint is that the object must remain a single element. Splitting it into several separate library parts would solve the coloring, but it defeats the purpose, because the whole point is to keep one placed object that carries all the zones.
From my research, I understand that Graphic Overrides apply to the entire element and cannot target individual components, skins, or parts of an object. I also read in the Archicad 28 help that surface criteria for library parts only work when the surface is set in the Model panel of the object settings, not when it is defined only through the GDL script. Together, this suggests that one override result is applied to the whole object, and I would like to confirm whether there is any way around it.
Has anyone found a workable approach for this? For example, is there a way to make the GDL script respond to the active Graphic Override or Model View Option so that each zone picks up its own color, or a way to expose several Model panel surfaces or properties that rules can address separately? If this is not possible with native tools, would the Archicad API or an add-on be the only route? Any experience with a similar case, even a partial workaround, would be very helpful.
Thank you.
Operating system used: Mac Apple Silicon 27
arh. Claudiu IANCIC
Loving Archicad since 2005
MacBook Pro 16-inch 2021, M1 Max, 64 GB
Latest macOS and latest Archicad
12 hours ago
As you correctly say, a Graphic Override will affect the entire object.
And as far as I am aware, there is nothing in the GDL scripting that can tell what GO or GO settings are applied.
So you won't be able to script it in the object.
You can access the MVO settings, even create your own MVO parameters, but I don't think that will help you much as the MVO has nothing to do with GO.
I am not even sure if an API add-on will help you either.
But I am not an API programmer so am not 100% sure.
Barry.