I’ve added some stuff to the revitutils module but there is something that I need to talk to you about before you start using these features:
Currently there is a very useful, powerfull, and easy to use python module to interact with Revit API: RevitPythonWrapper by Gui Talarico.
You can install this module using the pyRevit extension manager. This module also works in Dynamo environment so it’ll be a good time investment for the user since it could be used in both Revit and Dynamo without any code changes.
pyRevit includes revitutils in its core libraries. The primary purpose of revitutils module is to provide the required functionality for the standard pyRevit scripts.
I have started work to incorporate RevitPythonWrapper into pyRevit. Yes it is a dependency but I already have other dependencies (Charts.js and the markdown module for the output window) and RevitPythonWrapper is a very well-designed platform and I intend to use it more and more and have started work to contribute to it.
Very soon, RevitPythonWrapper will be a standard part of pyRevit and without any changes to your code, it won’t be a required dependency for your tools anymore. I think this is great news.
I’m moving some of the stuff in revitutils to RevitPythonWrapper (Don’t worry I won’t break your code just now). I’ll be a lot more strict about stuff that goes into revitutils. If the idea is generic and it could be incorporated into RevitPythonWrapper I will do that.
revitutils will be for the extra functionality that is heavily tied to the pyRevit itself. For example revitutils has a sub-module called patmaker that is the backend for the Make Pattern tool in pyRevit. This is a very specific module and it kinda is tied to pyRevit. revitutils will be home to these type of functionality.
For you python programmers and Revit radicals out there, I encourage you to invest time, implement your functionality ideas, and improve upon RevitPythonWrapper. It is a very well-designed platform and I intend to use it more and more.