pyRevit
Free, open-source Revit extension (Rapid Application Development environment) that lets teams write and distribute custom Python/C# tools directly inside Revit, created by Ehsan Iran-Nejad and now community-maintained.
pyRevit is a free, open-source Rapid Application Development (RAD) environment for Autodesk Revit -- not a standalone product, but a plugin that runs inside an existing Revit installation and turns it into a platform for writing, distributing, and running custom automation tools. It was started as a personal passion project by architect-turned-developer Ehsan Iran-Nejad, who built it specifically to make Revit "less dumb" for his own daily use, before sharing it publicly and watching it grow into one of the most widely adopted community tools in the Revit ecosystem.
The core idea is letting any Revit user write their own custom tools using Python (both IronPython and CPython are supported) or C#/VB.Net, directly against Revit's own API, without needing to set up a full separate Visual Studio add-in development environment first. That lower barrier to entry is precisely why pyRevit has become the standard on-ramp for BIM managers and technically-minded architects who want to automate a specific repetitive task but aren't full-time software developers.
Beyond the scripting environment itself, pyRevit ships with an extensive built-in tool library covering common needs out of the box -- enhanced selection methods, model organization and cleanup utilities, element information queries, and other productivity tools that a team can start using immediately without writing a single line of code. A CLI utility handles configuration and deployment, letting a BIM manager package and push a firm's custom tools out to every user's Revit installation consistently, rather than manually installing scripts on each machine.
pyRevit also includes an optional telemetry server, letting firms monitor how their custom tools are actually being used across a team -- which tools get run, how often, by whom -- turning tool adoption from a guess into something a BIM manager can actually measure and act on.
Because pyRevit runs as an extension inside Revit rather than a separate application, it inherits Revit's own file format, model, and session entirely -- there's no separate license server, no separate file format to manage, and no data-exchange step between pyRevit and the model it's operating on. That tight integration is part of why it's spread so widely purely through word of mouth inside the Revit community rather than through a traditional sales or marketing effort: a BIM manager at one firm builds a useful internal tool, shares it with a peer at another firm, and the platform's reach grows organically from genuinely useful shared tooling rather than paid promotion.
Because pyRevit is entirely free and GPL v3 licensed, with development now maintained by a community of collaborators (pyrevitlabs on GitHub) rather than a single commercial vendor, it carries none of the typical per-seat licensing cost that comes with most Revit add-ins in this catalog like Ideate BIMLink or AVAIL. That also means there's no vendor support contract or SLA behind it -- support comes from the GitHub repository, issue tracker, and a broader community of contributors and downstream extension authors (community-built extensions like Rev.It build directly on top of the pyRevit platform).
Editor’s takeBIM•STACK editor's take: pyRevit earns a genuinely unusual place in this catalog as a plugin that isn't really one specific tool so much as a foundation other tools get built on top of -- the honest comparison isn't "pyRevit vs. Ideate BIMLink" so much as "pyRevit is the platform many teams' own internal Ideate-BIMLink-style tools get built on." For firms with even one person willing to learn basic Python scripting, that's an enormously capable, zero-cost lever; for firms with no internal scripting capacity at all, the built-in tool library alone is still worth adopting, but the platform's deeper value stays mostly locked behind a skill most architecture firms don't have in-house by default.
pyRevit has two distinct learning curves, similar in spirit to Rhino/Grasshopper's split between core modeling and visual scripting. Using the built-in tool library -- selection tools, model cleanup utilities, QA/QC checks -- requires essentially no learning curve at all: install the extension, and the tools appear directly in the Revit ribbon, ready to use like any other native Revit command.
Writing custom tools is a genuinely different undertaking, requiring real comfort with Python (or C#/VB.Net) and enough familiarity with Revit's own API to know what to automate and how. That's a real, non-trivial skill investment -- but because pyRevit specifically lowers the setup overhead versus a traditional Visual Studio-based Revit add-in project, BIM managers and technically-curious architects who already have some scripting exposure (even from Dynamo) tend to find pyRevit a meaningfully faster path to a working custom tool than starting a full add-in project from scratch.
- BIM managers wanting to automate firm-specific repetitive tasksCustom Python/C# tools can be built and deployed team-wide via the CLI, tailored to a firm's exact workflow.
- Firms wanting productivity tools with zero licensing costThe built-in tool library alone delivers real value with no coding required and no per-seat fee.
- Technically-curious architects and Revit power usersA genuinely accessible on-ramp into Revit API scripting for people without a full software-development background.
- Firms already comfortable with Dynamo wanting a lower-overhead scripting optionpyRevit's Python-first approach appeals to teams wanting text-based scripting alongside or instead of Dynamo's visual programming.
- You need vendor support and an SLA behind a Revit add-inIdeate BIMLink or AVAIL are commercially supported, paid alternatives with a vendor support contract.
- You want visual, node-based scripting instead of writing codeDynamo (bundled with Revit) offers a visual-programming alternative to pyRevit's text-based Python/C# approach.
- You have no internal scripting capacity and need a ready-made solutionA purpose-built commercial add-in solving your specific task directly may deliver more value than a general automation platform.
Is pyRevit really free?
Yes -- pyRevit is free and open source under the GPL v3 license, with no per-seat licensing cost.
Do I need to know how to code to use pyRevit?
No for the built-in tool library, which works immediately with no coding required. Yes, if you want to write your own custom tools, which requires Python or C#/VB.Net.
Who created pyRevit?
Ehsan Iran-Nejad, an architect who built it originally for his own use before sharing it publicly; it's now maintained by a community of collaborators (pyrevitlabs).
Does pyRevit work with Dynamo or Grasshopper?
pyRevit includes tools for distributing Dynamo and Grasshopper scripts to teams alongside its own Python/C# tools, using a unified deployment interface.
Is there support if something breaks?
There's no formal vendor support contract -- support comes from the GitHub repository, issue tracker, and the broader open-source community.