So this is a script I wrote in order to automate putting objects into passes’ background partitions for either the active pass or multiple selected passes. Â It is filed here
# Move selected objects to background partitions
# created by Gareth Bell
# original created in VBScript 28-11-11
# converted to Python 26-07-2012
# Description:
# This script will put the selected objects into either the current passes bg partitions or, if selected, multiple passes bg partitions
##################################
# To use: select objects and passes. Run.
##################################
import win32com
xsi = Application
#create collections to store objects
geoColl = win32com.client.Dispatch( "XSI.Collection" )
passesColl = win32com.client.Dispatch( "XSI.Collection" )
lightsColl = win32com.client.Dispatch( "XSI.Collection" )
selection = win32com.client.Dispatch( "XSI.Collection" )
selection.AddItems (xsi.Selection)
#sort selection into collections (objects, lights and passes)
for obj in selection:
if obj.type == "light":
lightsColl.AddItems (obj)
elif obj.type == "Pass":
passesColl.AddItems (obj)
else:
geoColl.AddItems (obj)
passCount = passesColl.Count
#decide if sorting is in only the current pass or multiple passes
if passCount > 0:
for eachPass in passesColl:
print str(geoColl) + " has/have been put into the background partition in " + str(eachPass.name)
xsi.MoveToPartition(str(eachPass) + ".background_objects_partition", geoColl, eachPass)
print str(lightsColl) + " has/have been put into the background partition in " + str(eachPass.name)
xsi.MoveToPartition(str(eachPass) + ".background_lights_partition", lightsColl, eachPass)
else:
currentPass = xsi.ActiveProject.ActiveScene.ActivePass
print str(geoColl) + " has/have been put into the background partition in the current pass"
xsi.MoveToPartition(str(currentPass) + ".background_objects_partition", geoColl, currentPass)
print str(lightsColl) + " has/have been put into the background partition in the current pass"
xsi.MoveToPartition(str(currentPass) + ".background_lights_partition", lightsColl, currentPass)
