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.
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.
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.
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.
@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.
🤦 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.
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.
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 🙂
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.
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.
The syringe on the plan transfers various element settings, and treats the selected library part with all its parameters as one setting.
I agree it would be helpful to be able to control the library part and its parameters separately in the transfer exclusions.
Yeah, maybe we could have the possibility for a more granular way of syringing/injecting parameters in the future.
I know, it's not easy to implement. In the end you always have to think of all the scenarios and balance pros and cons.
E.g. there are 2 possible ways to handle this:
• The programmer chooses which parameters are never to be picked for one object (great, because they probably know best; but not so good if you have a malicious programmer :P)
• The user can set this as part of the element transfer settings (which is not easy due to the custom naming of parameters)
• Or actually both.
On a related side note: It would be great to have the ability to pick the settings from objects which belong to a system, too (where they are a sub-element like in stairs, CWs, railings, etc.) and inject them later! Especially with railings this would save some nerves 🙂
Hi @Peter Baksa ,
What can we do to get this request onto the roadmap?
My feeling is that if the programmer sets a parameter as Unique, it should be not be overridden by the syringe tool. The way it appears to currently function is not the expected behaviour.