A collection of 400+ custom nodes for the Dynamo visual programming environment
Switch branches/tags
Nothing to show
Clone or download



Clockwork is a collection of custom nodes for the Dynamo visual programming environment. It contains many Revit-related nodes, but also lots of nodes for various other purposes such as list management, mathematical operations, string operations, geometric operations (mainly bounding boxes, meshes, planes, points, surfaces, UVs and vectors) and paneling. Currently it consists of some 400+ nodes of which a large portion was previously published in a number of separate packages. Keeping all those nodes in a single package has made updates and maintenance much easier and has greatly reduced package dependencies. I had never set out to build so many custom nodes – somehow it just happened.

If you like the package, please vote in support of it on Dynamo's package manager.


Installation is simple - just use Dynamo's built-in package manager and search for Clockwork. If you have used some of my previous 0.6.3 packages, please remember to uninstall all of them (find a complete list here). Also, always make sure you have the correct version of Clockwork installed that corresponds to your installed version of Dynamo.


The different versions are available as separate packages on the package manager. (So far each new major Dynamo version has introduced changes that prevented downward - and sometimes even upward - compatibility of nodes, hence the separate packages...)

Note that Clockwork version numbers follow the Dynamo version the package is currently maintained in, e.g. Clockwork for Dynamo 1.x v1.0.something is maintained in Dynamo 1.0.0 while Clockwork for Dynamo 1.x v1.1.something would be maintained in Dynamo 1.1.0...

Renamed, recategorized and deprecated nodes

During migration from one Dynamo version to the next, I regularly recategorize, relabel and rename a lot of nodes. These changes are documented in an excel sheet that contains a list of all nodes within the package.


Since Dynamo's package manager currently does not (yet) have an update notification infrastructure in place, you may want to follow me on twitter for update notifications.

Known Issues

On this repository you can find a list of known issues and planned enhancements. Should you find that one of the nodes in this package does not work (or could work better with improved functionality), please let me know by creating a new issue in that section. Also, if you happen to come across a built-in node that does exactly the same as one of the Clockwork nodes, please let me know so I can remove that particular node from the package - I am not trying to duplicate existing functionality.

Material on this repository

This repository contains the following:

  • Directory maintenance contains scripts that I use to keep Clockwork in shape, e.g. for creating the node documentation on the wiki, extracting Python scripts from custom nodes etc.
  • Directory nodes is the actual repository of the custom nodes that I use for versioning nodes in between publishing package updates to Dynamo's package manager - which means you will sometimes find nodes in here that haven't made it onto the package manager yet.
  • Directory package_samples contains simple examples for most of the nodes in Clockwork. I use them for occasional testing, but they should also help explain how to use each node. All samples are available for the current versions - sample support for older versions is patchy at best.
  • Directory workflow_samples contains some old sample workflows that I have published online somewhere before. I have also included some of the examples that I used to use for teaching Dynamo as well as some material presented at conferences. Almost all of these are available for Dynamo 0.7.x (as well as 0.6.3). They will not be updated to a current version.

Help to improve Clockwork

If you're interested in contributing to Clockwork, just submit a pull request. It's not that hard - some folks have already done it.