splinecraft
2/1/2020 - 6:24 AM

get all animation layers

import maya.cmds as cmds
import collections

def getAllLayers():
    rootLayer = cmds.animLayer(q=True, r=True)
    if rootLayer:

        def search(layer, depth=0):
            children = cmds.animLayer(layer, q=True, c=True)
            if children:
                for child in children:
                    layers[child] = {"depth": depth}
                    search(child, depth + 1)

        layers = collections.OrderedDict()
        search(rootLayer)
        if layers:
            for layer in layers:
                mute = cmds.animLayer(layer, q=True, m=True)
                solo = cmds.animLayer(layer, q=True, s=True)
                layers[layer]["mute"] = mute
                layers[layer]["solo"] = solo
            return layers
    return {}