I’m new to python and after a lot of time trying to solve a problem, I’m pretty lost so I thought I’d ask my first question here.
I have a main file with a referenced file in Maya, where I am trying to list the connections of a certain node, for which the source is in the referenced file and the destination is in the main file
import pymel.core # get relevant list: aSourceNodeCC = cmds.ls ("ShaderReference:CC*") # source details for eSourceNodeCC in aSourceNodeCC: # destination details if cmds.connectionInfo ('%s.outColor' % eSourceNodeCC, destinationFromSource = 1) is not None: aConnectionCC = cmds.connectionInfo ('%s.outColor' % eSourceNodeCC, destinationFromSource = 1) # list generation for eConnectionCC in aConnectionCC: aConnectionCCMaster = eSourceNodeCC + ('.outColor ') + eConnectionCC print aConnectionCCMaster
The issues I’m having is that the CC* nodes sometimes have connections within the referenced file as well as the main file. I only need the connections to the main file, and am struggling to filter out the ones that are connected to other nodes within the referenced file. i.e. I need to keep entries that look like:
ShaderReference:CC_white.outColor SS_white_custom.baseColor
but need to exclude entries that look like:
ShaderReference:CC_white.outcolor ShaderReference:SS_white_custom.baseColor
Any help would be very much appreciated. Thanks.
Advertisement
Answer
try this:
# list generation for eConnectionCC in aConnectionCC: # check if ref if cmds.referenceQuery(eConnectionCC, isNodeReferenced=True): continue aConnectionCCMaster = eSourceNodeCC + ('.outColor ') + eConnectionCC print aConnectionCCMaster