pymel对象上的addAttr方法

时间:2019-02-05 02:16:13

标签: python methods maya pymel

我似乎无法正确利用addAttr方法。我使用的是与从pymel.core调用时使用的参数相同的参数,但结果却不尽相同。

我正在尝试添加自定义消息属性,以便以后可以轻松搜索某些类型的对象。当我从pymel.core进行操作并包含与参数相同的对象引用时,它可以正常工作。

#get object reference
test_object = pm.ls(sl=1)[0]

#this one spits out an error
test_object.addAttr(longName = 'custom', attributeType = 'message')

#this one works fine
pm.addAttr(test_object, longName = 'custom', attributeType = 'message')

我不断收到此错误 错误:TypeError:文件第1行:addAttr()恰好接受2个参数(给定1个) 当我以这种方式使用它时,它还会寻找什么其他参数?我显然缺少有关方法如何工作的明显信息,但我无法弄清楚。

2 个答案:

答案 0 :(得分:0)

来自cgsociety线程

pCube.addAttr('timeBasedAttr', keyable=True, attributeType='float', min=0.0, max=1.0)

您应该写:

test_object.addAttr('custom', attributeType = 'message')

我已经尝试过,并且不会输出错误。

答案 1 :(得分:0)

在Maya PyMel中为DG节点公开的addAttr方法具有以下签名。

addAttr(attr, **kwargs)

此处attr是代表属性名称的位置参数。可以将pm.addAttr()方法中使用的所有其他相关标志提供给kwarg。因此,您必须将属性名称作为第一个参数传递。

node.addAttr('custom', attributeType='message')

希望这会有所帮助。