Choose your top Archicad wishes!

Read more
GDL
About building parametric objects with GDL.

Custom MVO by classification

Hi scraptrash,

Generally speaking you should definitely explore GDL as it opens so many possibilities, and it is an easy coding language to learn especially if you already code.

For your purpose however GDL and MVO's are not the solution. You use custom MVO's to create a parameter that you want elements to respond to globally. However you also need to code the response, and the link to the MVO value, in the elements that you you want to respond. This works well for your own GDL objects but does not work for Archicad model elements such as Walls, Slabs etc.

As I am purely a GDL expert these days (for the last 15 years) I don't know the exact method you would use but there are other filters for model elements in Archicad. have a look into the Renovation Filter, its pretty flexible once you delve into it. You can reference ID and Category data as well as Properties but i am not sure you will be able to reference the specific value you are using. If not then perhaps consider referencing a value you can access in the renovation filter. Other than the Renovation filter you also have Graphic Overrides. I am not sure which will work best for your process.
Creator of Cadswift's parametric GDL libraries
Creator of Infinite Openings and Component Catalogues
Push the envelope & watch it bend
website: https://cadswift.com.au/
YouTube: https://www.youtube.com/user/CADSwift/playlists
8 REPLIES 8
If you are trying to get a response out of GDL objects, which is anything place with the following tools:
- Object tool, of course,
- Railing,
- Curtainwall,
- Door, Window, Skylight & Opening,
- Zone stamps and 2D auto labels,
- Lamp & Equipment (MEP stuff)
- Wall Ends,

then yes custom MVO's are the right method
simple creat a new object and set the Subtype (top right corner on the Details page of the object creation interface) to "Library Global Settings".
Then all you have to do is create parameters in the "Parameters" list (not the parameter script, this is use to set the rules for the parameters in the parameters list) and script the interface to access the parameters in the "Interface" script.
Creator of Cadswift's parametric GDL libraries
Creator of Infinite Openings and Component Catalogues
Push the envelope & watch it bend
website: https://cadswift.com.au/
YouTube: https://www.youtube.com/user/CADSwift/playlists
I'm digesting this suggestion, but I'm not sure what you meant. An element can only have one renovation status. How do you reference ID / Category data / properties to the renovation filter?
Although elements can only have one renovation status you can set up Renovation Filter schemes to determined how elements are viewed. Though this will probably have the same limitations you have discovered in Graphic Overrides.
So in short there is probably not a perfect answer for your requirement and you may have to go down the custom API path. With your C# experience hopefully this wont be too difficult. Graphisoft provide great support for their API developer community so I think you could have some fun with it. provided you have the time and inclination.
Creator of Cadswift's parametric GDL libraries
Creator of Infinite Openings and Component Catalogues
Push the envelope & watch it bend
website: https://cadswift.com.au/
YouTube: https://www.youtube.com/user/CADSwift/playlists
Laszlo Nagy
Community Admin
Community Admin
Unfortunately, I will not be able to suggest any solution either that would be as simple as it is in Revit. There actually have been wishes where people were requesting this functionality.
In the 3D Window, you can select elements and you can Isolate them like in Revit (using F5 or the "Show Selection/Marquee in 3D" context-menu command). Hiding them is a bit more convoluted: you can select all, then use SHIFT-click or the Find & Select Palette to remove elements you want to hide, and then Isolate the remaining elements.
However, you can not do the same in other Viewpoint types, only in 3D.

There is also the Graphic Override (View Filter in Revit) route, where you specify criteria, and elements meeting the criteria are overridden with the define scheme. Unfortunately, there is no option to Hide elements meeting the criteria (which I think is possible in Revit). There have been wishes for this functionality as well.

So, people have been wishing for this for a while (and not only people coming from Revit), so let us hope that Graphisoft sooner or later implements such a feature.
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
kuvbur
Enthusiast
You can hide gdl-objects with MVO by IFC type

Structural engineer, developer of free addon for sync GDL param and properties

vdentello
Advocate
kuvbur wrote:
You can hide gdl-objects with MVO by IFC type
Awesome solution!

Yet, we'd have to implement
call "Filter_by_IFCProp" PARAMETERS ALL RETURNED_PARAMETERS show
if not(show) then end
Before every master or 3D Script. Right?
Hey Graphisoft! There's something to look at for a library update!
Archicad User Since 2013
GDL Developer
Experimenting with API
from Brazil
Laszlo Nagy
Community Admin
Community Admin
vdentello,

Yes, the solution is great, but there is one problem: it works only for GDL-based element types.
The original poster, however, wants to hide any element type by classification (Walls, Slabs, etc.). So, I think if GRAPHISOFT implements a solution, it should be one that works for all element types, not only element types based on GDL.
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
vdentello
Advocate
LaszloNagy wrote:
vdentello,

Yes, the solution is great, but there is one problem: it works only for GDL-based element types.
The original poster, however, wants to hide any element type by classification (Walls, Slabs, etc.). So, I think if GRAPHISOFT implements a solution, it should be one that works for all element types, not only element types based on GDL.
Still, every native element is derived from a similar structure deep down, implementing it to every native tool doensn't seem like rocket science from a coding point. (from what i understand based on the API structure).

Could be a wish but i doubt it'd escalate. Could already help with objects.

But, It's somewhat doable with layers.
Archicad User Since 2013
GDL Developer
Experimenting with API
from Brazil
Laszlo Nagy
Community Admin
Community Admin
Yes, I think there have been multiple wishes about the ability to hide elements in the last several years.
Let us hope it is on GRAPHISOFT's radar.
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