BIM Coordinator Program (INT) April 22, 2024

Find the next step in your career as a Graphisoft Certified BIM Coordinator!

GDL
About building parametric objects with GDL.

Prevent Eyedropper / Syringe from changing a specific Parameter

scottjm
Advisor

Hi,

 

I have a label, that has a parameter that I don't want to be modified when I use the eyedropper / syringe.  Is this possible?  I still want this parameter to be editable by the user though, so I can't force a default a value through VALUES or PARAMETERS.

 

I'm wondering if it's possible to get the previous value of a parameter when it gets modified by the Eyedropper/Syringe and then push the old value back into the parameter.

 

Thanks,

Scott

Scott J. Moore | Fulton Trotter Architects | BIM Manager, Associate, Architect
Since AC13 | Current versions AC23.7000 & AC26.5002 | BIMCloud Basic | Python, GDL, VBA, PHP, SQL, CSS
Certified Graphisoft BIM Manger (2022)
Win 10, i9-9900K, 32GB, Quadro P2200, 500GB NVMe
13 REPLIES 13

You should be able to edit the Element Transfer Settings. You have to set them up and you can configure any amount of ‘rules’. When you click alt and mouse click to inject the parameters, hold the mouse button and a little button will pop up saying which Element Transfer Setting you have deleted. Most likely it says ‘Transfer All Settings’ click that button and you can change to any of the others you have predefined. If you accidentally inject all properties just undo as you would normally. 

Lee Hankins
ArchiCAD 4.5 - Archicad 27UKI Apple Silicon 27.2.0
macOS Sonoma (14.4.1)

https://help.Graphisoft.com/AC/26/INT/index.htm?rhcsh=1&rhnewwnd=0&rhmapid=#t=_AC26_Help%2F030_Inter...

Lee Hankins
ArchiCAD 4.5 - Archicad 27UKI Apple Silicon 27.2.0
macOS Sonoma (14.4.1)
Barry Kelly
Moderator

Element Transfer settings do not apply to individual parameters of an object or label.

But as the label is a scripted object, you can set the parameters to not transfer.

I can never remember what it is called, but the 'U' button in the parameter list, prevents the values of the parameter being passed along when you pick up / inject settings.

 

BarryKelly_0-1659942206437.png

 

 

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

Sadly this is exactly how it does not work. 😞

Or rather, Archicad is again really inconsistent.

The undocumented "U" parameter flag tells Archicad, that this parameter has to be treated differently and was invented to have the possibility to have the same parameter name in different objects, but meaning different things.

The only place where it comes into play is in the object dialog. It is possible to inject settings there (no eye-dropper, only syringe in the left side of the dialog). If you do this, and the object you are injecting to (!) happens to have a parameter with the same name, but the "U" flag, this parameter value will then not be injected/overriden.

 

So, in all in all, this thing does not do what everybody thinks it does, and it also proves a bit unhelpful in that regard. And as you would expect from Archicad, it is opaque and unintuitive why the same thing works different depending on if you're in the dialog or not. Already argued with them too much about this, but the devs are just to dense to comprehend that the user doesn't care why this is. It just makes no sense.

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»

@runxel , you are correct and I was mistaken in my thinking of how this works.

This only works when transferring settings when in the object settings dialogue.

 

So when you have an existing object and you want to replace it with a new object, with all the same settings (if they have those settings in common), except those tagged with the 'U' flag.

Select an existing object, open the settings dialogue, find the new object you want it to become and CTRL+ALT (inject) the properties into that object.

 

 

It does not apply when transferring settings from one object to another.

 

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

🤦‍  Looks like GDL was luring me down the wrong path yet again!  Guess I'll just have to hardcode some default options based on the element type.

 

Thanks so much for your help to clarify @runxel  and @Barry Kelly 

 

Totally agree that the logic is totally counterintuitive and I can't see any reason why the Unique setting couldn't also apply to the eyedropper / syringe action.

 

Scott J. Moore | Fulton Trotter Architects | BIM Manager, Associate, Architect
Since AC13 | Current versions AC23.7000 & AC26.5002 | BIMCloud Basic | Python, GDL, VBA, PHP, SQL, CSS
Certified Graphisoft BIM Manger (2022)
Win 10, i9-9900K, 32GB, Quadro P2200, 500GB NVMe

For what it's worth (not very experienced GDL coder): I generally define a few parameters in script for this reason. At least I only have to change one instance in the script and the code can stay the same.

 

You are probably already doing this, but just incase 🙂

Erwin Edel, Project Lead, Leloup Architecten
www.leloup.nl

ArchiCAD 9-26NED FULL
Windows 10 Pro
Adobe Design Premium CS5

Let me tell y'all one very crude tip:

You, foremost @scottjm, can circumvent this issue with GLOB_INTGUID.

I've used it in some of my objects where I wanted them to "reset" when eyedropping them. Works like a charm.

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»

Thanks @runxel. Yes I had been messing around using GLOB_INTGUID to set the param value I was wanting for a specific element type for it’s first placement which was kinda working.  So will attempt to modify that to get it to react to a syringe to reset to a default for each element type.
 
I’ve been modifying the standard Archicad generic label and it was the SurfaceToDisplay param that was giving me grief. Given it changes it’s available options of available surface to display depending on the element type the label is associated too. (Wall face vs slab face etc). 
But a user can also choose between outside, inside or edge face etc to be displayed so I was wanting the user selection to be able to be preserved when syringing other label configs arounds. 
but alas. 

thanks again!

Scott J. Moore | Fulton Trotter Architects | BIM Manager, Associate, Architect
Since AC13 | Current versions AC23.7000 & AC26.5002 | BIMCloud Basic | Python, GDL, VBA, PHP, SQL, CSS
Certified Graphisoft BIM Manger (2022)
Win 10, i9-9900K, 32GB, Quadro P2200, 500GB NVMe
Learn and get certified!