Tuesday, March 20, 2012

My Revit API Notebook!

This wiki page is my personal (re: public) diary for exploring the Revit API. This page is as much a resource for me as I hope it will be for others.

 Developing custom tools for Revit using the API can be a complicated endeavor. The program is quite complex and the development process is not nearly as straightforward as developing tools for more 'free geometry' modelers such as Rhino. Please see Jeremy Tammik's article titled BIM versus Free Geometry and Product Training for a more detailed explanation of the 'barriers to entry' in Revit API development.

This notebook attempts to remedy a few 'resource deficiencies' in learning and applying the Revit API in a design workflow…
  •  Design-Related Techniques: Most API examples I have found on the web are related to model management. For designers interested in computation and automation, finding good design-related examples can be a frustrating experience. The examples here show how the Revit API can be used as a design tool specifically within family creation environments such as the conceptual mass. 
  • Vasari Implementation: Vasari is essentially a stripped down version of Revit with additional conceptual design and analysis capabilities (and it's free!). Vasari also features a version of the Revit API. The examples here will focus on Varsari's capabilities but most will be applicable in the full versions of Revit. 
  • RevitPythonShell-Based Examples: Not many examples exist for using the RevitPythonShell Add-In. The tool provides many iterative scripting capabilities similar to those found in other popular modeling tools such as Rhino. This makes the Revit API much more accessible to designers and those in need of some quick automation!
My hope is that this will save designers time in being productive with the Revit API and perhaps contribute to the creation of a more serious 'scripting culture' around Revit and BIM tools in general….

Current examples include basic geometry creation techniques and family parameter manipuation.  I will progressively post more interesting examples in the coming weeks and months. Keep checking back!!!

This is still work in progress and I am learning new things every day. I am positive a few of you could teach me a thing or two… If you have any comments or suggestions please let me know! nmiller.arch@gmail.com 


-Nathan Miller