build_network
Construct an entire Houdini node network atomically in one call, validating every node and parameter against the running session before creation.
Instructions
Build a whole node network in ONE atomic call — the PREFERRED way to construct anything of 3+ nodes (massively faster than node-by-node calls, and either the whole network builds or nothing does).
Every node type, parameter name, and input reference is validated against the running Houdini BEFORE anything is created; errors come back with did-you-mean suggestions. Use dry_run=True to prove a plan when using unfamiliar node types. The result includes cooked evidence: per-node errors and the display node's geometry counts — read them instead of assuming success.
Each node spec dict supports: type (required), name, parms (lists set whole parm tuples), inputs (list of source names — earlier spec names, existing children, or absolute paths; or dicts with index or input_name / source / source_output, where input_name is a connector name or label as get_node_card lists them; or {"indirect_input": n} to wire from connector n of the parent subnet itself), flags (display/render/bypass/ template), color [r,g,b], comment.
Args: parent_path: Network to build inside (e.g. "/obj/geo1"). nodes: Ordered node specs (see above). dry_run: Validate the whole spec without creating anything. layout: Also lay out the parent network afterwards (default True; honoured only when auto-layout is enabled). The nodes this call creates are always positioned, each relative to its inputs, regardless of this flag; nodes that already existed keep their exact positions, so building into a hand-arranged network is safe.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | ||
| layout | No | ||
| dry_run | No | ||
| parent_path | Yes |