Houdini 20.0 Executing tasks with PDG/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 parameters with Python expressions. You can use pdg.workItem() to get the current work item object in a Python expression, and use it to access other methods and properties from the pdg.WorkItem class. For example, the Python expressions pdg.workItem().floatAttribValue("foo", 1) and pdg.WorkItem()["foo"][1] are equivalent to the HScript expression @foo.1.








  • pdg.AttribError

    Generic exception raised when an error occurs when accessing work item attributes

  • pdg.CookError

    Generic exception raised when an error running the graph.

  • pdg.ServiceError

    Generic exception raised when an error occurs during a PDG service manager operation


  • pdg.EvaluationContext

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







Executing tasks with PDG/TOPs


Beginner Tutorials

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.

  • PDG Path Map

    The PDG Path Map manages the mapping of paths between file systems.

  • Feedback loops

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

  • Service Blocks

    Services blocks let you define a section of work items that should run using a shared Service process

  • PDG Services

    PDG services manages pools of persistent Houdini sessions that can be used to reduce work item cooking time.

  • Integrating PDG with render farm schedulers

    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.

  • Event handling

    You can register a Python function to handle events from a PDG node or graph

  • Tips and tricks

    Useful general information and best practices for working with TOPs.

  • Troubleshooting PDG scheduler issues on the farm

    Useful information to help you troubleshoot scheduling PDG work items on the farm.

  • PilotPDG

    Standalone application or limited license for working with PDG-specific workflows.


  • 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.

  • Processor Node Callbacks

    Processor nodes generate work items that can be executed by a scheduler

  • Partitioner Node Callbacks

    Partitioner nodes group multiple upstream work items into single partitions.

  • Scheduler Node Callbacks

    Scheduler nodes execute work items

  • Custom File Tags and Handlers

    PDG uses file tags to determine the type of an output file.

  • Python API

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

  • Job API

    Python API used by job scripts.

  • Utility API

    The classes and functions in the Python pdgutils package are intended for use both in PDG nodes and scripts as well as out-of-process job scripts.