Top 20 pyRevit Tools for Revit

pyRevit features

pyRevit is by far one of the best Free plugins for Revit. We picked our top 20 features that we couldn't imagine working without them. In this article, we're gonna dig into what makes pyRevit so amazing and how it turns you into a productivity wizard. 

pyRevit Pa:

In 2014, an awesome architect named Ehsan Iran-Nejad came up with pyRevit, a multi-discipline plugin for Revit offering tools we dreamed of. This plugin is powered by IronPython and comes with a bunch of scripts that show off Ehsan's mad skills and his love for design and all things innovative.

Think of pyRevit as Revit's secret sauce for developers. It makes it super easy to create top-notch add-ons for Revit using Python. And the best part? You can share these tools with your team and develop in-house tools. Kudos to him for being such an archi-rock star! 🌟

Last update: October 2023

By: Andrii Tymoshchuk, Anais Simaan

Without further ado, let's jump into our favorite set of tools in PyRevit: 

1. Overkill

Sounds familiar? The Overkill function is a great tool that takes its name and basic functionality from AutoCAD. The Overkill function in the pyRevit plugin helps users identify and remove unnecessary lines and eliminate duplicate geometry, resulting in cleaner drawings. 

Overkill feature pyRevit

* a small description of the Overkill feature from the authors.

The overkill tool includes the following options: 

  1. Overkill while considering Line Weights 
  2. Overkill all lines
  3. Overkill Detail Lines 
  4. Overkill Model Lines
  5. Overkill Room Separator Lines (very useful) 

revit overkill

2. Match Tool 

Copy and Paste element Graphic Overrides settings: First, click on the source objects, then click on all destination objects to apply the new graphic overrides. 

match tool revit

Shift + Click on the tool to configure which graphic overrides to include when copying: 

copy graphic overrides revit

3. Renumber

Say goodbye to manual renumbering - pyRevit has got you covered! The Renumber function in pyRevit lets you quickly renumber elements like rooms, doors, and windows. 

renumber pyrevit

* a small description of the Renumber feature from the authors.

Elements that could be renumbered using pyRevit Renumber: 

  1. Rooms
  2. Spaces
  3. Doors
  4. Doors by Rooms
  5. Walls 
  6. Windows
  7. Parking
  8. Levels
  9. Grids

After choosing the starting number, the click sequence determines the order of the new numbers: 

renumber rooms revit

4. Manage Keynotes

Instead of editing text files outside Revit, use PyRevit's Manage Keynotes organizer to edit everything in one place: Add new categories, new keynotes, remove old ones, reorganize elements, and more. You can apply keynotes to a bunch of elements all at once. Also, finding the right keynotes quickly is now an option thanks to the search and filter bar.

Keynotes feature pyRevit guide

* a small description of the Manage Keynotes feature from the authors.

pyrevit keynote

5. Isolate

The Isolate function in pyRevit is a cool tool that makes it easy to control what you see in Autodesk Revit. With just one click, you can hide all the elements in the view except for the ones you select. It's a great way to focus on specific parts of your design and edit them in isolation mode. It offers more options than the built-in "Isolate Element" or "Isolate Category" tool so that you can also Isolate painted elements, model groups, etc. 

pyRevit isolate

* a small description of the Isolate feature from the authors.

Elements that could be isolated using py Revit Isolate: 

  1. Area Boundary Lines
  2. Columns
  3. Doors
  4. Floors
  5. Structural Columns
  6. Walls
  7. Windows
  8. Room Tags
  9. Model Groups
  10. Painted Elements (most useful)
  11. Model Elements 

    One noticeable missing feature in Revit is the lack of ability to edit or detect painted elements quickly, this can be achieved using the pyRevit Isolate tool and picking the Painted Elements option: 

    isolate painted elements revit

    Another handy tool is isolate model groups:

    isolate model groups revit

    6. Print Sheets

    The printing process in Revit improved over the years, but still not everything is possible using the native print tool. Customize your print settings, choose your paper size, and even print multiple PDFs with different sizes all at once.

    Print sheets feature guide

    * a small description of the Print Sheets feature from the authors.

    print sheets pyRevit how to

    Another big advantage of this feature is the ability to print multiple Sheets of different paper sizes! 

     pyrevit print sheets

    7. Sheets Tools

    PyRevit plugin Sheets dropdown menu includes 15 tools of the most wanted and missing features, most of which are easy to understand from their title: 

    1. Copy Viewports (Legends) to Other Sheets
    2. Move Viewports (Model, Detail) to Other Sheets
    3. Pin All Viewports: we also recommend using the unselect Pinned Objects to save the pinned Viewports position for good
    4. Reorder Selected Viewports
    5. Copy Sheets To Open Documents
    6. Batch Sheet Maker (please see the next tool explanations)
    7. Select Sheets
    8. Rename Selected Views
    9. List/Select TitleBlocks on Sheets: super handy for replacing the Title Blocks Families
    10. Set Crop Region To Selected Shape: after creating a custom polygon
    11. Open Selected Viewports
    12. ReOrder Sheets: rename already printed PDFs from Revit in a specific folder
    13. Rename PDF Sheets: to UPPERCASE or lowercase
    14. Decrement Selected Sheets Numbers
    15. Increment Selected Sheets Numbers
    Sheet feature guide

    * subfunctions related to Sheets that you can use.

    8. Batch Sheet Maker

    Create multiple sheets all at once, with custom names and numbers in a snap. 

    batch sheet maker feature guide

    * a small description of the Batch Sheet Maker feature from the authors.

    batch sheets maker pyRevit how to


    It's quite simple, but you need to understand that Revit sometimes quarrels with different sheet names, it does not like single "-", single numbers without a letter, and similar symbols.

    As a result, we got a bunch of sheets with appropriate titles and reduced time spent on such a rather unpleasant process as creating sheets.

    Pro tip:

    Create an Excel file with two columns: Sheet Number and Sheet Name, fill it in, and copy and paste the information from Excel to pyRevit anytime you need it. This might be super handy in future projects too. 

    pyRevit Pro tip

    9. Tab Coloring

    The Tab Coloring function in pyRevit is a cool tool for assigning colors to different tabs, making finding and switching between projects and Families easier.

    color tabs revit

    Enabling the Feature:

    To make full use of this feature in pyrevit plugin, you must first enable it. This is done as follows:
    1. Go to the plugin settings
    2. Open the UI/UX tab
    3. Enable the Colorize Open Documents function (here you will immediately see the colors that will be used to highlight certain elements and the way they are highlighted).
    4. You can turn this feature on and off whenever you need it. All you need to do is click on the “Tab Coloring” tab (when the feature is enabled, you'll see the customized items highlighted, and the circle next to “Tab Coloring” will glow in a different color).

    pyrevit tab coloring feature

    10. Wipe Tools

    Revit has its Purge tool, but it can't always get rid of everything. That's where Wipe swoops in. Settings like view templates, filters, constraints, viewports, subcategories, blank elevation tags, and annotations that you didn't even know were cluttering up your model, can now be deleted. 

    1. Wipe Model Component: (please see the next tool explanations)
    2. Wipe Attached Constraints: removes all attached constraints for the selected object
    3. Wipe Selected Families: (please see the next tool explanations)
    4. Wipe Site Designer Line Styles: removes all extra line styles that have been created
    5. Wipe Unpurgeable Viewport Types: to select the viewport/-s that needs to be changed to another, possibly correct its type
    6. Wipe Data Schema: deletes the selected data schema and its entities
    7. Wipe BIM360 Collab Cache 
    8. Wipe SubCategories: resets all model categories and subcategories back to default
    9. Wipe Unused Filters: deletes all view parameter filter that has not been listed on any views, even for sheets
    10. Wipe Unused View Templates: delete all unused view templates
    11. Wipe Empty Elevation Tags: delete all empty elevation tags from the model)
    12. Wipe Empty Tags: removes all empty tags in the current view or SHIFT+click: removes tags in selected views
    13. Wipe ArrowHeads type: deletes selected arrow-head types
    14. Wipe All Project Parameters
    Wipe feature guide

    * subfunctions related to wipe that you can use.

    11. Wipe Model Components:

    Quickly get rid of unnecessary components of your project, such as families, views, etc. With this tool, you can easily and simply summarise the results of your hard work and prepare the final version of your project.

    wipe model components pyRevit how to

    12. Wipe Selected Families:

    Thanks to this script, you can easily and quickly select Families and delete it from your project completely and permanently in one click.

    wipe selected families pyrevit

    13. Make Pattern

    Say goodbye to boring two-line patterns. With this, you can create your own using lines, arcs, and circles. It's like having a pattern playground in Revit, way fancier than the regular pattern maker.  

    Make pattern guide

    * a small description of the Make Pattern feature from the authors.

    Creating a new pattern is a piece of cake. Check this out:

    make pattern how to

    * let's draw a brick wall pattern using Detail Lines.

    Creating a New Pattern

    We make a frame in which our hatching will be marked to help us navigate in space. We assume that the size of the brick is the standard 250 x 120 x 65 mm, with an additional 1 cm for mortar. 
    make pattern feature drawing

    * I made a frame and appropriate indents for the mortar. Additionally, I made the lines of the frame thicker for orientation in space.

    After drawing the base tile for the Pattern, all you need to do next is select the lines, use the Make Pattern function, and name it.

    make pattern feature drawing

    * don't forget to select the pattern lines!

    Give your new pattern a name and choose the options you want.

    hatching drawing with pyRevit

    * don't forget to select the hatching! But remember that you don't have to select a frame!

    After you click Create Pattern, you'll need to select the lower left point and the upper right point as if you were drawing a diagonal.

    make pattern feature correctly

    * if everything is done correctly, you will receive such a message.

    As a result, you get a Pattern in the Model tab that you can use in the Filled Region, but no one prevents you from using Pattern when selecting Surface Pattern or Cut Pattern.

    make pattern feature mistakes

    * On the left, we have our drawing, and on the right, the area to fill in where we used our Pattern.

    Editing an existing Pattern 

    So, here's what happened: I ended up with something like this, and yup, there's a mistake. I totally forgot to mark out another row of bricks. But no worries, it's an easy fix. All you have to do is toss in that missing row of bricks and hit the "Make Pattern" button again. It's as simple as that!

    make pattern hatching mistakes

    * click the arrow to the right of the name.

    In the name, select an existing pattern (in our case, Brick Wall 250x120x65) and click Create Pattern. As a result, the Pattern will be updated, not created, and if you have already used it, it will be automatically replaced with a newer version.

    make pattern feature pyRevit how to make

    * now we have beautiful custom hatching quickly and conveniently.


    We can add patterns to any material, but remember to look for it under the right tab: Drafting / Model tab. This is how it looks on the wall:

    make pattern feature how to use

    * this is what the wall looks like on the elevation view.


    14. Copy State / Paste State

    Copy State

    Using PyRevit plugin you can copy settings that cannot be copied using native Revit Tools. A very useful feature to keep your project in order and keep the same style of your working drawings from the selection area, zoom view, and Visibility/Graphics. 

    Copy state pyRevit feature guide

    * a small description of the Copy State feature from the authors.

    The Copy State tool includes the following options: 

    1. Copy View Zoom/Pan State
    2. Visibility Graphics
    3. Crop Region
    4. Filter Overrides

    Paste State

    A complementary feature of the previous function, it transfers the selected state from the previous picture to the next one you need.

    Paste State feature pyRevit guide

    * a small description of the Paste State feature from the authors.


    Moving the Crop Region from floor 1 to floor 2:

    Copy&Paste State pyRevit how to

    * Сrop Region moved from the 1st floor to the 2nd floor. Quickly and well.

    Copy Paste pyrevit feature

    .pyrevit the most useful features

    15. Family Tools

    One thing you can't do without Revit is families. Therefore, we must be able to manage and use them correctly. 

    family feature guide

    * sub functions related to Family functions that you can use.

    Family QuickCheck:

    Detect corrupt Revit Families that can potentially damage your model or generate future error messages. 

    pyrevit family tools

    Save and Load Families:

    Batch save Families to a folder, or load multiple Families into your Revit project. 

    pyrevit family save

    * this gif-animation shows how the family saving script works

    pyrevit load families feature

    * this gif-animation shows how the family loading script works

    Convert Families to Face Host Based:

    The script allows you to remove all previous instances of the family you selected and tries to convert it to Face Host Based. Please note that the feature works for specific types of models and families (see the script description for details).

    pyrevit family host based

    * the description of the script describes the families that can be converted

    16. Edit Tools

    A various set of tools for small tasks that are not available through Revit native tools: 

    Change Element Type Safely:

    Change Element Type while maintaining the values of all instance parameters. 

    Remember, you must first select the object you want to use for this function!  

    change element type safely pyrevit feature

    * a small description of the CChange element type safely feature from the authors.

    pyrevit change element type safely

    Convert Line Styles:

    This tool can easily help you convert your chosen lines of one type to another across your entire project. Please note that Lines that are part of a group, will not be changed. 

    convert style line feature pyRevit guide

    * a small description of the Convert line styles feature from the authors.

    pyrevit convert line

    Export View as Image: 

    The generated image has a 600 DPI in PNG format, which is the highest value possible for generating images from Revit. Please note that image sizes with such resolution might be too heavy. 

    export image feature pyrevit

    * a small description of the Export views as image feature from the authors.

    pyrevit functions export

    * a small description of the Merge parts feature from the authors.

    Place Origin Marker:

    Sets the point of origin to 0, 0, 0. It is also quite useful if you use other software in parallel, such as AutoCAD, etc. In this case, you can use this marking to check if the exported drawing/model has the same coordinates. 

    Place origin point feature pyRevit guide

    * a small description of the Place origin marker feature from the authors.

    origin point pyrevit feature

    Shake Filled Regions:

    An interesting addition to the line type conversion feature, useful for large projects where filled regions are "lost". Similar to the REDRAW and REGEN commands from AutoCAD. 

    shake filled regions pyrevit feature

    * a small description of the Shake filled regions feature from the authors.

    Tag in All Views:

    The function automatically gives tags to choose from either on the project spaces or on rooms on all views.

    It is quite important for those who are time-conscious and want to optimize their work.

    Tag in All Views feature pyRevit guide

    * a small description of the Tag in all views feature from the authors.


    17. 3D Tools

    Orient Section Box to Face:

     As the name of the function says, it orientates the sectional box parallel to and perpendicular to the face of the object you selected.

    orient section box to face pyrevit feature* a small description of the Orient section box to face feature from the authors.

    orient section box

    Orient View to Face:

    Similar to the previous function with a slight difference, now we rotate not the sectional box relative to the selected face, but the view itself relative to the selected face.

    Orient view to face pyrevit feature

    * a small description of the Orient view to face feature from the authors.

    orient view to face funtion pyrevit

    18. View Tools

    A wide range of tools for working on your types. It's hard to imagine what's missing.

    1. Open Referencing Sheet 
    2. Open Refererring Views
    3. Search Views By Filter 
    4. Query View Sheet Placement: compares the list of views that have not been placed on any sheet
    5. Query View Referencing: queries all selected views and determine if referenced or not
    6. Close Tabs
    7. Rename Selected Views 
    8. Duplicate Selected Views 
    9. Create a print set from Selected Views 
    10. Find Used View Templates Filters: compare a list of all view templates and filters that have been assigned to each
    11. Copy Selected Views Templates to other open models
    12. Toggle All Grid Bubbles in Current View (the function can be found below)
    13. Match Title On Sheet in Open Docs (the function can be found below)
    14. Create Parallel Section 
    15. Add Views to Sheets (the function can be found below)
    16. Remove Underlay From Selected Views
    17. Include or Exclude Template Parameters 
    Views tools for pyrevit

    * sub functions related to View functions that you can use.

    Toggle All Grid Bubbles in Current View 

    Toggles all or selected grid bubbles in the active view. 

    Easy and fast!

    grid bubbles how to turn off

    * a small description of the Toggle All Grid Bubbles in Current View feature from the authors.

    grid buubles feature pyrevit how it works

    Match Title on Sheet in Open Docs

    Sometimes the View Title and Title on Sheet values are different, instead of going through the list of views and correcting that manually, use this tool. 

    match tittle on sheet in open docs pyrevit feature

    * a small description of the Match Title On Sheet in Open Docs feature from the authors.

    match title on shhet in open docs

    Add Views to Sheets

    Can add multiple Views to multiple Sheets. Please note that model views (plans, sections, elevation, and so on) cannot be added to more than one Sheet. On the other hand, Legends and Detail Views can exist on multiple Sheets at the same time. 

    add views on sheets pyrevit feature 

    * a small description of the Add Views to Sheets feature from the authors.

    add views to sheets pyrevit function how it works

    19. Pick

    An ideal feature for large projects, it allows you to activate the selection for Model or Detail items only, making the other categories visible but not touchable. A big plus is that the selection list can be expanded with SHIFT+Click, making your work more efficient.

    pick pyrevit feature

    * a small description of the Pick feature from the authors.

    pick function in pyrevit how it works

    Pick Detail Elements

    Activates the selection of Detail elements such as Text, Dimensions, Tags, Annotation and more. 

    pick detail elements pyrevit feature

    * a small description of the Pick Detail Elements feature from the authors.

    pick detail elements pyrevit feature how it works

    20. Inspection Tools

    This series of functions works in the "Ctrl+F" style to find the required items. The number of items you can find is quite wide, so experiment.

    1. Count lines of selected style: counts all lines in the model with a matching style to the selected line
    2. Find all attached constraints: find all constraints attached to the selected elements
    3. Find identical room numbers: (please see the next tool explanations)
    4. Find monitored Revit links: lists Revit links that are being monitored by selected element(s)
    5. Find referenced elements: lists all the elements that are tied to the selected element
    6. Find referenced views by selected elevations tag: lists all the views referenced by the selected elevation tag
    7. Find Referencing Sheets: (please see the next tool explanations)
    8. Find sheets showing selected element: lists all sheets and views that the selected elements are visible in
    9. Find view showing selected element: lists all views that the selected elements are visible in
    10. Kines Per View Counter: lists sorted Detail Line Counts for all views with Detail Lines
    11. List Elements of Selected Levels(s): (please see the next tool explanations)
    12. List Family Sizes 
    inspect pyrevit feature

    * a small description of the Inspect feature from the authors.

    Find identical room numbers

    Identical Room Numbers can result in incorrect area calculations and program mistakes. In one click, the script will find the Identical Room numbers.

    find identical room numbers pyrevit feature

    * a small description of the Find Identical Room Numbers feature from the authors.

    Find Referencing Sheets

    This feature will help you navigate where the plans you are working on are located in your sheets.

    find referencing sheets pyrevit feature

    * a small description of the Find Referencing Sheets feature from the authors.

    find referencing sheets feature pyrevit how to

    List Elements of Selected Levels(s)

    This feature will help you understand how many and which specific items you can find on a particular level.

    elements on levels pyrevit feature

    * a small description of the List Elements of Selected Level(s) feature from the authors.

    List selected levels pyrevit feature how to


    It takes some time to know what you don't know about pyRevit's large set of tools, and even more when you discover its extension packs, more than 12 new tabs to be added to your Revit interface (we will cover that in our next article). Our advice, take a break every now and then and ask yourself what repetitive tasks are taking over your day and how can you minimize the hours spent on the architectural "bureaucracy" and start investing this time wisely. 

    We hope this (very long) article has given you the motivation to dig in and start exploring new productivity tools that are totally free. So, why wait? Get it and start creating some seriously awesome stuff! 🚀


    PyRevit Blog

    Install PyRevit 

    Leave a comment

    Please note, comments must be approved before they are published

    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.