Article · Dynamo & pyRevit

Dynamo vs pyRevit vs C# add-in: which one for which job

All three can automate the same task in Autodesk® Revit® software. The difference is who builds it, who runs it, who fixes it next year, and how well it survives the next Revit upgrade.

Pick the wrong tool and you get one of two problems. Either a graph that grew to 400 nodes and nobody dares to open, or a $10,000 add-in for a task someone runs twice a year. This guide is how we choose on a scoping call.

The short answer

  • Dynamo for visual scripts your team may want to edit, run now and then.
  • pyRevit for a quick company toolbar of small tools.
  • A C# add-in for tools many people use daily, that need a real window or speed, or that must handle Revit upgrades cleanly.
  • Often the answer is a mix: prove the logic with a small script, then turn it into an add-in once people rely on it.

Side by side

CompareDynamopyRevitC# add-in
What it isVisual graphs of connected nodes, with Python nodes for custom logicPython or C# scripts that appear as buttons on a Revit tabCompiled code on the Revit API, loaded when Revit starts
Best forVisual scripts your team may want to editA quick firm toolbar of small toolsTools many people use every day
Who can edit itStaff who know DynamoStaff who know some PythonA C# developer
Speed on big modelsOKGoodBest
Custom interfaceBasicBasic to mediumFull
How it reaches usersGraph files run from Dynamo PlayerpyRevit plus your extension, from GitAn installer per Revit version
Upgrade workTest each year; Dynamo 4.0 changed the Python engineTest each year, especially on .NET 10 versionsRebuilt and tested per version; most predictable
LicenseOpen source (Apache-2.0)Open source (GPL-3.0)Custom work assigned to you once paid in full
Where to start with usPilot $750–$1,500Pilot $750–$1,500From $4,000

When each one fits

Dynamo

Dynamo is open source under Apache-2.0 (Dynamo on GitHub) and works inside Revit. It suits logic you can draw: take a list, filter it, place or change elements. Packaged for Dynamo Player, a graph gets a simple window with a few inputs, so people who don't code can run it.

Watch for: big graphs become hard to follow, Python nodes depend on the Python engine (more on that below), and very large models can be slow.

pyRevit

pyRevit is an open-source environment for building Revit tools in Python or C#, licensed GPL-3.0 (pyRevit on GitHub). It's the fastest way to give a team a company tab with small tools: renumbering, view and sheet cleanup, parameter fills, naming checks. Your extension lives in a Git repository, so updates reach everyone.

Watch for: every machine needs pyRevit installed and kept current, your IT team has to be comfortable with that, and your legal team should be comfortable with the license.

C# add-in

A compiled add-in uses the full Revit API, can have a proper window with tables, filters and previews, and runs fastest on large workshared models. It ships as an installer per Revit version that IT can roll out like any other software.

Watch for: more time and cost up front, a C# developer to change it, and a separate build for each .NET runtime your Revit versions use.

Examples from data center work

Illustrative examples of how we'd choose, not client projects.

TaskOur pickWhy
Place CDUs for one data hall from the engineer's listDynamo, run from Dynamo PlayerVisual, run a few times per project, and a BIM coordinator can adjust the inputs
Renumber racks to DH1-A-03 (hall, row, position) after each layout change, for one teampyRevit buttonSmall, frequent and quick to change when the scheme changes
Check every rack's A and B feeds, such as RPP-1A-01 and RPP-1B-01, against the one-line list every weekC# add-inMany people use it, it needs a results window, and it must be fast on large models
Create sheets for every data hall from an Excel listDynamo pilot first, C# add-in if it becomes a daily toolProve the naming rules cheaply, then harden it
Copy a prototype across a campus and rebuild IDs (B2-DH1-A-01), sheets and schedules per buildingC# add-in, or a cloud batch jobRuns on many models; a batch job avoids opening each one by hand
Check every cloud model against the owner's standard each nightDesign Automation for RevitRuns in the cloud with no desktop open; usage is billed by Autodesk

Placement and checking tools apply the counts, capacities, clearances and rules your engineer of record provides. Their outputs are drafting and data aids, not engineering calculations, code-compliance reviews or sealed documents.

A decision checklist

  • How many people will run it? One or two: Dynamo or pyRevit. A whole department: a C# add-in.
  • How often? Once per project: Dynamo. Every day: an add-in.
  • Does it need a real window, with tables, filters or a preview before bulk edits? Lean toward C#. pyRevit can handle simple forms.
  • Who maintains it after handover? Dynamo users in-house: Dynamo. Someone who knows some Python: pyRevit. A C# developer or a retainer: an add-in.
  • How big are the models? Large workshared data center models favor compiled code.
  • How many Revit versions does your office run? Several at once: an add-in with an installer per version is the most predictable.
  • Will IT allow pyRevit on every machine, and is legal comfortable with GPL-3.0? If not: Dynamo or C#.
  • Must it run across many models without a desktop? Design Automation for Revit.
  • Is the logic still uncertain? Start with a Dynamo or pyRevit pilot and promote it once it's proven.

Upgrade considerations

Dynamo's new Python engine

Dynamo 4.0 made PythonNet3 the default Python engine, replacing CPython3 (Dynamo release notes). Graphs written for the IronPython2 or CPython3 engines may need changes: Excel and COM interop, WPF, collections and enums behave differently (DynamoBIM). Before you upgrade, list every graph with a Python node and test each one on the new engine.

Revit .NET changes

Revit 2025 moved add-ins to .NET 8. Autodesk says Revit 2025.5, 2026.5 and later use .NET 10, and Revit 2027 runs on .NET 10 with all-user add-ins installed to Program Files. That affects C# add-ins most directly, but compiled Dynamo packages and pyRevit run on the same runtime. Details and a checklist: .NET 8 support ends November 2026.

pyRevit on .NET 10

The release notes for pyRevit 7.0.0, published October 6, 2026, don't state .NET 10 support (pyRevit releases). Test the current pyRevit release on your exact Revit version before you roll a toolbar out on 2025.5, 2026.5 or 2027. If it isn't ready, a C# add-in is the safer choice for those versions.

Cloud batch runs

Dynamo Switchboard, which runs graphs in the cloud, is an early-access beta that works only in Dynamo 3.6 with Revit 2026 (DynamoBIM). It's worth watching, but not for production yet. For batch work, we lead with Design Automation for Revit, part of the Autodesk Platform Services (APS) Automation API. Since December 8, 2025, that usage is metered, with a free monthly tier and paid use by Autodesk Flex tokens billed to your account (APS). We estimate usage before we build.

Licenses and software

  • pyRevit (GPL-3.0): the license mainly affects how pyRevit itself is redistributed. Keep your firm's extension in its own repository, and have your legal team review it. We list every open-source part in your handover. This isn't legal advice.
  • Custom work: add-ins, scripts and content made only for you are assigned to you in writing once paid in full. Our reusable components come with a permanent, firm-wide, royalty-free license.
  • Revit edition: all three need full Autodesk Revit or the AEC Collection. Revit LT doesn't run add-ins or Dynamo.

Sources

Free 30-minute scoping call

Not sure which one your task needs?

Tell us the task, how often it happens and who does it, and we'll recommend Dynamo, pyRevit or a C# add-in. Within 2 business days of the call you get a written scope with a fixed price for a pilot or first phase, and an estimate range for anything bigger.