You might find some utility in the subroutines inside the Sanity Checker Plugin: https://docs.google.com/open?id=0B1YpeWdrXDofNDE0NGY0ZWMtNjZkNC00YTYxLTkyMDUtZTY5YjQyYWU5M2Y3
It's in Python, but OM is OM. On Fri, Jun 22, 2012 at 8:37 PM, Matt Lind <ml...@carbinestudios.com> wrote: > Tricky problem I’m trying to solve. **** > > ** ** > > I know I can find all the custom operators in the scene with FindObjects() > and traverse operator output ports to find out where the operator is > connected, but in this particular case I need to go the opposite direction. > **** > > ** ** > > The problem I need to solve is:**** > > Given an arbitrary object in the scene, determine if it has a custom > operator applied to it.**** > > ** ** > > ** ** > > In my test cases I have used FindObjects() to locate the custom operators > and print out their output port connections. In nearly all instances the > custom operator doesn’t show up in the scene explorer where the output port > claims it should be.**** > > ** ** > > Example:**** > > ** ** > > A custom operator which drives the translation U and V > (projtrsu, projtrsv) parameters of a texture projection Def property. When > I query those parameters for their sources, they return a reference to the > custom operator driving them. When I query the custom operator’s output > ports, they say the operator lives on the texture projection def property. > Yet when I open the scene explorer and navigate to the texture projection > def property, no operator is found. Instead an instance is nested below > each parameter connected to the output ports. Illustration from scene > explorer:**** > > ** ** > > PolygonMesh**** > > Primitive**** > > Clusters**** > > SampleCluster**** > > Texture_Projection**** > > Texture_Projection_Def**** > > (CustomOperator.FullName points here)**** > > Projscl**** > > Projrot**** > > Projtrs**** > > Projtrsu**** > > CustomOperator (actual location)**** > > Projtrsv**** > > CustomOperator (actual location)**** > > ** ** > > When I query the Texture Projection Def’s various collections (Properties, > NestedObjects, …), the custom operator is nowhere to be found.**** > > ** ** > > So given an arbitrary scene object, how do I determine if it has a custom > operator other than resorting to FindObjects()?**** > > ** ** > > ** ** > > ** ** > > Matt**** > > ** ** > > ** ** > > ** ** >