一、 ButtonParmTemplate按钮参数
二、 DataParmTemplate数据参数
三、 FloatParmTemplate浮点参数
四、 FolderParmTemplate多参数夹子参数
五、 FolderSetParmTemplate参数夹子的集合
六、 IntParmTemplate整数参数
七、 LabelParmTemplate标签参数
八、 MenuParmTemplate下拉菜单参数
九、 RampParmTemplate渐变类型Ramp参数
十、 SeparatorParmTemplate分隔符
十一、StringParmTemplate字符串参数
十二、ToggleParmTemplate复选框参数
obj = hou.node('/obj')
geo = obj.createNode('geo','My_Geometry')
subnet = geo.createNode('subnet','My_Subnet')
subnet.parm('label1').hide(True) # True表示隐藏,False表示不隐藏
subnet.parm('label2').hide(True)
subnet.parm('label3').hide(True)
subnet.parm('label4').hide(True)
btn = hou.ButtonParmTemplate('btn1', 'Button1') # 名称,标签名
# 第一种是分别使用setScriptCallbackLanguage设置脚本类型和用setScriptCallback设置要调用的脚本
btn.setScriptCallbackLanguage(hou.scriptLanguage.Python) # 设置脚本类型为python
btn.setScriptCallback("print 'hello'")
# 另一种是用setTags方法,setTags方法的参数是一个字典
btn.setTags({'script_callback_language':'python','script_callback':"print 'hello'"})
subnet.addSpareParmTuple(btn)
data = hou.DataParmTemplate('data1', 'My Data')
subnet.addSpareParmTuple(data)
f1 = hou.FloatParmTemplate('foo', # 名称
'Foo', # 标签名
1, # 参数有几个元数
# 下面是可选项
(0.5,), # 默认值是一个元组
0.001, # 最小值
3.0, # 最大值
True, # 最小值钳制,True表示钳制
False, # 最大值钳制,False不钳制
hou.parmLook.Regular # 枚举类型表示默认
hou.parmNamingScheme.Base1 # 名称方案
None, # disable_when
False, # 是否隐藏
False, # 隐藏标签
False, # 与下一个参数合并(下一个参数并排,而不是在在下面)
None, # 参数帮助
None, # 回调脚本
hou.scriptLanguage.Hscript, # 回调脚本类型
{}, # tags 字典
('$T',) # 默认表达式 元组
(hou.scriptLanguage.Hscript,) # 默认表达式类型 枚举类型 元组
)
subnet.addSpareParmTuple(f1)
hou.parmLook 枚举类,控制参数外观
hou.parmNamingScheme 枚举类,控制名称方案
color = hou.FloatParmTemplate('color', 'Color', 3, (0.9, 0.9, 0.9), 0, 1, True, True, hou.parmLook.ColorSquare, hou.parmNamingScheme.RGBA)
frange = hou.IntParmTemplate('f', 'Start/End/Inc', 3, (1, 100, 1))
floder = hou.FolderParmTemplate('floder1', 'Floder1', (color, frange), hou.folderType.TabbedMultiparmBlock)
subnet.addSpareParmTuple(floder)
fd_set1 = hou.FolderSetParmTemplate('fd_set1', ('floder_a','floder_b','floder_c'), hou.folderType.Simple)
subnet.addSpareParmTuple(fd_set1)
a1 = hou.FloatParmTemplate('a1', 'A1', 1, (0.5,))
b1 = hou.FloatParmTemplate('b1', 'B1', 1, (0.5,))
c1 = hou.FloatParmTemplate('c1', 'C1', 1, (0.5,))
subnet.addSpareParmTuple(a1, ('floder_a',))
subnet.addSpareParmTuple(b1, ('floder_b',))
subnet.addSpareParmTuple(c1, ('floder_c',))
a2 = hou.FloatParmTemplate('a2', 'A2', 1, (0.2,))
a3 = hou.FloatParmTemplate('a3', 'A3', 1, (0.4,))
floder1 = hou.FolderParmTemplate('floder2', 'Floder2', (a2, a3), hou.folderType.Simple)
subnet.addSpareParmTuple(floder1, ('floder_a',))
参考 FloatParmTemplate浮点参数
label5 = hou.LabelParmTemplate('label5', "My Label", ('A', 'B', 'C', 'haha', 'hehe' ,'hello'))
subnet.addSpareParmTuple(label5, ('floder_a',))
menu = hou.MenuParmTemplate('res', 'Resolution', ('low', 'mid', 'hi'), ('Lower', 'Middle', 'High'), 1)
subnet.addSpareParmTuple(menu, ('floder_a', 'Floder2'))
r1 = hou.RampParmTemplate('color_ramp',
"Color Ramp",
hou.rampParmType.Color, # 枚举类型,Color表示ramp的类型为颜色
2,
hou.rampBasis.CatmullRom, # 枚举类型,CatmullRom表示平滑
True,
hou.colorType.LAB) # 枚举类型,颜色模式 RGB HSV HSL LAB XYZ
r2 = hou.RampParmTemplate('spline_ramp',
"Spline Ramp",
hou.rampParmType.Float, # 枚举类型,Float 表示ramp的类型为线性
2,
hou.rampBasis.CatmullRom)
subnet.addSpareParmTuple(r1, ('floder_a',))
subnet.addSpareParmTuple(r2, ('floder_a',))
sep1 = hou.SeparatorParmTemplate('sep1')
subnet.addSpareParmTuple(sep1, ('floder_a', 'Floder2'))
# 磁盘文件
str1 = hou.StringParmTemplate('file',
'File',
1,
("C:/geo/$HIP/$OS.$F4.bgeo.sc",), # 默认值是元组
hou.parmNamingScheme.Base1,
hou.stringParmType.FileReference, # 引用磁盘上的文件
hou.fileType.Geometry)
str1.setTags({'filechooser_mode':'read'}) # 文件选择类型为只读
str2 = hou.StringParmTemplate('camera',
'Camera',
1,
("/obj/cam1",),
hou.parmNamingScheme.Base1,
hou.stringParmType.NodeReference, # 引用节点
hou.fileType.Geometry)
str2.setTags({'oprelative':'.','opfilter':'!!OBJ/CAMERA!!'}) # 选择路径和节点类型过滤
subnet.addSpareParmTuple(str1, ('floder_a', 'Floder2'))
subnet.addSpareParmTuple(str2, ('floder_a', 'Floder2'))
tog = hou.ToggleParmTemplate('loadimg', 'loadimg')
tog.setJoinWithNext(True) # 与下一个参数并排成一行
tog.hideLabel(True) # 隐藏标签
img = hou.StringParmTemplate('img', 'Load Image', 1, ('',),
hou.parmNamingScheme.Base1,
hou.stringParmType.FileReference, # 引用外部磁盘文件
hou.fileType.Image) # 文件类型为图片格式
img.setDisableWhen('{ loadimg == 0 }') # 勾选复选框才会启用该参数
lod_floder = hou.FolderParmTemplate('lod', 'Load Image',
(tog, img),
hou.folderType.ImportBlock) # 使用外部快,因为并排参数需要在一个夹子里
subnet.addSpareParmTuple(lod_floder, ('floder_a', 'Floder2'))
ButtonParmTemplate 创建按钮 ↩︎
DataParmTemplate 创建数据类参数 ↩︎
FloatParmTemplate 创建浮点类参数 ↩︎
FolderParmTemplate 夹子参数类 ↩︎
FolderSetParmTemplate 多夹子类 ↩︎
IntParmTemplate 整数参数类 ↩︎
LabelParmTemplate 标签参数类 ↩︎
MenuParmTemplate 下拉菜单参数类 ↩︎
RampParmTemplate 渐变Ramp参数类 ↩︎
SeparatorParmTemplate 分隔符 ↩︎
StringParmTemplate 字符串参数类 ↩︎
ToggleParmTemplate 复选框 ↩︎