Here’s a simple Python snippet that shows how to traverse the object hierarchy to get at a Texture Projection Definition. Note that I’m not looping over any of the collections, I just get the first element with “(0)” on lines 25, 28, and 31.
# # 2013 SP1 shortcuts # #from sipyutils import si # win32com.client.Dispatch('XSI.Application') #from sipyutils import siut # win32com.client.Dispatch('XSI.Utils') #from sipyutils import siui # win32com.client.Dispatch('XSI.UIToolkit') #from sipyutils import simath # win32com.client.Dispatch('XSI.Math') #from sipyutils import log # LogMessage #from sipyutils import disp # win32com.client.Dispatch #from sipyutils import C # win32com.client.constants #si=si() si=Application dict=si.Dictionary def dispFix( badDispatch ): import win32com.client.dynamic # Re-Wraps a bad dispatch into a working one: return win32com.client.dynamic.Dispatch(badDispatch) o = dict.GetObject( "grid1" ) # Get the texture coordinates (aka the Sample cluster) c = o.ActivePrimitive.Geometry.Clusters.Filter( "sample" )(0) # Get the Texture Projection uv = c.Properties.Filter( "uvspace" )(0) # Get the Texture Projection Definition uvdef = uv.NestedObjects.Filter( "uvprojdef" )(0) print si.ClassName(uvdef) # Get a texture projection parameter (in this example, the U translation) x = dispFix(uvdef) projtrsu = x.Parameters("projtrsu") print si.ClassName( projtrsu ) print projtrsu.FullName