Houdini 18.5 Nodes TOP nodes

HDA Processor TOP node

Creates work items that cook a digital asset

On this page
Since 17.5

This node generates work items that cook an HDA using hython.

You can specify the values of the HDA’s parameters in the HDA Parameters tab of the node, which are then applied as attributes on the node’s work items and used in the job environment to configure the HDA before cooking.

The HDA Processor node currently supports Object, SOP, COP2, and LOP-type HDAs.

Tip

  • The $HH/help/files/pdg_examples/top_roaderbuilder example shows how you can use this node to write out geometry defined in a digital asset.

  • The $HH/help/files/pdg_examples/top_feedbackhda example shows how you can use this node inside of a feedback loop.

TOP Attributes

This node creates attributes on work items for all spare parms added to the HDA Parameters folder on the node.

Additionally, it also creates the following built-in attributes:

batchmode

integer

Determines the Batch Mode setting.

  • 0 = Off

  • 1 = All Items in One Batch

  • 2 = Custom Batch Size

connectiontimeout

integer

The connection timeout limit (ms) when using the HDA Processor service.

cookwhen

integer

Determines the Cook Batch When setting.

  • 0 = All Items are Ready

  • 1 = First Item is Ready

hda

string

The path to the digital asset that is cooked by the work item’s job.

operatortype

string

The operator type within the digital asset.

If you do not specify an operator type using the Operator Type parameter, then this attribute is set to the empty string and the work item will use the first operator in the .hda.

createfileinput

integer

Determines the Create File Inputs setting.

  • 0 = Do not create file inputs

  • 1 = Create file inputs

missinginput

integer

Determines the Missing Input setting.

  • 0 = Raise Error

  • 2 = Ignore

fileinputs

integer

Specifies the number of file inputs that are input to the HDA.

writeoutput

integer

Determines the Write Outputs setting.

  • 0 = Do not write outputs

  • 1 = Write outputs

dumpdebug

integer

Determines whether or not to save a debug .hip file.

  • 0 = Do not save .hip file

  • 1 = Save .hip file

inputpath

string

A list of paths to the file inputs that are input to the HDA.

outputfiles

integer

Specifies the number of output files that are written from the HDA.

hdasopname

string

When cooking an Object-level HDA, this specifies the name of the SOP that is the source of the output file(s) to write out.

If this empty, then the HDA Processor job attempts to find a valid node to output and issue a warning in the job log.

outputpath

string

A list of paths that specify the files to be written out.

outputtag

string

A list of file tags that specify the result tag for each output file.

hdaparms_floats

string

A list of names for all the float attributes that specify an HDA Parameter float value.

hdaparms_ints

string

A list of names for all the integer attributes that specify an HDA Parameter integer value.

hdaparms_strings

string

A list of names for all the string attributes that specify an HDA Parameter string value.

hdaparms_buttons

string

A list of names for all the integer attributes that specify an HDA Parameter button value.

Note

Buttons are converted into toggles within the HDA Parameters tab. When a toggle is on, it means that the HDA Processor will press the button before cooking.

Parameters

Generation

Asset

Template Node

Selects an instance of a digital asset within the current Houdini session.

All the template node’s non-default parameter values are applied to the HDA Processor’s HDA Parameters.

HDA File

Specifies the path of the HDA to cook.

This path can be absolute or it can be relative to HOUDINI_PATH. For example, if an asset like myasset.hda is in a sub-directory otls in hou.homeHoudiniDirectory(), you can specify that HDA’s path as otls/myasset.hda.

Any HDAs that are added to this node’s File Dependencies are automatically copied to the $PDG_TEMP/otls directory. Any nested HDAs that are required by the HDA being cooked and are not otherwise available in the user’s HOUDINI_PATH also need to be added as a File Dependency.

Operator Type

The operator type to select from within the digital asset.

If you do not specify an operator type, HDA Processor will pick the first type it finds when cooking the asset.

Update HDA Parameters

Updates the parameters listed in the HDA Parameters tab.

Filter HDA Parameters

Opens the Filter HDA Parameters window.

You can use this window to configure which parameters from the asset should be included in the HDA Parameters tab. Any parameters that are included in HDA Parameters will have their values set when the HDA Processor cooks the HDA.

Work Items

Generate When

Determines when this node will generate work items. You should generally leave this set to "Automatic" unless you know the node requires a specific generation mode, or that the work items need to be generated dynamically.

All Upstream Items are Generated

This node will generate work items once all of the input nodes have generated their work items.

All Upstream Items are Cooked

This node will generate work items once all of the input nodes have cooked their work items.

Each Upstream Item is Cooked

This node will generate work items each time a work item in an input node is cooked.

Automatic

The generation mode is selected based on the generation mode of the input nodes. If any of the input nodes are generating work items when their inputs cook, this node will be set to Each Upstream Item is Cooked. Otherwise, it will be set to All Upstream Items are Generated.

Cache Mode

How the processor node handles work items that report expected file results.

Automatic

If the expected result file exists on disk, the work item is marked as cooked without being scheduled. If the file does not exist, the item is scheduled as normal.

Read Files

If the expected result file exists on disk, the work item is marked as cooked without being scheduled. Otherwise the work item is marked as failed.

Write Files

Work items are always scheduled and the excepted result file is ignored, even if it exists on disk.

Batch Mode

Determines how batch jobs are submitted by the node.

Off

No batching is performed. Each work item is submitted as its own individual job.

All Items in One Batch

All work items are submitted as a single batch job and take place in a single Hython session.

This option can significantly increase the speed at which the node finishes cooking, especially if the HDA has a relatively quick cooking time such that the time to start up a Hython process is longer than the time it takes to cook the HDA.

Custom Batch Size

Work items are submitted as batch jobs that are the size specified by the Batch Size parameter.

This option can significantly increase the performance of the node since it allows for various optimizations to be performed. For example, like only having to instantiate the HDA once per batch job.

Batch Size

This parameter is only available when Batch Mode is set to Custom Batch Size.

Specifies the size of each batch. If there is underflow in the last batch, then the size of the last batch is the remaining work items.

Cook Batch When

This parameter is only available when Batch Mode is not set to Off.

Determines when batches of work items are scheduled.

By default, the batch is scheduled once the dependencies for all work items are cooked. However, it is also possible to schedule the batch as soon as the first work item can run.

All Items are Ready

The batch is only scheduled once all dependencies on all work items in the batch are satisfied.

First Item is Ready

The batch is scheduled as soon as the dependencies for its first work item are ready. The HDA Processor wrapper script used by PDG communicates back to PDG as the job is running to check the status of the dependencies before cooking each work item in the batch. This incurs slightly more network overhead, and requires ongoing communication between the job and PDG.

Asset Inputs

Create File Inputs

When on, one or more file nodes are instantiated and wired as inputs to the asset. You can use this to chain multiple HDA Processor nodes together more easily.

When using this parameter, the HDA type must be able to support file inputs. For example, Object-level HDAs would not work with this parameter.

Input File Source

This parameter is only available when Create File Inputs is on.

Determines the source of the input files.

Upstream Output Files

The upstream output files with the tag specified by the File Tag parameter are used as inputs to the HDA.

This option is particularly useful when the number of inputs vary.

Custom File Paths

The files you specify with the Number of Inputs multi-parm are used as inputs to the HDA.

Missing Input

This parameter is only available when Create File Inputs is on.

Determines how HDA Processor behaves when one or more of its inputs are missing.

Raise Error

If an input is missing on an input File node, then the File node will error out and cause the cook to fail.

Ignore

If an input file is missing from disk, the File nodes are set to produce No Geometry and no error is be raised.

File Tag

This parameter is only available when Create File Inputs is on.

Specifies the file tag of the upstream output files to use.

Number of Inputs

This parameter is only available when Input File Source is Custom File Paths.

Specifies the number of input file nodes to create.

Input File #

This parameter is only available when Input File Source is Custom File Paths.

Specifies the path to the input file that will be loaded in by the created File node.

Asset Outputs

HDA Type

Identifies the type of asset you are working with: Object, Sop, Lop, or Cop2.

HDA Processor automatically sets the HDA Type based on the type of HDA you selected and deactivates any Asset Output parameters that are not required for the asset type.

Write Outputs

When on, HDA Processor outputs geometry to disk from the display node in the asset.

If your asset contains a COP network or a ROP network, then it would be useful to turn off this parameter.

Sop Path

This parameter is only available when HDA Type is Auto or Object.

Specifies the operator path or SOP name for the geometry that HDA Processor will output.

We recommend that you use an operator path specified relative to the top-level node of the HDA. For example, if you have an Object-level asset with a geometry node inside it named geometry_to_export, and you want to write out the geometry of that node to a file, then you should specify the SOP path as ./geometry_to_export.

Number of Outputs

Specifies the number of outputs. SOPs can have more than 1 output.

Output File Name #

Specifies the name of the output file.

Output Tag #

Specifies the result tag assigned to the result file.

Debugging

Report Nested Node Errors

When this parameter is enabled, error messages will be retrieved and logged for all nodes that are in an error state. When it is disabled, only the top level node error will be logged.

Save Debug .hip File

When on, a debug .hip file containing the instantiated asset, the file nodes, and all parameter values is written to disk.

This is useful for tracking down problems with the asset, but it also increases the job’s cook time, so it is best used when debugging issues.

Debug HIP File

When Save Debug .hip File is enabled, this parameter specifies the filepath of the HIP file that will be written to disk.

Service

Use HDA Processor Service

When on, HDA Processor cooks using the HDA Processor service.

This parameter requires an active HDA Processor service to be available. For more information on using services, see the PDG Service Manager documentation.

If the node is unable to connect to the service, HDA Processor will cook in regular mode and add a warning to the node.

Service Name

This parameter specifies the name of the HDA Processor service to use.

Schedulers

TOP Scheduler Override

This parameter overrides the TOP scheduler for this node.

Work Item Priority

This parameter determines how the current scheduler prioritizes the work items in this node.

Inherit From Upstream Item

The work items inherit their priority from their parent items. If a work item has no parent, its priority is set to 0.

Custom Expression

The work item priority is set to the value of Priority Expression.

Node Defines Priority

The work item priority is set based on the node’s own internal priority calculations.

This option is only available on the Python Processor TOP, ROP Fetch TOP, and ROP Output TOP nodes. These nodes define their own prioritization schemes that are implemented in their node logic.

Priority Expression

This parameter specifies an expression for work item priority. The expression is evaluated for each work item in the node.

This parameter is only available when Work Item Priority is set to Custom Expression.

HDA Parameters

The parameters in this tab section of the node are automatically filled in based on the parameter interface of the current digital asset. The parameters you set here are copied to work item attributes and applied to the asset when it is cooked.

Files

File Dependencies

A list of files that should be copied to the PDG working directory before the first work item in this node is executed. This can be used to ensure that supporting files like digital assets and custom scripts are available for the work item job.

The specified paths can be absolute or relative to HOUDINI_PATH.

Examples

example_top_hdaprocessor Example for HDA Processor TOP node

This example demonstrates how to use the HDA Processor TOP.

See also

TOP nodes