Wanted to point out some qualities of pyRevit which is in my opinion very welcoming for hackers. You can concentrate on the tools/function you want/need to create. Making an UI for basic stuffs is piece of cake. The goal is only to share some UI/UX inspirations from elsewhere.
pyRevit is an open source (GPL3) addin for Revit (proprietary BIM software). I will not discuss about Revit but about what pyRevit creator Ehsan Iran-Nejad brings into it. It was made after RevitPythonShell the first interactive python shell available in Revit by Daren Thomas.
What makes pyRevit great :
- No need to restart Revit to take code changes in account. Only need to reload pyRevit within Revit to take UI changes in account. This let you use any external text editor or IDE and see the result immediately.
- Easy to create and manage tools/commands including icons, arrangement and translation
- Easy to explore : Alt + Click on a tool brings you to the source code
- Debug mode by Ctrl + Click on a tool which active log on debug level and more. You can also manage what happen in this mode (eg. activate a local or remote debugger).
- Many nice and well made basic inputs and outputs
- Easy doc with embeddable image or video in it
- Well made documentation
pyRevit source code
Effective Inputs page
Effective outputs page
pyRevit youtube channel
In my opinion making a more attractive UI/UX is not a waste of time for core developers. If you attract hackers you’ll get some nice tools you’d never thought off (as you do now but shorter time you need to get into it and develop the further people will go). Another for example by Gui Talarico : revitapidocs.com which is a great tools to search into Revit API. Not sure if I am clear about the point I would like to demonstrate.
Side note : some other stuff are I think related to .Net. You can subclass or use methods of any C++ class in python, C# or any .Net supported language. In FreeCAD the inability to subclass a C++ class, or use its methods as is without a special python interface which doesn’t look like the C++ one is very disturbing for me.