Automatically adding parameters with the same name in python

   5508   2   0
User Avatar
Member
24 posts
Joined: Feb. 2010
Offline
Hi,
I am trying to add parameters with the same name to a node using python.
Looking at the output of asCode() on a node I thought I could use name# so that houdini would automatically add name1, name2 etc if the names were the same

parm_group = n.parmTemplateGroup()
hou_parm_template2 = hou.ToggleParmTemplate(“passOn#”, “Pass On”, default_value=True, disable_when=“”)
hou_parm_template3 = hou.ToggleParmTemplate(“passOn#”, “Pass On”, default_value=True, disable_when=“”)
parm_group.appendToFolder((“Passes”, ), hou_parm_template2)
parm_group.appendToFolder((“Passes”, ), hou_parm_template3)
n.setParmTemplateGroup(parm_group)

errors with …

Traceback (most recent call last):
File “<console>”, line 1, in <module>
File “/opt/hfs11.0.426/houdini/python2.6libs/hou.py”, line 5040, in setParmTemplateGroup
def setParmTemplateGroup(*args, **kwargs): return _hou.Node_setParmTemplateGroup(*args, **kwargs)
OperationFailed: The attempted operation failed.
Parameter name ‘passOn#’ is invalid or already exists

I was looking at the .asCode of a mantra node as an example which had ..

hou_parm_template4 = hou.FloatParmTemplate(“vm_gain_plane#”, “Gain”, 1, default_value), min=0.001, max=10, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1)

I am not sure why “vm_gain_plane#” worked on the mantra node but my “passOn#”
in the first example doesn't
Thanks in advance
Stephen
User Avatar
Staff
1072 posts
Joined: July 2005
Offline
jumper
I am trying to add parameters with the same name to a node using python.
Looking at the output of asCode() on a node I thought I could use name# so that houdini would automatically add name1, name2 etc if the names were the same

parm_group = n.parmTemplateGroup()
hou_parm_template2 = hou.ToggleParmTemplate(“passOn#”, “Pass On”, default_value=True, disable_when=“”)
hou_parm_template3 = hou.ToggleParmTemplate(“passOn#”, “Pass On”, default_value=True, disable_when=“”)
parm_group.appendToFolder((“Passes”, ), hou_parm_template2)
parm_group.appendToFolder((“Passes”, ), hou_parm_template3)
n.setParmTemplateGroup(parm_group)

The # is a special symbol used for parameters instanced via a multi-parm, and shouldn't be used outside of this context.
User Avatar
Member
24 posts
Joined: Feb. 2010
Offline
Just looking up the multiparm docs … wow saves me a hell of a lot of work
Thanks!
Stephen
  • Quick Links