https://github.com/architecture-building-systems/revitpythonshell
An IronPython scripting environment for Autodesk Revit and Vasari
https://github.com/architecture-building-systems/revitpythonshell
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 16 committers (6.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Repository
An IronPython scripting environment for Autodesk Revit and Vasari
Basic Info
Statistics
- Stars: 539
- Watchers: 83
- Forks: 119
- Open Issues: 65
- Releases: 23
Metadata Files
README.md
RevitPythonShell
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 snoopingElement,ElementSetandElementIdobjects 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-2026.
Older versions: - Installer for Autodesk Revit 2022 - Installer for Autodesk Revit 2021 - Installer for Autodesk Revit 2020 - Installer for Autodesk Revit 2019 - Installer for Autodesk Revit 2018 (and 2018.1) - Installer for Autodesk Revit 2017 - Installer for Autodesk Revit 2016 - Installer for Autodesk Revit 2015 - Installer for Autodesk Revit 2015 - Installer for Autodesk Revit 2014 - Installer for Autodesk Revit 2013 - Installer for Autodesk Vasari (Beta 3)
Contribute
- Issue Tracker: https://github.com/architecture-building-systems/revitpythonshell/issues
- Source Code: https://github.com/architecture-building-systems/revitpythonshell
Support
- RevitPythonShell discussion group
- stackoverflow (Note: use the
revit,revit-apiandrevitpythonshelltags) - read up on How To Ask Questions The Smart Way first
Getting started:
Learn some python:
Learn about the Revit API:
Tutorials recommended by the community:
- Mono IronPython Winforms Tutorial - recommended by Callum
You can find sample scripts here:
- Sample RPS Scripts on GitHub
- feel free to send me your own scripts for inclusion!
- Nathan's Revit API Notebook using the RevitPythonShell
- Nathan Miller even has a Mobius Surface for Vasari sample
- dp stuff (Python Scripts Archives)
- lots of scripts
- my own blog contains the odd sample script
- Check out pyRevit by Ehsan Iran-Nejad - it includes a library of interesting scripts and some additions to make writing your own easier!
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_sizesfunction for presenting RPS (PR #77) - Nice3Point for process CI/CD
- Chuong Mep a people like maintain for project open source.
- Roman Golev (port to Revit 2025)
- Jean-Marc Couffin (port to Revit 2026)
- 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!
Owner
- Name: Architecture and Building Systems
- Login: architecture-building-systems
- Kind: organization
- Email: silvestri@arch.ethz.ch
- Website: http://systems.arch.ethz.ch
- Repositories: 44
- Profile: https://github.com/architecture-building-systems
GitHub Events
Total
- Create event: 2
- Release event: 2
- Issues event: 2
- Watch event: 41
- Issue comment event: 10
- Push event: 4
- Pull request review event: 1
- Pull request event: 8
- Fork event: 4
Last Year
- Create event: 2
- Release event: 2
- Issues event: 2
- Watch event: 41
- Issue comment event: 10
- Push event: 4
- Pull request review event: 1
- Pull request event: 8
- Fork event: 4
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| dthomas.ch | d****h@d****4 | 90 |
| Daren Thomas | t****s@a****h | 62 |
| Chuong Ho | 3****p | 33 |
| Chuong Ho | c****n@g****m | 19 |
| dthomas.ch@gmail.com | d****h@g****m@d****4 | 18 |
| Ehsan Iran-Nejad | e****d@g****m | 17 |
| Álvaro Ortega Pickmans | a****s@g****m | 17 |
| Jeremy Tammik | j****k@a****m | 5 |
| Gertjan Van den Broek | g****k@v****e | 5 |
| Dan Rumery | D****y@b****u | 4 |
| PMoureu | p****u@g****m | 4 |
| f.beaupere | d****/ | 2 |
| Jeremy Tammik | j****k@e****m | 1 |
| Petr Mitev | p****i@g****m | 1 |
| Cyril Waechter | C****r | 1 |
| PavelAltynnikov | R****1@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: over 2 years ago
All Time
- Total issues: 74
- Total pull requests: 30
- Average time to close issues: 6 months
- Average time to close pull requests: about 1 month
- Total issue authors: 53
- Total pull request authors: 11
- Average comments per issue: 3.76
- Average comments per pull request: 1.37
- Merged pull requests: 29
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 9
- Pull requests: 2
- Average time to close issues: 3 days
- Average time to close pull requests: 11 days
- Issue authors: 8
- Pull request authors: 1
- Average comments per issue: 1.44
- Average comments per pull request: 2.5
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- GoogleCodeExporter (5)
- daren-thomas (4)
- eirannejad (3)
- DMuzer (3)
- htlcnn (3)
- S-Rafay-Ali-bukhari (3)
- rahulchowdhary (2)
- BaranRoatamiAUS (2)
- daveBisMe (2)
- amastrobera (2)
- pjhfggij (2)
- fbe-work (2)
- Husam82 (2)
- alexworkorb (2)
- khalidkooshki (1)
Pull Request Authors
- eirannejad (9)
- chuongmep (8)
- jmcouffin (3)
- alvpickmans (2)
- sweco-begertjanvdb (2)
- fbe-work (2)
- jeremytammik (2)
- romangolev (2)
- daren-thomas (1)
- CyrilWaechter (1)
- DanRumery (1)
- mitevpi (1)
- PavelAltynnikov (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v1 composite
- WixSharp.bin 1.20.2
- WixSharp.wix.bin 3.11.2
- AvalonEdit 6.3.0.90
- IronPython 3.4.1
- AvalonEdit 6.0.1
- AvalonEdit 6.3.0.90
- AvalonEdit 6.3.0.90
- DynamicLanguageRuntime 1.3.4
- IronPython 3.4.1
- Nice3point.Revit.Api.RevitAPI $(RevitVersion).*
- Nice3point.Revit.Api.RevitAPIUI $(RevitVersion).*
- AvalonEdit 6.0.1
- Nuke.Common 6.0.1
- vswhere 2.*