|On this page|
This node can be used to write custom partitioner logic using the Python API.
For use cases that can expressed as a single line Python or HScript expression, the Partition by Expression is a simpler alternative.
Save to Python Script
Saves the callbacks defined on this node to a Python script, which can be imported and registered with PDG. The parameter template associated with the node is also saved and embedded into the Python script. After saving the script is automatically imported and the node type is made available in the TAB menu.
Save to Digital Asset
Saves the callbacks defined on this node to a standalone Houdini Digital asset. The callbacks are stored inside the .hda itself and are registered with PDG as an embedded PDG node type.
Use Dynamic Partitioning
When this toggle is enabled the partitioner will wait for all input work items to be generated before partitioning them. If the input work items are dynamic, this means the partitioner will have to wait for and depend on the parent(s) of those items.
Merge Input Attributes
When this toggle is enabled the partitioner will merge the attributes of the work items in each partition and export them to the partition itself.
This script is run in order to partition the upstream items.
If this is a static partitioner it is run once during the static cook with the full list of upstream static items as input. If this is a dynamic partitioner it is run once during the cook based on the value of the Partition When parameter.
Several variables are available in the script:
Refers to the underlying PDG node associated with the TOP node. Note that this is different than TOP node itself, which is a standard Houdini operator.
Spare parameters added to the TOP node’s parameter interface will automatically be added to the PDG node.
The partition holder used to add work items to partitions. Partitions will be committed to the node once the script completes. If there are any errors during the script, the contents of the partition holder is discarded.
The list of work items to partition.
These are advanced parameters that provide finer control over the behavior of the partitioner.
Auto Remove Stale Dependencies
When recooking the node, indicates that the partitioner should remove old dependencies if the partitioning scheme changes as a result of the cook.
Force Re-Evaluation on Cook
Forces the partitioner to re-evaluation the partitioning scheme even if all of the work items are already cooked and no new work items have been added.
The dirty mode parameter offers fine grained control over when a partition is dirtied and the effects on child items when that occurs. This parameter is particularity useful for working around some of the limitation of using dynamic partitioning.
A given partition will be dirtied when any of the work items in the partition are dirtied. In the case of dynamic partitioning, if any ancestor of a dynamic work item in a partition is dirtied, then All partitions will be dirtied.
When a partition is dirtied all of its children are deleted.
The same dirtying behavior as Standard, except when a partition is dirtied its children will be dirtied instead of deleted.
A given partition will only be dirtied if an item in the partition is dirtied or if the partition’s contents changes as a result of a recook. When the partition is dirtied, any child work items will be deleted.
The same as Mapping Standard, except when a partition is dirtied its children will be dirtied instead of deleted.
Sort Contents By
Determines the order that work items are sorted when accessing the partitions on this node. This also affects the sort order of output files on the partition.
No sorting is applied - the work items in the partition are handled in no particular order.
Work Item Index
Work items in the partition are sorted based on their index
Input Node Order
Work items in the partition are sorted based on the order of inputs nodes wired into the partitioner itself. If two work items are from the same input, they are then sorted by index.
Work items in the partition are sorted based on the attribute specified in the Sort Attribute parameter.
Determines whether the work items in this node’s partitions are sorted in ascending or descending order.
When Sort Contents By is set to Attribute, this parameter is used to determine the name of the attribute to sort by.
This parameter is only enabled when using dynamic partitioning. It controls when the partitioning step is performed on the input work items.
Input Items Are Generated
Inputs are partitioned once all of them have been generated.
Input Items Are Cooked
Inputs are partitioned once all of them are cooked. This is required when the partitioning scheme is based on the results of the work items' execution.
This makes this partitioner behave like a Wait for All except that it may create multiple partitions.
This parameter is only enabled when using dynamic partitioning. When the target is set, the partition scheme will be applied to the work items in the target TOP node instead of the input work items.
The target TOP node must be a processor in the same graph above this node, and there cannot be any other mappers or partitioner between this node and the target.
This example demonstrates how to use the Python Partitioner node in PDG/TOPs.
The following examples include this node.