Events Architecture

The core design in this fork of Shotgun Houdini engine are the use of Houdini Events to setup and tear-down Shotgun parameters.

  1. Houdini triggers the Python scripts in houdini/scripts/*.py.

  2. Calls relevant methods in NodeHandlerBase

  3. Methods are extended by sub-class to handle more and more specific setups

This allows for any node types to have Shotgun integration, through registering a node handler hook sub-class for that specific node type.

These Houdini Events have been available since at least Houdini 16.0.

Entry points

These methods are the main triggers to creating Shotgun parameters or reloading them upon opening an existing scene respectively:

The on_loaded() is more involved as it handles:

  • Updating Shotgun parameters upon engine version upgrade

  • When the node is using Shotgun and currently in a GUI session, re-calculate file path and register for individual node events callbacks

The update feature is also very powerful and opens up possibilities for new/existing node types to be integrated on a per-parameter basis, per Houdini version as necessary.

ImportNodeHandler.on_loaded and any hooks sub-classing it will, in addition, re-calculate the file path when not currently in a GUI session.

This enables the possibility to keep re-running a template Houdini scene on the farm that can pull in the latest input file versions upon render/process e.g. scheduled, daily, asset turntable checkers.