Autodesk has donated the STL Exporter for Revit to Open Source under the LGPL 2.1 license. The source code, latest builds and user/technical documentation will be available at the following site. You will be able to view and edit the source code to suit your needs. This is something Autodesk has never done before with an add-in/plug-in/app for Autodesk Revit or any other Autodesk product. (See MapGuide for the first Autodesk contributed open source project.)
The code hackers and tinkerers among you are probably saying “cool! – now I can play with it and make it suit my needs”.
The skeptics among you are probably saying “Autodesk is trying to dump responsibility for this thing on the user so they don’t have to support it”. To the skeptics I would recommend you read on. The project is not about reducing investment but rather maintaining investment and enabling users and partners to extend existing capabilities which they could not do before.
The STL Exporter for Revit will soon be removed from the Labs site. After that you will only be able to get the exporter from the open source project site: STL Exporter for Revit
First let’s start with the very basics – STL is a popular file format for stereolithography (3D Printing) used for rapid prototyping and computer aided manufacturing. In the building space, it is used by architects and engineers to build 3D models.
Open Source – LGPL 2.1 license. Basically this means that the source code for the Revit Add-in is publically available for people to view and modify. Any modifications must also be open source and publically available.
The STL exporter for Revit has been around for quite a number of years. In fact it was originally developed as a proof of concept using the Revit Architecture 8.1 API to show that it was possible to build something useful on top of the Revit Architecture API. (At that point there were only a small number of companies building Revit Structure analysis links). Then it sat around in a virtual drawer for years until the Revit team was asked if they had anything for 3D printing. To almost everyone's surprise the answer was “yes we do”. After pulling it out of the virtual drawer and wiping off the virtual dust we posted the first STL Exporter for Revit 2009 family of products on Labs in May 2008
Since that initial release we have updated it for Revit 2008 through Revit 2011. During that time the response and interest in the exporter has been very positive. There have been over 4,800 downloads since it was first posted.
User feedback has always fallen into two major categories:
- “Can I please have the exporter for the latest version of Revit?” or “Can I please have the exporter for an older version of Revit?”. Due to our priorities we are usually not able to update the exporter at Revit’s product release and the delay at times has been a number of months. This has impacted customers who have upgraded to the latest version of Revit and need to use the exporter.
- “XYZ feature is missing – can you please add it?” Even though we have made some improvements over the years to the exporter, in general we are concentrating on other things and improvements to the STL Exporter occur opportunistically.
As we looked at projects like the STL Exporter for Revit and similar projects based on the Revit API we realized that for some customers these projects are very valuable. However, they are not features that could be considered mass market features that will be used by our broader user base. We wanted to find a way that we could give our users access to the feature so they could extend it to meet their needs and share it with the rest of the user community without being dependent on Revit’s priority and schedule. As we studied our options we realized that Open Source might make available the basis for developer innovation in this specialized area. It enables us to keep our current level of commitment to the project and still let our users participate in its future direction. In the process we hope to build a community that can mutually support and assist each other.
I will write a future post to provide more details on the STL Exporter for Revit open source project. But in the mean time I wanted to provide some basic details:
- The source code will be released under an LGPL 2.1 license.
- Anyone who is interested can download the code and use and distribute it under LGPL terms. We would like to strongly encourage that changes to the code be contributed back to the main project so other users can take advantage of them.
- There will be a 5 member Steering Committee set up who will oversee the open source project, approve enhancement proposals and set the direction and tone for the project. The committee will have only one Autodesk employee and 2 other members of the Revit User and Partner community picked by Autodesk. The remaining two positions will be selected by the committee.
- Autodesk will continue to commit the same amount of resources to The Project as has been done in the past. We will actively participate in the project by providing resources to review code submissions, create “official” release builds and perform basic testing. This will be done until The Project becomes self-sustaining.
- Source Code was uploaded for Revit 2011 based products and then upgraded to Revit 2012 based products so developers can see how code contributions look in the project. NOTE: No Contributions will be accepted for Revit 2011 based code it is only there for informational purposes. Only contributions for the Revit 2012 version of the exporter will be accepted.
How to get started:
Note: There are still some parts of the open source project site that we are working on so please be patient as we round out the sharp edges.
- Download the latest compiled “Release” version of the exporter and try it out. Provide feedback on any bugs or improvements you would like to see.
- Download the latest dev build of the exporter and test the new features. Provide feedback on any bugs or improvements you would like to see.
- Download the source code and see how it works.
- Review the documentation for the open source initiative and the documents for the STL Exporter
- Propose to the Steering Committee an improvement that you would like to make to the code. Once approved submit the changes to the Steering Committee for integration into the source code.
- Request “Committer Privileges” from the Steering Committee after you have made a number of successful code submissions through the Steering Committee. (Open Source communities are a meritocracy and you need to “show off” your programming skills first before you can submit code code directly into the project.)
- Volunteer to test dev. and release builds
- Volunteer to create dev. builds or release builds
- Volunteer to help answer any user support questions
There will be more details to follow soon. (This blog post is getting too long.) I am sure you have questions so let’s hear them.
As I final note I just wanted to say thanks to all of the people who have helped with this project both on the technical side and the management side. You know who you are.