/revitpythonshell

An IronPython scripting environment for Autodesk Revit and Vasari

Primary LanguageC#MIT LicenseMIT

RevitPythonShell

Revit API Platform License: MIT

ReSharper Rider Visual Studio 2022 .NET Framework

Publish Github All Releases HitCount

The RevitPythonShell adds an IronPython interpreter to Autodesk Revit and Vasari.

The RevitPythonShell (RPS) lets you to write plugins for Revit in Python, my favourite scripting language! But even better, it provides you with an interactive shell that lets you see the results of your code as you type it. This is great for exploring the Revit API while writing your Revit Addins - use this in combination with the RevitLookup database exploration tool to become a Revit API Ninja :)

Features

  • interactive IronPython interpreter for exploring the API
    • with syntax highlighting
    • autocompletion (press CTRL+SPACE after a period)
    • based on the IronLab project
  • batteries included! (Python standard library is bundled as a resource in the RpsRuntime.dll)
  • full access to the .NET framework and the Revit API
  • configurable "environment" variables that can be used in your scripts
  • save "external scripts" for reuse and start collecting your awesome hacks!
  • run scripts at Revit startup
  • deploy scripts as standalone Revit Addins
  • lookup() function for snooping Element, ElementSet and ElementId objects in RevitLookup

IronPython 3

IronPython 3.4 uses Python 3.4 syntax and standard libraries and so your Python code will need to be updated accordingly. There are numerous tools and guides available on the web to help porting from Python 2 to 3.

IronPython 3 targets Python 3, including the re-organized standard library, Unicode strings, and all of the other new features.with user upgrade from IronPython 2 to IronPython 3, please follow Upgrade from IronPython 2 to IronPython 3.

Various differences between IronPython and CPython can follow at Differences IronPython and CPython.

Installation

Please follow last release at section Release support version Support From Revit 2018-2024.

Older versions:

Contribute

Support

Getting started:

Learn some python:

Learn about the Revit API:

Tutorials recommended by the community:

You can find sample scripts here:

License

This project is licensed under the terms of the MIT License.

Credits

  • Daren Thomas (original version, maintainer)
  • Zachary Kron (original port to Vasari)
  • Akimitsu Hogge (original port to Vasari)
  • Joe Moorhouse (interactive shell was taken from his project IronLab)
  • Jason Schaeffer (port to Revit 2011)
  • Ehsan Iran-Nejad (@eirannejad) countless improvements, the awesome pyRevit tool and a special thanks for helping maintain RPS!
  • @DanRumery improved autocompletion with PR #59
  • Petr Mitev (@mitevpi) ported to Revit 2019 with RP #86
  • Alvaro Ortega Pickmans (@alvpickmans) refactor to sdk csproject and release for Revit 2020 PR #101
  • @hdm-dt-fb added set_font_sizes function for presenting RPS (PR #77)
  • Nice3Point for process CI/CD
  • Chuong Mep a people like maintain for project open source.
  • many, many users with questions, bug reports etc!

Also, many thanks to the Chair for Architecture & Building Systems for making this project possible.

NOTE: If you are not on this list, but believe you should be, please contact me!