pyRevit is a free, open-source Revit add-in that adds a full productivity tab to Autodesk Revit. It gives you ready-made tools for sheets, views, revisions, model checking, selection, cleanup, printing, and automation. You can use many of the best pyRevit tools without writing Python.
If you searched for what is pyRevit, the short answer is this: pyRevit is both a Revit plugin and a scripting environment. Beginners use it for the built-in buttons. BIM managers and advanced users use it to build custom Revit tools with Python, C#, Dynamo, or other supported command types.

Quick answer
- Best for: Revit users who want faster sheets, views, QA, cleanup, selection, printing, and repetitive BIM tasks.
- Programming required? No for the built-in tools. Yes only if you want to create your own custom tools.
- 2026 update: For normal use, download the latest stable installer from the official pyRevit releases page, not an experimental CI build.
- Start with: Color Revit Tabs, WHO DID THAT??, Batch Sheet Maker, Print Ordered Sheets, Add Views to Sheets, Sync Views, and Preflight Checks.
What Is pyRevit?
pyRevit is a Rapid Application Development environment for Autodesk Revit. In practical terms, it adds a new ribbon tab inside Revit with useful tools that help you work faster. It also gives power users a framework for creating custom Revit commands and extensions.
The official pyRevit documentation describes it as an environment for building automation and add-on ideas inside Revit using the Revit API. That matters because pyRevit is not just one tool. It is a platform: built-in tools, libraries, extensions, a command-line utility, and the ability to make your own buttons.
For most Revit users, the main benefit is simple: pyRevit reduces repetitive work. Instead of manually creating sheets, hunting for model issues, copying view settings, tracking who changed an element, or printing sheet sets one by one, you can do those tasks from purpose-built pyRevit commands.
Does pyRevit Work With Revit 2026?
Yes, pyRevit has current Revit 2026 support. As of this July 2026 review, the official GitHub releases show stable 6.x versions, including pyRevit v6.5.3 released on June 25, 2026. Autodesk also continues to update Revit 2026; Autodesk lists Revit 2026.4.2 as released on July 9, 2026.
The safe rule is to keep both Revit and pyRevit current. If your office uses a controlled BIM environment, ask your BIM manager or IT admin before updating, because shared extensions, custom scripts, and company deployment paths can depend on a specific pyRevit version.
If you are using Revit 2024, Revit 2025, or Revit 2026, install the latest stable pyRevit release unless your office standard says otherwise. Avoid daily or CI builds for production work unless you are testing a fix and understand the risk.
How to Use pyRevit
Step 1 – Install pyRevit
Download pyRevit from the official pyRevit GitHub releases page. Choose the regular installer for a single-user workstation. Choose the admin or all-users installer if your office manages add-ins centrally.
- Close Revit before installing.
- Download the latest stable pyRevit installer from GitHub Releases.
- Run the installer and follow the prompts.
- Open Revit after installation.
- Look for the pyRevit tab on the Revit ribbon.

Important: Older tutorials often point to develop commits or CI artifacts. Those builds can be useful for testing, but they are not the best default for a regular Revit user. Use the stable release page first.
Step 2 – Launch Revit and Check the pyRevit Tab
After installation, launch Revit. You should see a new pyRevit tab in the ribbon. If the tab does not appear, restart Revit once, then confirm that pyRevit was installed for the same Windows user and Revit version you are opening.
Step 3 – Start With Safe, High-Value Tools
The best way to learn pyRevit is not to click everything at once. Start with tools that do not permanently change large parts of your model: Color Revit Tabs, Sync Views, WHO DID THAT??, Find Referenced Elements, and Preflight Checks. Then move into batch tools such as sheets, revisions, view placement, and cleanup after you understand what each command changes.
Best pyRevit Tools: Quick Comparison
| pyRevit tool | Best for | Use it when |
|---|---|---|
| Color Revit Tabs | Navigation | You work with several projects or families at the same time |
| Make Pattern | Detailing | You need a Revit fill pattern from drawn lines |
| Match Anything | Graphics | You want to copy graphic overrides quickly |
| Find Referenced Elements | Model safety | You need to know what depends on a selected element |
| Preflight Checks | QA/QC | You want to audit warnings, sheets, references, or model health |
| WHO DID THAT?? | Worksharing | You need to track who changed a view or element |
| Batch Sheet Maker | Documentation | You need to create many sheets at once |
| Print Ordered Sheets | Issue sets | You need controlled sheet printing/export order |
| Add Views to Sheets | Sheet setup | You need to place many views faster |
| Sync Views | View coordination | You need matching zoom/pan between views |
20 Best pyRevit Tools
These are the pyRevit tools I would learn first if the goal is to save time in real Revit production work. Some are simple quality-of-life tools. Others can modify many elements, sheets, or views, so test them on a copied file before using them on a live project.
1. Color Revit Tabs
Color Revit Tabs changes the appearance of open Revit document tabs so you can identify projects and families faster. This is one of the best beginner pyRevit tools because it improves daily navigation without changing model geometry.
- Go to the pyRevit tab.
- Open the pyRevit panel drop-down.
- Click Settings.
- Adjust Project Tab and Family Tab styles.
- Save the settings.

Use this if you often have a central model, detached model, linked model, and family editor open at the same time. It helps prevent editing the wrong document.
2. Make PAT Pattern
Make Pattern creates a Revit fill pattern from detail lines. It is useful when you need a custom hatch pattern but do not want to manually write a .pat file.
- Create a drafting view.
- Draw the pattern with detail lines and arcs.
- Select the pattern geometry.
- Go to pyRevit tab > Modify panel > Make Pattern.
- Name the pattern and click Create Pattern.

This is especially helpful for custom material graphics, masonry patterns, tile layouts, paving diagrams, and office-standard filled regions. For the classic Revit workflow, see how to create filled regions and hatch patterns in Revit.

3. Match Anything
Match Anything copies graphic override settings from one element to another. It can help when you need consistent view graphics, line weights, transparency, colors, or override styles across multiple elements.

Use it when Revit’s normal Match Type Properties tool is not enough. If you want the native tool instead, see 2 ways to match properties in Revit.
4. Find Referenced Elements
Find Referenced Elements shows other elements that depend on, reference, or are connected to the selected element. This is useful before deleting walls, views, reference planes, tags, dimensions, or other model items.
- Select an element.
- Go to the Analysis panel.
- Open the Inspect menu.
- Click Find Referenced Elements.

This tool can prevent accidental damage in a production model. For example, before deleting a wall, you can check whether windows, tags, dimensions, or other view-specific items are tied to it.
5. Preflight Checks
Preflight Checks runs model checks before publishing, issuing, or handing off a Revit file. It can help identify warnings, reference planes, schedules not on sheets, and other project health issues.

Use this before major deadlines. It is easier to solve model problems while the team is still working than after sheets have already been exported.
6. WHO DID THAT??
WHO DID THAT?? is one of the most searched pyRevit tools because it answers a common worksharing question: who created, edited, or changed something in the model?
- Select an element or open the active view you want to investigate.
- Go to the Project panel.
- Open the Team menu.
- Click WHO DID THAT?? and choose the command you need.

It is most useful in a workshared Revit model, where several users may be editing views, sheets, families, and model elements during the same deadline.
7. Batch Sheet Maker
Batch Sheet Maker creates multiple sheets at once. It is one of the fastest pyRevit tools to understand because the pain is obvious: no one wants to create a large drawing set one sheet at a time.
- Go to the Drawing Set panel.
- Open the Sheets menu.
- Click Batch Sheet Maker.
- Use your sheet numbers, sheet names, and title block settings.

Before running it on a live project, make sure your sheet numbering convention is final. Batch tools are powerful, but they can also create a lot of cleanup if your inputs are messy.
8. Set Revisions on Sheets
Set Revisions on Sheets assigns revisions to many sheets at once. This can save serious time when you are issuing a drawing package and need the same revision to appear across a controlled sheet set.
- Go to the Drawing Set panel.
- Open the Revision menu.
- Click Set Revisions on Sheets.
- Select the revision and target sheets carefully.

For the native Revit revision workflow, see how to use Revit revisions with optional cloud tags.
9. Copy Revisions to Open Documents
Copy Revisions to Open Documents copies revision data from one open Revit project to another. This is useful when several project files need the same revision information but are not all in one model.
- Open the source and destination Revit documents.
- Go to Drawing Set > Revision.
- Click Copy Revisions to Open Documents.
- Confirm the target documents.

This is most valuable on multi-building projects or consultant models where revision naming and dates must stay consistent.
10. Print Ordered Sheets
Print Ordered Sheets prints or exports sheets in a controlled order based on a sheet index. This helps avoid the common problem where PDFs come out in the wrong sequence.
- Go to the Drawing Set panel.
- Click Print Sheets.
- Choose the correct Sheet Index or sheet list schedule.
- Confirm print/export settings before issuing.

Use this together with a clean Revit sheet list. If you prefer the standard Revit PDF workflow, see how to use PDF files with Revit.
11. Add Views to Sheets
Add Views to Sheets helps place views on sheets in batches. It is especially useful when setting up repetitive plans, elevations, sections, details, or coordination views.
- Go to the Drawing Set panel.
- Open the Views menu.
- Click Add Views to Sheets.

For best results, clean up view names before placing them. A consistent naming system makes it much easier to select the right views.
12. Set Workset
Set Workset changes the active workset based on a selected element. This can reduce mistakes in workshared files because you can quickly match the workset of similar elements.
- Select an element on the workset you want to use.
- Go to the Selection panel.
- Click Set Workset.
This is helpful on projects with strict model organization. For the native workflow, see how Revit worksets work.
13. Copy Legends
Copy Legends copies legends from one open Revit document to another. Since legends are not as easy to transfer as many other view types, this can save time when building consistent documentation sets.
- Open the source and destination documents.
- Go to Drawing Set > Legends.
- Click Copy Legends to Other Documents.
Use this for general notes, symbols, abbreviations, wall type legends, and other repeated documentation views. For more context, see legends in Revit.
14. Copy State to View
Copy State to View copies view state settings such as temporary hide/isolate, section box, crop region, and hidden elements from one view to another.
- Open the view with the state you want to copy.
- Click Copy State in the Selection panel.
- Open the target view.
- Click Paste State.

This is useful when coordinating similar 3D views, focused working views, or review views. For standard Revit navigation and display controls, see Revit View Control Bar tools.
15. Pick by Category
Pick by Category quickly selects elements by category. This is helpful when you need to isolate, inspect, override, or modify a specific group of model elements.
- Go to the Selection panel.
- Click Pick.
- Choose the category or subcategory you want to select.

Use this before changing many elements, but always confirm the selection count before applying a command that edits the model.
16. Wipe Category
Wipe Category removes elements from a selected category. This can be useful for cleanup, but it is also one of the tools you should treat carefully because it can delete a lot of data quickly.

Use it on a copied file first, or after saving a backup. If your goal is normal model cleanup, compare it with the standard purge workflow in Revit.
17. Sync Views
Sync Views synchronizes navigation between similar views. When you pan or zoom in one view, the matching view follows. This is useful when comparing plans, options, phases, disciplines, or view templates.
- Open the views you want to compare.
- Go to the Toggles panel.
- Click Sync Views.
- Navigate in one view and compare the others.

This is one of the best pyRevit tools for checking consistency between floor plans. For basic navigation tools, see how to navigate and zoom in Revit.
18. Move Viewport
Move Viewport transfers a viewport from one sheet to another. It helps when a drawing belongs on a different sheet but you want to keep the viewport placement workflow controlled.
- Open the source sheet.
- Go to Drawing Set > Sheets.
- Click Move Viewports.
- Choose the destination sheet.
- Click Finish in the options bar.

This is useful during documentation reshuffling, especially when drawings are reorganized late in a project.
19. Pin Viewports
Pin Viewports pins or unpins viewports in bulk. This helps protect drawing sheets from accidental viewport movement during late-stage documentation.
- Go to the Drawing Set panel.
- Open the Sheets menu.
- Click Pin All Viewports.

Use it before final sheet review. It is a small step, but it can prevent accidental movement that causes inconsistent sheet layouts.
20. Overkill Double Lines
Overkill finds and removes duplicate lines. If you know AutoCAD’s Overkill command, the idea is similar: clean up overlapping linework that can cause messy drawings, slow views, or printing problems.
- Go to the Modify panel.
- Click Overkill.
- Select the line type or cleanup option.
- Review the result before saving.

Run this with care in a copied view or backed-up model first, especially if the view contains imported CAD details or complex linework.
Best pyRevit Workflow for Beginners
If you are new to pyRevit, use this order. It gives you value quickly without exposing your model to unnecessary risk.
- Start with navigation tools: Color Revit Tabs and Sync Views.
- Use inspection tools next: Find Referenced Elements, WHO DID THAT??, and Preflight Checks.
- Move into documentation tools: Batch Sheet Maker, Add Views to Sheets, Print Ordered Sheets, and revision tools.
- Use cleanup tools last: Wipe Category and Overkill should be tested before using them in a live project.
This order also works well for BIM managers training a team. Teach the safe tools first, then introduce batch-editing tools after users understand how to review selections and undo results.
Do You Need Python to Use pyRevit?
No. You do not need Python to use the built-in pyRevit tools. You can install pyRevit, open Revit, and start using the productivity commands from the ribbon.
You only need programming if you want to create your own pyRevit extension, customize buttons, or automate an office-specific workflow. That is where pyRevit becomes more than a plugin. It gives you a way to turn repetitive Revit tasks into reusable commands.
The official pyRevit architecture notes explain that pyRevit loads extensions, builds ribbon UI, and runs commands through the Revit API. For non-programmers, that technical layer stays mostly invisible. For developers and BIM automation users, it is the reason pyRevit is so flexible.
pyRevit FAQ
What is pyRevit used for?
pyRevit is used to speed up Revit workflows such as sheet creation, view management, revisions, model checking, printing, selection, cleanup, and worksharing investigation. Advanced users also use it to create custom Revit tools.
Is pyRevit free?
Yes. pyRevit is free and open source. It is maintained by the pyRevit community and distributed through the official GitHub repository.
Does pyRevit work with Revit 2026?
Yes. Current pyRevit releases include Revit 2026 support. For best results, use the latest stable pyRevit installer and keep Revit 2026 updated through Autodesk Account or Autodesk Access.
Do I need to know Python to use pyRevit?
No. The built-in pyRevit tools work from the Revit ribbon. Python is only needed if you want to build your own custom tools or extensions.
Why is the pyRevit tab not showing in Revit?
If the pyRevit tab is not showing, first restart Revit. Then confirm that pyRevit was installed for the correct Windows user and Revit version. In managed offices, the admin installer and company deployment settings may control whether the tab appears.
What is the best pyRevit tool for sheets?
Batch Sheet Maker, Add Views to Sheets, Print Ordered Sheets, Set Revisions on Sheets, and Pin Viewports are the most useful pyRevit tools for sheet production.
What does pyRevit WHO DID THAT?? do?
WHO DID THAT?? helps identify who created or modified selected elements or views in a workshared Revit model. It is useful for troubleshooting team changes during coordination.
Final Thoughts
pyRevit is one of the best free Revit plugins because it gives immediate value to beginners and deeper automation power to advanced users. If you are just getting started, install the stable release, open Revit, and begin with safe tools like Color Revit Tabs, Sync Views, WHO DID THAT??, and Preflight Checks.
Once you are comfortable, move into the sheet and batch tools. That is where pyRevit can save the most time on real BIM production work: creating sheets, placing views, managing revisions, printing ordered sets, and cleaning repetitive model problems before they become deadline issues.
Mohamed Fakhry has helped thousands of architects and designers find their next project with step-by-step guidance on his blog, mashyo.com. About Mohamed
His journey began during his university years when he recognized the need for information-rich 3D models to accelerate learning and improve production processes. Now, Mohamed shares his expertise through Revit tutorials that are accessible to all.

