Skip to main content

PDGのプロセッサ

Generate

PDG のジョブ単位である WorkItem を作る。

for i in range(5):
new_item = item_holder.addWorkItem()

基本は、 item_holder.addWorkItem() でアイテムホルダーに対して WorkItem を追加する。 上の例だと 5 つの WorkItem を追加する。

for upstream_item in upstream_items:
new_item = item_holder.addWorkItem(parent=upstream_item)

上流の WorkItem と同じ量を追加したいなら、upstream_items で受け取れる WorkItem の配列を使用する。 parent 指定がされていれば、

このように、依存関係が作られる。

parent がなければ、同じ数作られても、依存は持たない。

for upstream_item in upstream_items:
for i in range(5):
new_item = item_holder.addWorkItem(parent=upstream_item)

このように複数にすれば、

同じ親を持つ WorkItem を生成できる。

attribute

WorkItem 1つがジョブの単位なので、実際に実行するジョブ(コマンドラインなど)で使用するパラメーターは Workitem に対して追加し、実際に実行するときにはこの Attribute を参照するようにする。

Generate したときの new_item は WorkItem オブジェクト。

https://www.sidefx.com/ja/docs/houdini/tops/pdg/WorkItem.html

for upstream_item in upstream_items:
for i in range(5):
new_item = item_holder.addWorkItem(parent=upstream_item)
new_item.addAttrib('subIndex',pdg.attribType.Int).setValue(i)

なので、addAttrib で Generate 時に指定もできる。