Houdini 17.5 Building procedural dependency graphs (PDG) with TOPs

pdg package

The classes and functions in the Python pdg package for working with dependency graphs.

On this page

Package-level functions

The following top-level attribute functions are designed to be used in Python expressions. You can use pdg.workItem() to get the current work item object in a Python expression. The top-level function floatData(work_item, "foo", 0) is equivalent to work_item.data.floatData("foo", 0), which is equivalent to the HScript expression @foo.





Expression functions






  • pdg.CookError

    Generic exception raised when an error running the graph.


  • pdg.EvaluationContext

    A module with global functions that operate on the thread-local evaluation context



  • pdg.Scheduler

    A scheduler object that has its type implemented in Python.


  • pdg.language

    The enumeration of languages used to define custom PDG types

  • pdg.registeredType

    The type of object when registering a custom class with PDG

  • pdg.result

    The return type of a node callback implementation

  • pdg.scheduleResult

    The return type of a scheduler’s onScheduler callback implementation


Building procedural dependency graphs (PDG) with TOPs


Next steps

  • Running external programs

    How to wrap external functionality in a TOP node.

  • File tags

    Work items track the "results" created by their work. Each result is tagged with a type.

  • Feedback loops

    You can use for-each blocks to process looping, sequential chains of operations on work items.

  • Command servers

    Command blocks let you start up remote processes (such as Houdini or Maya instances), send the server commands, and shut down the server.

  • Integrating PDG and render farm software

    How to use different schedulers to schedule and execute work.

  • Visualizing work item performance

    How to visualize the relative cook times (or file output sizes) of work items in the network.

  • Tips and tricks

    Useful general information and best practices for working with TOPs.


  • All TOPs nodes

    TOP nodes define a workflow where data is fed into the network, turned into "work items" and manipulated by different nodes. Many nodes represent external processes that can be run on the local machine or a server farm.

  • Python API

    The classes and functions in the Python pdg package for working with dependency graphs.