PYREVIT 7.0 · FREE & OPEN-SOURCE

pyRevit: Automate Autodesk Revit with Python.

Automate Autodesk Revit with pyRevit 7.0. Run Python scripts, eliminate repetitive tasks, manage views and sheets, and create custom tools directly inside Revit. Simplify BIM workflows, save valuable time, and boost productivity with flexible Revit automation.

pyRevit 7.0.0 · Signed Windows download · All users · Administrator permission required

Open Source Inside Revit Python-Powered
pyRevit workflowIllustrative interface concept
AUTOMATION
Make repetitive tasks easier
Select
Elements
Manage
Sheets
Edit
Parameters
example_command.pyPython Script
from pyrevit import revit

doc = revit.doc
print(doc.Title)
Revit ModelPython ScriptReusable Tool
Visual concept showing a typical automation flow, not an actual Revit screenshot.
BUILT FOR THE REVIT WORKSPACE
01Model operationsStructured Revit data
02Python automationRepeatable commands
03Team toolkitsOrganized extensions

A Faster Way to Turn Revit Tasks Into Repeatable Workflows

Selecting Revit elements, changing parameters, organizing views, and preparing sheets are repeatable tasks. pyRevit scripts can bring these operations into consistent commands, reducing manual steps in model and documentation workflows.

pyRevit provides a practical automation layer for turning those repeated operations into reusable commands. The value is not simply reducing clicks — good automation creates a repeatable workflow with defined inputs, predictable operations, and consistent results.

1

Repetitive Operations Become Reusable Commands

A repetitive Revit task is a good candidate for automation when it follows a recognizable sequence. A Python script can provide a reusable command instead of manually performing the same operation across multiple views or elements.

2

Automation Starts With Tasks You Already Repeat

The best starting point is usually a task that occurs frequently and follows clear rules. BIM managers and coordinators can identify operations that consume time without requiring creative decision-making.

3

Small Utilities Can Evolve Into Complete Workflows

A small script that solves one specific problem can become part of a broader extension. Individual commands can be grouped into panels, supported by reusable libraries, and distributed as a team-oriented toolkit.

Inside the pyRevit Environment

Create and run Python-powered Revit tools inside the application. The pyRevit environment combines ribbon commands, scripting libraries, and extension support for custom model workflows.

A Development Layer Within Revit

The pyRevit environment sits alongside Revit and provides a practical bridge between the application's user interface and programmatic automation. Users interact with commands through the Revit workspace while developers work with Python and the Revit API.

WORKFLOW MODELConcept
{ }Python scriptDefine the task
pypyRevitRun the command
RRevit APIAccess model data

The pyRevit Tab and Command Interface

pyRevit organizes tools through a ribbon-oriented structure involving tabs, panels, and commands. That organization makes custom automation easier to discover and separates different tool groups according to their purpose.

Python Libraries Connecting Scripts With Revit

pyRevit's libraries help scripts communicate with Revit functionality without requiring every developer to construct the same supporting logic from scratch. This provides a foundation for working with elements, parameters, documents, selections, and views.

Revit Productivity Without Leaving the Modeling Workspace

Access pyRevit commands directly from the Autodesk Revit ribbon. Work with model elements, parameters, views, and sheets without switching to a separate application.

Model and View Utilities

Revit projects contain large numbers of elements, views, sheets, parameters, and related data. Custom automation can provide focused utilities for operations involving model elements, views, project information, or other repetitive procedures.

Selection and Parameter Operations

Selection and parameter editing are common areas for automation because they often involve repeated actions across multiple objects. A script can process selected elements, inspect their properties, apply defined changes, or generate useful information.

Documentation-Focused Productivity

Views, sheets, annotations, schedules, parameters, and project information can involve repetitive procedures that follow recognizable rules. pyRevit tools can help organize these workflows and reduce unnecessary manual operations while keeping the user inside Revit.

From Simple Commands to Full Workflow Automation

Start with a single Revit task, then combine tested Python commands into multi-step workflows. Complexity can grow from element selection to documented processes driven by model data and user inputs.

1

Single-Action Scripts

One clearly defined operation — easier to test, understand, and maintain.

2

Reusable Script

Turn the action into a command others can run from the Revit interface.

3

Multi-Step Command

Combine several operations into a single coordinated workflow.

4

Standardized Workflow

Project-specific logic reflecting internal BIM standards and rules.

select_walls.py
# Select all walls and read their length
from pyrevit import script
from Autodesk.Revit.DB import *

doc = __revit__.ActiveUIDocument.Document
walls = FilteredElementCollector(doc)
    .OfCategory(BuiltInCategory.OST_Walls)
    .WhereElementIsNotElementType()
    .ToElements()

for wall in walls:
  length = wall.get_Parameter(
    BuiltInParameter.WALL_USER_LENGTH)
  print("{}: {}".format(
    wall.Id, length.AsDouble()))

Python Meets the Revit API

Python scripts access Autodesk Revit model data through the Revit API. In pyRevit, developers can inspect elements, read parameters, create commands, and work with document transactions where changes are required.

Revit Elements and Parameters

Revit models contain structured objects such as walls, doors, views, rooms, sheets, families, and systems. Parameters provide structured data that scripts can read, evaluate, and in appropriate situations modify.

Transactions and Document Operations

Revit controls changes to model data through transactions. Scripts that modify a document need to operate within the application's rules for making changes — giving developers a foundation for building reliable automation.

Choosing the Right Python Runtime

Runtime compatibility can influence whether a script executes correctly. Developers should consider the runtime supported by their pyRevit environment, the APIs being used, and compatibility with the relevant Revit version before distributing tools.

Extensions That Shape a Custom Revit Toolkit

Package pyRevit scripts into extensions that organize tabs, panels, commands, and shared libraries. A clear structure helps BIM teams distribute related tools and maintain them across projects.

Core Concept

UI Extensions and Library Extensions

A UI-oriented extension can provide visible tools that users access from the Revit interface, while library-oriented components can provide reusable code and supporting functionality. Separating these responsibilities makes larger automation projects easier to organize and maintain.

Extensions can expand the available command set without requiring every automation feature to be built into a single project. Users can organize extensions according to project requirements, discipline, company workflows, or specific categories of automation.

▦ pyRevit Extension
TabPanelCommand
Structured tools · Reusable scripts
Install

Installing Additional Tool Collections

Extensions can expand the available command set without requiring every feature to be built into a single project. Organize by discipline, company workflows, or automation category.

Organize

Organizing Tools for Different Disciplines

Architecture, structural engineering, MEP, BIM coordination, and documentation teams may have very different automation requirements. A well-organized extension exposes relevant commands to the appropriate users.

Scripts, Commands, Bundles and Panels Explained

Build a pyRevit command by organizing an extension, tab, panel, and script bundle. The hierarchy determines how custom Python tools appear in the Autodesk Revit ribbon.

Extension
Tab
Panel
Command
Script

Anatomy of a Command Bundle

A command bundle represents the organized package behind a pyRevit command. A bundle can contain the script, metadata, icons, configuration, or supporting resources.

Buttons, Panels and Tabs

Tabs provide a high-level area for related functionality, panels group related commands, and buttons provide the interface through which users launch individual tools.

Configuration Files and Supporting Libraries

Configuration files and reusable libraries can separate settings, shared functions, and workflow-specific logic, reducing duplication and making larger projects easier to maintain.

Automation Across Architecture, Structure and MEP

Architectural, structural, and MEP teams can build pyRevit commands for repeated model checks, parameter updates, documentation procedures, and discipline-specific BIM standards.

Architectural Production Workflows

Architectural teams can identify repetitive tasks involving model elements, views, documentation, project data, and production procedures. Automation can be designed around defined office standards and project workflows.

Structural Model Operations

Structural workflows often involve structured model data, repetitive element operations, documentation, and model checking. Custom scripts can process selected elements according to defined rules.

MEP Coordination and Repetitive Tasks

MEP projects contain complex systems and large amounts of structured information. Automation can support repetitive model operations, data handling, and coordination-related procedures where the workflow can be expressed through defined rules.

Build Tools Around Your Team's BIM Standards

Turn documented BIM rules into repeatable pyRevit commands. Teams can automate checks and clearly defined procedures for naming, parameters, views, sheets, and project documentation.

Standardizing Repetitive Procedures

A documented BIM procedure can be transformed into a repeatable command when its rules are sufficiently clear. That creates an opportunity to move part of the standard from written guidance into practical tooling.

Turning Internal Rules Into Commands

Office standards often describe how certain information should be created, organized, checked, or presented. Custom pyRevit tools can translate appropriate rule-based procedures into commands that users can execute directly.

Shared Tools for Consistent Project Delivery

Shared automation gives teams a common set of tools instead of relying entirely on individual scripts. Centralized tool collections make internal workflows easier to distribute, document, and maintain across projects.

The Developer Side of pyRevit

Write custom Python commands using the Revit API and pyRevit libraries. Developers can package scripts as extensions, add forms, and use supported event hooks for workflow-specific automation.

Step 1

Creating a First Custom Command

A useful first command should solve a specific problem rather than attempt to automate an entire workflow immediately.

Identify → Define inputs → Access Revit data → Perform operation → Test → Expose command
Step 2

Working With pyRevit Libraries

Reusable libraries allow common logic to be shared between different scripts. Developers can organize reusable functionality and build multiple commands around the same underlying components.

Step 3

Hooks and Event-Driven Automation

Hooks provide another automation model beyond manually launching a button. They allow scripts to respond to defined events or stages in the Revit/pyRevit environment.

Reference

Guide and Documentation

For detailed development instructions, extension structure references, and API usage patterns, the pyRevit guide provides comprehensive walkthroughs.

Visit the pyRevit Guide →

Install pyRevit 7 and Start Automating Revit

Install pyRevit 7.0 on a compatible Windows computer, open Autodesk Revit 2021–2027, and explore Python-powered tools in the ribbon.

1

Install pyRevit 7.0

Download the signed Windows setup for installation across all user accounts. Windows will request administrator permission. For installation under your account only, select the separate per-user download on the Download Page.

2

Explore Existing Tools

Open a compatible Revit 2021–2027 installation after setup. Explore the pyRevit ribbon and built-in commands; pyRevit 7 also includes an interactive Python Shell.

3

Identify a Repetitive Task

Find a workflow you perform frequently — selecting elements, editing parameters, or organizing views. That becomes your first automation candidate.

4

Build Your First Script

Use pyRevit's script editor to write a Python command. Test it against a real project, then expose it as a button on your Revit ribbon.

Managing Configuration and Deployment at Scale

Deploy pyRevit scripts and extensions consistently across a team with documented configuration, version management, and testing. Centralized maintenance helps reduce mismatched workstations and outdated commands.

pyRevit CLI Workflows

The command-line interface provides advanced management capabilities for configuration, extension management, diagnostics, script execution, and administrative tasks.

Shared Configuration and Extensions

Teams may need consistent paths, extension sources, settings, and tool collections. A structured configuration approach makes it easier to reproduce an expected environment across multiple workstations.

Supporting Larger Revit Teams

Team-scale automation requires documentation, version management, deployment processes, compatibility planning, testing, and ongoing maintenance as part of the automation lifecycle.

Open-Source, Community-Driven, Actively Maintained

pyRevit is developed as an open-source project, meaning its growth is shaped by the AEC professionals and developers who use it every day. Contributions, feedback, and shared extensions all strengthen the ecosystem.

Built by Revit Users, for Revit Users

The pyRevit project benefits from real-world testing across architecture, engineering, and construction firms. When a BIM team builds an automation solution that works in production, that experience feeds back into the platform — whether through shared extensions, library improvements, or documentation contributions.

Because the codebase is open, organizations can inspect how tools work, adapt them to internal requirements, and contribute fixes or features that benefit the broader community. This transparency builds trust and ensures the platform evolves in directions that matter to practicing professionals.

The extension ecosystem grows as teams share their tool collections. A discipline-specific toolkit built at one firm can become useful to another, creating a multiplier effect that individual proprietary tools cannot match.

6+
Years of Active Development
100+
Built-In Commands
Open
Source & Freely Available

Getting a pyRevit Workflow Ready for Daily Use

Test Python automation against real Revit models before team deployment. Reliable pyRevit commands need clear inputs, error handling, documentation, and compatibility checks when software versions change.

1
Identify
2
Automate
3
Test
4
Document
5
Deploy
6
Maintain

Start With a Narrowly Defined Task

Choose a task with clear inputs, predictable rules, and an identifiable result. Narrowly scoped automation is easier to validate and provides a clearer foundation for future improvements.

Validate Against Real Project Data

Testing should include realistic models and scenarios. Different element conditions, missing parameters, and project-specific variations can expose problems not visible during basic testing.

Document Commands for Team Use

Every shared tool should communicate its purpose clearly. Useful documentation explains expected inputs, supported conditions, important limitations, and the intended workflow.

Common Roadblocks in Scripts and Extensions

Troubleshoot pyRevit extension loading, Python engine errors, missing dependencies, and Revit version mismatches by isolating the failing step before changing the script or workstation configuration.

Version and Runtime Mismatches

A script may depend on APIs, libraries, or Python functionality that differs between environments. Compatibility should be considered whenever Revit, pyRevit, Python runtimes, or supporting dependencies change.

Extension Loading Problems

An extension that does not appear correctly may have an issue with its structure, path, configuration, naming, or required resources. Check the extension hierarchy and configuration before modifying the underlying script.

Script Execution and Configuration Issues

A command can fail because of missing dependencies, invalid paths, runtime differences, incorrect assumptions about model data, or errors in its own logic. Effective troubleshooting starts by identifying exactly where execution stops.

Revit Versions, Runtimes, and System Requirements

pyRevit 7.0 supports Autodesk Revit 2021–2027 on Windows. Check your Revit version, available Python engines, and installation permissions before deploying scripts or extensions.

TECHNICAL REFERENCEEnvironment & compatibility
v7.0.0
Current Release
pyRevit 7.0.0 (build 7.0.0.26278) · October 6, 2026 · signed Windows installers
Supported Revit Versions
pyRevit 7 Autodesk Revit 2021–2027. Versions 2019–2020 are not supported by pyRevit 7; check an older compatible release if needed.
Python Runtime
IronPython 2.7 and 3.4.2; CPython engine availability depends on the installed configuration and Revit version.
Operating System
Windows 10 / Windows 11 (64-bit)
Installation
Selected download: signed Windows setup for all user accounts (%PROGRAMDATA%; administrator permission required). A separate signed per-user option is available on pyRevit.org.
Extension Format
Folder-based structure with .bundle directories, YAML/JSON configuration
License
GNU General Public License v3.0 (open-source)

Where pyRevit Fits Into a Modern BIM Workflow

Connect custom pyRevit tools to BIM production tasks such as model data checks, parameter workflows, sheet preparation, and repeated documentation steps—then share tested commands across teams.

BIM automation is most valuable when it supports actual production requirements — processing model information, performing repetitive procedures, supporting documentation, and applying defined project workflows.

Connecting Automation With BIM Production

Commands can help users process model information, perform repetitive procedures, support documentation, and apply defined project workflows — directly inside the modeling environment where work already happens.

Supporting Computational Design Workflows

For users who work with structured design data, algorithms, and programmatic workflows, pyRevit provides a practical environment for bringing automation into the Revit workspace.

Scaling From Individual Users to Teams

A workflow may begin as a personal script and later become a shared company tool. The progression involves reusable libraries, organized extensions, documentation, configuration, testing, deployment, and ongoing maintenance.

Questions Revit Users Ask About pyRevit

Find answers about pyRevit downloads, Revit compatibility, Python scripts, custom extensions, installation permissions, and troubleshooting.

What is pyRevit?

pyRevit is a development and automation environment for Autodesk Revit that allows users to create and run scripts, commands, extensions, and custom productivity tools.

Is pyRevit only for Python developers?

No. Existing pyRevit tools can be used without writing Python. Programming becomes important when users want to create, customize, or maintain their own automation.

Can pyRevit automate repetitive Revit tasks?

Yes. Repetitive, rule-based workflows are a major area where pyRevit can be useful. Commands can be designed to process model data, selections, parameters, views, documentation tasks, and other defined operations.

Does pyRevit work with the Revit API?

Yes. pyRevit provides a Python-oriented environment for interacting with Revit's API and application data, allowing developers to create automation that operates on Revit elements and documents.

What are pyRevit extensions?

Extensions are organized collections of pyRevit tools, commands, libraries, and related resources. They provide a structured way to distribute and maintain custom functionality.

Can I create my own pyRevit extension?

Yes. Developers can create custom extensions containing their own commands, scripts, interface elements, supporting libraries, and configuration.

Can pyRevit be used for BIM automation?

Yes. pyRevit can support BIM-oriented automation where workflows involve defined, repeatable operations involving Revit models and project information.

Do architects need Python to use pyRevit?

No. Architects can use existing tools without programming knowledge. Python becomes relevant if they want to create or customize automation for their own workflows.

Is pyRevit useful for BIM managers?

Yes. BIM managers can use its automation and extension capabilities as part of workflows involving standards, repetitive procedures, shared tools, and team productivity.

Why might a pyRevit script fail?

Potential causes include runtime compatibility, Revit-version differences, missing dependencies, incorrect extension structure, configuration issues, invalid paths, or errors within the script.

Can pyRevit tools be shared with a Revit team?

Yes. Extensions and configuration can be organized for shared environments, making team-oriented deployment and maintenance possible.

Which Revit versions work with pyRevit 7.0?

pyRevit 7.0 supports Autodesk Revit 2021 through 2027. Revit 2019 and 2020 are not supported by this release. Before downloading, confirm your installed Revit version and consult the official release information if you need an older pyRevit build.

Do I need administrator permissions for this download?

Yes. The main download installs pyRevit 7.0 for every Windows user on the computer, so administrator approval is needed. If you only want it under your own account, choose the separately signed per-user download on the Link Download Now.

Can pyRevit support advanced Revit automation?

Yes. Beyond simple commands, developers can create multi-step workflows, reusable libraries, custom extensions, API-driven operations, and event-related automation.

BEGIN WITH PYREVIT

Ready to Automate Your Revit Workflows?

Download pyRevit 7.0 for Autodesk Revit 2021–2027. Run Python-based automation tools, organize views and sheets, and build custom extensions for everyday BIM tasks.

pyRevit 7.0.0 · Revit 2021–2027 · Signed Windows download · Administrator permission required

Prefer installation for your account only? Check pyRevit 7.0.0 release options.

Scroll to Top