Much of what I've needed to do is enter lots of channel expressions to have the functionality of a Houdini light play nicely with the top level interface. Betwen callback scripts and some expressions, I've got that working.
However, I stole an expression that I've been unable to find definitions for. They work, but I'm wondering if someone can tell me how to RTFM.
If I want a channel in a node that lives deep in the bowels of the network to mimick the contents of another high above it, I've found that something like this works:opparm foo bar_enable ( ‘!!ch(“../../../bar_enable”)!!’ )
Now this looks at the root level of the operator that I'm building, and steals the value of “bar_enable” and uses that. It works fine. What are the “!!”'s all about, though? What do they do?
Another question - this works well enough for integer/float/logic channels, but it doesn't work properly with strings, especially when there's a menu of string choices. So, I've found that:
opparm foo2 bar_list ( ‘`chs(“../../../bar_list”)`’ )
works just fine. However, I get one warning when I save the OTL that does *not* happen when I use the earlier expression:
“The selected node has references to nodes outside the subnet, or has references that are absolute path….”etc etc.
It lists this particular expression that it's unhappy with. It still saves just fine, and everything seems to work, but it's not very purty. Fact is, I'm *not* using an absolute path, nor am I referencing to outside of the node I'm building - that particular path I'm showing is at the top node level. In fact, it has to be, or this would break.
Is this just a broken warning in this context?
Thanks
J.C.
