Как перечислить все значения атрибутов одного узла с Python Майя? - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь перечислить все атрибуты и их значения для одного узла (из сети Mash), но я получил сообщение об ошибке, когда атрибут не имеет значения, даже если я использую цикл "попробовать / исключить"

attributes = cmds.listAttr('MASH_A_Repro')
for attribute in attributes:
    myAttr='MASH_A_Repro.'+attribute
    try :
        print 'Attribute %s Value %s' % (attribute, cmds.getAttr(myAttr) )
    except KeyError:
        print 'erreur'  

Ошибка: RuntimeError: строка файла 10: атрибуты сообщения не имеют значений данных.#

В этом случае первый атрибут - «Сообщение» и не имеет значения.Как я могу обойти это?

1 Ответ

0 голосов
/ 06 октября 2018

Вы хотите обойти атрибуты сообщения - поскольку ошибка говорит, что у них нет данных.

Это не даст вам взорвать:

import maya.cmds as cmds

for item in cmds.listAttr('polyPlane1'):
try:
    print cmds.getAttr('polyPlane1.' + item)
except RuntimeError:
    pass

Но вы 'Я все еще получу досадную распечатку ошибок.Вы можете выполнить дешевую предварительную проверку, ограничив свой listAttr вызов записываемыми атрибутами:

for item in cmds.listAttr('polyPlane1', w=True):
try:
    print item, cmds.getAttr('polyPlane1.' + item)
except RuntimeError:
    pass
...