Rapid Application Development (RAD) Environment for Autodesk Revit®
:small_blue_diamond: See Assets section below for all download options
:small_blue_diamond: See Assets section below for all download options
Full Changelog: https://github.com/eirannejad/pyRevit/compare/v4.8.14.24016+1909...v4.8.15.24089+0912
:small_blue_diamond: See Assets section below for all download options
Implemented #2021 #2022 #2028 #2029: Color Splasher ported to pyRevit from [Original BIMOne Color Splasher (https://github.com/bimone/addins-colorsplasher) with help from Nonica and some time donated from BIMOne Inc. ✨Bonus features: Create filters and apply to view, Create legend
Implemented #1832: PyRevit Synchronise button, tool that can replace the Revit sync button and offer the possibility to automatically sync on starting view and close other windows. Many people involved around this tool including @jmcouffin @thumDer @alexdaversa @Robbo1234 @aniketdikshit
New documentation workflow and platform:
Thanks to for the initiative and extensive work @sanzoghenzo and @jmcouffin to help the fixing of the docstrings against google python recommendations
Now handles dark theme. Dark Theme UI event implementation
:small_blue_diamond: See Assets section below for all download options
https://user-images.githubusercontent.com/7872003/221819860-beccbdde-1410-4389-bb36-d6c4921d50b4.mp4
:small_blue_diamond: See Assets section below for all download options
💛 Thank you to all the contributors for this release! @ejs-ejs @perrylackowski @onomou @dvdgnz @jmcouffin @sanzoghenzo @alexdaversa @dagz214 @dosymep @MatthewBoynton
:small_blue_diamond: See Assets section below for all download options
⚠️ Some fixes has been applied to the way config files are processed relate to recurring #1451 issues. Hopefully this resolves file access issues on pyRevit runtime. If not, please feel free to open #1451 or file new issues:
Terms:
For pyRevit
When there are no user config but admin config exists and is marked as read-only: pyRevit runs in admin mode. pyRevit settings will show a warning that settings can not be changed
When there are no user config but admin config exits and is writable: pyRevit uses the admin config as a template to setup user config. Then pyRevit runs in user mode and can make changes to the user config*
When there is user config: pyRevit runs in user mode and can make changes to the user config*
For pyRevit CLI
If it is running in elevated mode (system user): Writes to %PROGRAMDATA%, otherwise to %APPDATA%
When there are no user config but admin config exists and is marked as read-only: pyRevit CLI runs in admin mode. Any config changes will be discarded since the admin config is readonly
When there are no user config but admin config exits and is writable: pyRevit CLI uses the admin config as a template to setup user config. Then pyRevit CLI runs in user mode and can make changes to the user config*
When there is user config: pyRevit CLI runs in user mode and can make changes to the user config*
:small_blue_diamond: See Assets section below for all download options
pyRevit engines now manually load their own DLLs into Revit to ensure that pyRevit is running on its own engine assemblies. This resolved import wpf
errors when another Revit addon would load IronPython 277 (e.g RevitPythonShell) before pyRevit loaded and it would cause a conflict. All engine versions were tested against Revit 2017-2021 and they all load
Minor changes have been added to fix wpf
and sqlite3
imports under the new load mechanism.
pyRevit installer now switched to Admin mode when ran "As Administrator" (privileged mode). So the new behavior is:
When ran as a normal user, it defaults to %APPDATA%\pyRevit-Master
for installation and attaches itself to installed Revits for current user only (%APPDATA%\Autodesk\Revit\Addins
)
When ran as a Admin in privileged mode, it defaults to %PROGRAMFILES%\pyRevit-Master
for installation and attaches itself to installed Revits for all users (%PROGRAMDATA%\Autodesk\Revit\Addins
)
Support for dockable panels were added to the forms
module. The mechanism follows the Dockable panel design in Revit API. See this Extension startup script example that registers a dockable panel on Revit startup:
class DockableExample(forms.WPFPanel):
panel_title = "pyRevit Dockable Panel Title"
panel_id = "3110e336-f81c-4927-87da-4e0d30d4d64a"
panel_source = op.join(op.dirname(__file__), "DockableExample.xaml")
def do_something(self, sender, args):
forms.alert("Voila!!!")
forms.register_dockable_panel(DockableExample)
and this pyRevit script that requests opening a previously registered panel
from pyrevit import forms
test_panel_uuid = "3110e336-f81c-4927-87da-4e0d30d4d64a"
forms.open_dockable_panel(test_panel_uuid)