Run Dynamo

Learn how to execute Dynamo graphs from Revit with BIMO Run Dynamo, saved inputs, outputs, presets, and variants.

Run Dynamo executes a selected Dynamo .dyn graph from Revit in headless automation mode, without opening the Dynamo workspace UI. Before execution, BIMO can apply saved input values; after execution, it can display values from nodes marked as outputs.

Find the command in BIMO > Interact > Run Dynamo.

Warning: a Dynamo graph can change the active Revit model, write files, or call external services. Run Dynamo is not a sandbox and does not provide an automatic rollback. Test an unfamiliar graph on a copy of the model and save your work before launch.

This page describes the built-in BIMO Library command. If you want one .dyn file to appear as its own named toolbar command, see Create commands from Dynamo .dyn.

Availability And Revit Versions

Run Dynamo is present and visible in the standard BIMO Ribbon. Current source files disagree about the minimum working Revit version:

Revit Version

Current Behavior Confirmed By Source

2021–2022

The command's version check cancels execution and asks for Revit 2023 or newer.

2023

Command metadata allows launch, but the registered Dynamo execution service is a NotImplemented stub in this build. Do not rely on Run Dynamo in Revit 2023 until this mismatch is fixed.

2024–2027

The current implementation includes headless Dynamo execution. The graph must still be compatible with the Dynamo version used by that Revit release.

The older Landing page says Revit 2023 and newer. The table above follows the executable implementation rather than that broader claim.

When To Use It

  • Run an occasional .dyn without opening the Dynamo UI.

  • Reuse one graph with different paths or values through presets.

  • Launch common configurations through three toolbar variants.

  • Display a calculation or report from Dynamo output nodes.

  • Run a tested graph that modifies the active Revit model.

Use a generated custom Dynamo command instead when the graph needs its own toolbar name, typed Revit selection inputs, or separate command identity.

Before You Run

  • Close the Dynamo UI. Run Dynamo refuses to start while Dynamo is open in UI mode.

  • Open the Revit document and view expected by the graph.

  • Open and test the graph manually in the Dynamo version used by the current Revit release.

  • Save the .dyn to a stable, accessible location.

  • Install every required Dynamo package and make external files available.

  • Mark reusable nodes as Is Input and result nodes as Is Output in Dynamo.

  • Save or back up the Revit model before running a model-changing graph.

Settings

Setting

Default

What It Does

Script file

Empty

Path to the Dynamo .dyn file. The picker filters for Dynamo files.

Input values

Empty

Optional rows that map a Dynamo node ID to a string value applied before execution.

From Script

Reads saved input nodes from the selected graph and rebuilds the input-value list from their IDs, names, and saved defaults.

Each input row contains:

Field

Meaning

Input ID

Node identifier used to find the Dynamo input.

Input Name

Read-only label copied from the graph for user reference.

Value

String passed to the input node before the graph runs.

Important: the settings form does not verify that the file exists or that every value can be applied. A blank, moved, or incompatible file can therefore reach execution and fail there.

How To Use It

  1. Close Dynamo and open the target Revit document.

  2. Run BIMO > Interact > Run Dynamo.

  3. In Script file, browse to the required .dyn.

  4. If the graph has reusable inputs, click From Script.

  5. Review every imported Input ID, Input Name, and Value.

  6. Confirm the settings to start the graph.

  7. Wait for execution to finish and review the BIMO result or error dialog.

The main Run Dynamo item always opens its settings window before execution. After the graph starts, the current implementation provides no BIMO progress window or cancel button.

Preparing Inputs

From Script reads nodes saved as Dynamo inputs and replaces the current input-value list with values stored in the graph. If you click it again after editing values, review the list because the saved graph defaults are loaded again.

Input assignment has several important rules:

  • BIMO matches an input by node ID, not by the displayed name.

  • Names are labels only and cannot repair a stale or incorrect ID.

  • Values are passed as strings; use the format expected by the target node.

  • For a dropdown, use the exact item name saved in Dynamo.

  • If a node ID is not found or Dynamo rejects a value update, the current service does not warn about that individual input and may run with the value already stored in the graph.

  • The built-in Library command does not open typed Revit pickers for element, face, or edge inputs. Graphs that require a fresh interactive selection are better exposed as generated custom Dynamo commands.

After editing a graph's input nodes, save the .dyn, run From Script again, and verify presets that depend on the old IDs.

Execution And Outputs

BIMO starts Dynamo in headless automation mode, loads the selected graph, applies input rows, and forces one run.

For a successful run:

  • values are collected only from nodes marked Is Output;

  • one output node is shown without a node-name prefix;

  • multiple output nodes are shown with their names;

  • collections and dictionaries are formatted for reading;

  • the result can be copied to the clipboard.

If the graph has no output nodes, or its formatted output is empty, BIMO shows no success dialog. This does not prove that the graph did not run or that it made no model changes.

For errors:

  • Dynamo nodes in the Error state produce an error dialog;

  • exception details can be expanded and copied;

  • ordinary Dynamo warnings are not all treated as execution failures;

  • error detection happens after the graph has run, so it does not guarantee that earlier model changes were rolled back.

Presets And Variants

Run Dynamo supports presets for saving:

  • the .dyn path;

  • the imported input IDs and names;

  • input values.

A preset can be assigned to Variant #1, Variant #2, or Variant #3. The main item opens settings; a variant uses its assigned preset and can skip the dialog when the form is considered valid.

Warning: file-path validation does not check whether the file still exists. A variant can therefore try to run a moved or deleted graph without first reopening the settings window.

Each variant is a separate Revit Ribbon command item, so you can assign it a Revit Keyboard Shortcut. A shortcut starts the assigned preset immediately: verify the active document, graph path, and model-changing inputs before using it.

After a variant run, BIMO restores the previously active preset. See Presets and Variants.

Examples

Run A Read-Only Model Check

Prepare a graph that reads the active document and marks a summary node as Is Output. Import its inputs, save a preset, and run it from the target project. Review or copy the result dialog.

Fill Parameters With Two Configurations

Save separate presets for test and production parameter values. Verify both on a copy before assigning the production preset to a variant.

Export Data

Use an input node for the export path and mark a status node as Is Output. Confirm that the destination exists and that the graph can overwrite or create files as intended.

Model And System Impact

  • The graph executes with access to the active Revit/Dynamo environment.

  • Model changes, file access, network calls, and package behavior are determined by the graph and its nodes.

  • BIMO does not preview changes or wrap the full graph in a guaranteed rollback.

  • A graph can make partial changes before an error is reported.

  • Undo behavior depends on Dynamo and the nodes used; do not assume the whole run is one reversible action.

  • There is no BIMO cancellation after headless execution begins.

Errors And Troubleshooting

Problem

What To Check

Dynamo is currently open with UI

Close the Dynamo window completely, then run the command again.

Unsupported Revit version warning

Revit 2021–2022 are blocked by command metadata. Use a confirmed supported build.

Run Dynamo fails in Revit 2023

Current metadata and implementation disagree; the Revit 2023 execution service is not implemented.

Script file cannot be opened

Check that the path exists, points to a .dyn, and is accessible to the current Windows user.

From Script returns no inputs

Save the graph after marking nodes as inputs, verify the .dyn opens, and check whether its input structure is recognized.

An edited input has no effect

The node ID may have changed or Dynamo may have rejected the string value. Run From Script again and compare with the graph.

A dropdown uses the wrong option

Enter the exact Dynamo item name, then test the graph manually.

Graph works in Dynamo UI but fails here

Remove UI-dependent interactions, verify packages, and test the graph in automatic/headless-compatible form.

Missing-node or package error

Install the same packages and custom nodes required by the graph for this Revit/Dynamo version.

No result dialog appears

Add an Is Output node with a non-empty value. Remember that the graph may already have run.

The graph reports an error after changing the model

Inspect the model immediately. Error reporting does not guarantee rollback of earlier changes.

Known Limitations

  • Confirmed execution implementation currently starts at Revit 2024 despite metadata that says 2023.

  • Accepts a single graph file per preset and does not validate the file before execution.

  • Runs headlessly and cannot run while the Dynamo UI is open.

  • Has no BIMO progress display or execution cancellation.

  • Built-in input rows are string-based and do not provide typed Revit object pickers.

  • Failed input updates are not reported individually.

  • Not every warning or unsupported node is surfaced as a blocking error.

  • Shows values only from Dynamo nodes marked as outputs.

  • Does not guarantee rollback after a graph error.

An error has occurred. This app may no longer respond until reloaded. Reload 🗙