Connecting parameters

On 16/11/2017 at 16:59, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R19 
Platform:   Windows  ; Mac  ;  Mac OSX  ; 
Language(s) :     C++  ;


Is there a way make an automatic connection between parameters from two different tags?
So that if I set parameter A in Tag1, it will be copied to parameter B in Tag2.
It can be easily done in xpresso, but I want to avoid it because it will vanish in R20.


On 17/11/2017 at 05:02, xxxxxxxx wrote:

Hello Roger,

XPresso will NOT vanish in R20. Who is saying this? I read such an assumption over in the developers blog, but I already explained there, we have no, absolutely no, intention to remove XPresso. Believe me. We MAXONians do not often speak about the future, maybe because it is pretty dangerous, if we do.

We announced that C.O.F.F.E.E. will be removed with R20. And yes, in this announcement we also mentioned for completeness reasons, that this removal includes the XPresso C.O.F.F.E.E. scripting node (pretty obvious, what use would it have without C.O.F.F.E.E.). But that is all.

Please, help us in getting rid of these rumors. Tell everybody who is talking about XPresso being removed with R20, that this is NOT true. And maybe you also have an idea, how we should change the announcement, so it can not be that easily misinterpreted.

Ok, now to your actual question:
Do you actually need any help, now, that XPresso is still available in R20? 🙂

On 17/11/2017 at 05:36, xxxxxxxx wrote:

Hi Andreas,

Sorry for the misunderstanding, and I'm glad to hear that!

If there was a way to connect the parameters without an xpresso tag would be much better for me, is it possible?


On 21/11/2017 at 06:53, xxxxxxxx wrote:

Hello Roger,

well, to be technically precise, parameters can not get connected, not even with XPresso. Instead only the parameter's values can be copied to other parameters.
I guess, that's called nitpicking... sorry. But maybe it helps to understand, why the rest of my answer is so vague.

There's not only one way to copy parameter values and which one to choose depends on the user experience you are trying to achieve. So for now, I can only provide some ideas.

You could use a Python Script tag on the target object. All you'd need to do here is find the source object and assign the wanted parameter to the target parameter of the host object.
This would probably be the least code to write.
Or implement your own custom tag (TagData) to achieve the same.

Or you could use a script or a CommandData plugin to actually imitate "Set Driver" / "Set Driven", basically creating the needed XPresso tags and "connect" the parameters in there. Not exactly "without XPresso tag" though...

Just ideas...

On 21/11/2017 at 15:01, xxxxxxxx wrote:

Hi Andreas,

Since I have a base class to all my tags, when I need to pass some data I use a MSG_RETRIEVEPRIVATEDATA message, and the tags that accept that data will use it.
That message is made to request data, but I think there's no problem in sending data instead.