3DS Max Working up a controller tree

We’re working on a tool that is based off another TDs work, and Ive run into a bit of a wall. Its a version of a pose saver with some extra stuff put in. Selected controllers are saved into an array. When you call up the array, you get a whole bunch of “Controller:Bezier_Float”. I know how to work my way down a tree via code, but I can’t find any documentation for working my way up a tree to check what these controllers are. What we want is a way to check what is in the array instead of just #(Controller:Bezier_Float, Controller:Bezier_Float,…). I tried using “trackView.zoomSelected”, but it can only be passed a name as a string, which the controller apparently does not have as a property. How can I find out what node this controller is a part of, and ideally find out where it is inside its controller tree?

One controller can be instanced across multiple nodes (the exact same bezier_float can drive x_position in one node and z_position in another), so you’d have to use refs.dependentNodes to get the nodes that depend on the controller and traverse the hierarchy to get the hierarchy tree. If the controllers are unique, exprForMAXObject might be good enough.

Looks like a tool you can modify in which case it might be better to rethink what would be handy to store (struct with the whole tree / subAnim / trackViewPick) instead of having to reverse-engineer the values you could have had already at your disposal.