If you have had a chance to read blogs like "Inside the Factory" or forum posts on our beta sites or had the chance to work with our product designers one of the things you will notice is how important usability is to Autodesk. Now I am the first to admit that not every feature in every product is perfectly usable. However, we do strive every day to make usability a critical ingredient in our designs.
The question that comes up is where does that usability stand when developers create add-ins for Revit or any other product. Do those developers care about usability and do they have the skills to do anything about it? Having worked with and known a large number of the developers who work on building products on top of BIM applications, I can say that usability is always a prime concern. The limitations they face are the ones we all face including time, resources, expertise and limitations in the product API.
Very early on with Revit we decided that 3rd party developers should not be unsupported when it comes to building usable features. We addressed this in 3 simple ways. We provided them with guidelines on how to build User Interfaces for their apps, we gave them constructive feedback on how to make improvements and we broke up our development into 2 parts - Data Access and Seamless Integration.
- This is an example of the guidance we provided with the first Revit Arch. 9.0 API (not a lot but better than nothing)
- These are the documents that we currently provide in the Revit SDK for Ribbon Design Guidelines and Autodesk Icon Guidelines. Quite an improvement over what we provided in Revit Arch. 9 wouldn't you say?
- And last but not least API User Interface Guidelines from the Revit SDK
- We have clearly come a long way when it comes to providing the tools developers need to seamlessly integrate into our products. However there is always work to still be done on building out our APIs to improve that integration even more.
The idea of Seamless Integration was that 3rd party applications should be able to integrate into the product in such a way that they are indistinguishable from feature built into the product. A great example of a product that permits seamless integration is AutoCAD. What is interesting is that there are obvious features that one would consider part of seamless integration like adding a command to the ribbon or interacting with the graphics viewport. There are however features that are less obvious but just as critical like Updaters and Analysis Visualization. Updaters notify an add-in when changes are made to the model data or UI. For example if an element is added or deleted an add-in listening to that change and can react to it by changing parameters in the element or synchronizing the change with a cost estimation or heating analysis program and providing the results of the change in real time.
The Analysis Visualization Framework in Revit is another example of seamless integration. If one subscribes to the notion that users want to work in a single consistent user experience then they will want to be able to interact with and understand the results of their analysis in the same environment that they performed their modeling and documentation. This is basically making Project Chicago a reality. They want to see the same interaction models, icons, etc.
So how does this relate to the blog. Well you will notice that when I discuss a BIM App I will often discuss the level of integration. This is impart because I believe it is important to users and in part because it is something I truly believe in as both a way to improve productivity as well as a way to reduce errors. From the readers point I think you need to hold all of us accountable for the usability of the products that we provide.