VRay Object ID

This script adds a VRay object ID tag or material ID tag and sets its value to any selected geometry, materials, or shading engines.

To Run: Select the geometry, materials, or shading engines you want to add an ID to then run the script.

#Object for VRay Maya version 1.0.0
#Should work with up to Vray 2.4 haven't gotten access to a later version to test
#Bryanna London
#!/usr/bin/env python

#Adds object IDs to selected meshes or it will add a material Id to selected materials or shading engines
import maya.cmds as cmds

def idAssign(): 

    #define selected objects, selected materials, and selected shading engines
    selectedObjs = cmds.ls(selection = True, dag = True, lf = True, visible=True, type = 'mesh')
    selectedMtls = cmds.ls(selection = True, materials = True)
    selectedShadingE = cmds.ls(selection = True, type = 'shadingEngine')

    selected = selectedObjs + selectedMtls + selectedShadingE
    #if nothing is selected give a warning message
    if not selected:

        cmds.confirmDialog( title = 'Warning', message = 'Nothing Selected. Nothing Done.', button = 'OK', defaultButton = 'OK')

    #Dialog Window
    if selected:

        idPrompt = cmds.promptDialog(title = 'VRay Object ID', message = 'Enter Object ID Number', button=['Add', 'Remove', 'Cancel'],
                                   defaultButton='Add', cancelButton='Cancel', dismissString='Cancel') 

    #If Add is selected
    if idPrompt == 'Add':

        #Query prompt
        number = cmds.promptDialog(query = True, text = True)

        #Add vray object ID attribute
        for selectedObj in selectedObjs:

            cmds.vray("addAttributesFromGroup", selectedObj , "vray_objectID", 1)
            cmds.setAttr(selectedObj + '.vrayObjectID', int(number))

        #Add vray material ID attribute to shaders
        for selectedMtl in selectedMtls:

            cmds.vray("addAttributesFromGroup", selectedMtl , "vray_material_id", 1)
            cmds.setAttr(selectedMtl + '.vrayMaterialId', int(number))

        #Add vray material ID attribute to shading engine
        for selectedShading in selectedShadingE:

            cmds.vray("addAttributesFromGroup", selectedShading , "vray_material_id", 1)
            cmds.setAttr(selectedShading + '.vrayMaterialId', int(number))

    #If Remove is selected
    if idPrompt == 'Remove':

        #Add vray object ID attribute
        for selectedObj in selectedObjs:

            cmds.vray("addAttributesFromGroup", selectedObj , "vray_objectID", 0)

        #Add vray material ID attribute to shaders
        for selectedMtl in selectedMtls:

            cmds.vray("addAttributesFromGroup", selectedMtl , "vray_material_id", 0)

        #Add vray material ID attribute to shading engine
        for selectedShading in selectedShadingE:

            cmds.vray("addAttributesFromGroup", selectedShading , "vray_material_id", 0)

#Run the Script
idAssign()

© 2016 Bryanna London

Advertisements