Proxy Select And Anticipating A User’s Needs

June 8th, 2008 by Patrick Boucher - Viewed 14036 times -

Two weeks ago Bryan Blevins, CG Supervisor at Wild Canary, asked a question on the Softimage|Net community about the possibility of doing proxy selects.

You all remember the idea of a proxy parameter where editing a parameter in a custom PPG (lets call this one the source) will in fact be changing another elsewhere in the scene (this one we will call the target). Extend this idea to a selection where selecting a source will in fact ‘transfer’ the selection to another object. This could be useful, among other cases, in a rigging scenario.

As it was suggested in the thread, there are many use cases for a functionality like this that can be addressed with native XSI tools and methodologies but nonetheless, I felt like there might be some cases where an actual proxy select could be useful. So I cooked one up for Bryan, and here it is.

Select one or more targets and then go to Get -> Property -> Proxy Select and then pick one or more source objects. From then on whenever you select a source object, it will unselect itself and select the targets instead. There is some sanity checking in there to try and avoid dependency loops and the like, just in case.

There are also three menu items in the MCP Select menu that will toggle proxy select functionality in six different ways.

  • Toggle on proxy select for all objects – when nothing is selected
  • Toggle off proxy select for all objects – when nothing is selected
  • Toggle/Inverse proxy select state for all objects – when nothing is selected
  • Toggle on proxy select for selected objects
  • Toggle off proxy select for selected objects
  • Toggle/Inverse proxy select state for selected objects

I can already hear you asking: “How can I select a proxy select source to toggle it’s functionality if it is already on and automatically transfers it’s selection?”


  • If it is only one object you wish to toggle you can go directly to it’s Proxy Select custom property.
  • If you wish to act on multiple objects with these toggle menus, you can multi select the objects and toggle them all together. When multiple objects are selected, no selection transfer takes place.
  • This also means that you can multi select a proxy select source with any other object and then use the menu items, any object that isn’t a proxy select source will be safely ignored.

And then came Thiago

One of the people involved in the thread was Thiago Costa from He is actually the one who suggested an approach for creating the Proxy Select plugin in the first place. Well, about the same time I had sent Bryan my first draft Thiago posted his version. I said it in the thread and I will say it again, it is very nicely executed.

One of the things he did is that he anticipated the user’s needs and thought for a second about what you would like to do with the resulting select.

Something that happens to often (well for me anyway), and especially in the heat of production, is that we fail to properly establish requirements.

These requirement will inevitably change.

When the first wave of requirements is put down on paper some time should be spent trying to anticipate the user’s needs as well as possible future requirements. Even if these extra features aren’t initially implemented, having this foresight will allow the resulting code to better accomodate change.


Check out the thread at Softimage|Net for Thiago’s version.

Download my version from here.

One Response to “Proxy Select And Anticipating A User’s Needs”

  1. [...] O mais engraçado no desenvolvimento deste plugin foir que o Patrick Boucher, comecou a desenvolver o plugin ao mesmo tempo. Então terminamos com 2 códigos diferentes que fazem quase a mesma coisa. hehe. Leia sobre isto neste post do XSI-Blog: Proxy Select and Anticipating A User’s Needs [...]