I don't know if you're like me... but as a CAD application developer, each new release is like your birthday... You have a stack of gifts in the form of new API calls that you have access to... And it's much more intense in products that are in early stages such as Revit (as opposed to how I felt about Pro/Engineer's 24th release).
So I immediately sat down when I got my hands on the Revit 9.1 Beta and tried to understand what was new - and what each new piece of capability might mean to me (and my customers)... What new powers would we have?
Well, in all the hubbub I didn't notice that Revit 9.1 was officially released last week - so here's my notes that I've been sitting on...
To extend the birthday metaphor, some presents turn out to be rockets, other presents turn out to be socks - and still other presents, like those from "Uncle Bill", just leave you scratching your head...
- Theory of CAD API Maturation (forthcoming)
- What's new in Revit 9.0?
First of all, there are a variety of new elements that can now be programmatically created:
As you can tell, this is a mixed bag - many of these are specific to analysis applications - but there are certainly some other neat ones, including Rooms and Room Tags, ModelCurves (which can include lines, arcs, splines, etc).
Materials have undergone a significant overhaul, and are much more useful. There is much better definition and control of material types (including specific handling for Wood, Steel and Concrete) - but also better handling in general for things like rendering, smoothness, shininess, fill/cut patterns, etc... Some of these things used to be available via the built in parameters on the Material Element - but many have now been promoted to actual class members, and they work much better that way...
One of the nice pieces for FM or space planning related applications is being able to create Rooms, and be able to read and create Room Tags. As a side note, Room Tags can tell which Room they are associated with (however, Rooms don't know their tags).
Detection of Current Display Units
At last!!! How could we ever live without this?!?! Particularly for those of us who work in both metric and imperial worlds, and those of us who dream of someday writing a packaged application for Revit!
Suspension of Disbelief
OK, so actually it's called "SuspendUpdate" mechanism - and it allows you to temporarily suspend Revit's updates and consistency checking while you're making geometry changes. (I haven't needed it yet, but I'm sure it's there for a reason that I just haven't tripped over yet).
New Element Classes
The following elements have been promoted from type-less Elements (where you could just kind of guess what it was) to actual identifiable object status.
Generally these are things which you can now read (or update) some specifics about them - but you can't create them from scratch.
In terms of compatibility with Revit 9, it appears to be pretty good. The only thing I've noticed so far is that they renamed the "MaterialElement" class to just "Material" - once I fixed that everything appears to work identically.
All in all, I have to say I got a few more socks than rockets (but that's me - who hasn't been called on to do much in the analysis integration - your excitement may vary)... But it's a solid release, and you can tell that they're committed to significant expansion of the API.
And if the various insiders that are contributing to the Revit API newsgroup are correct (here and here and here), then we have a lot to look forward to in the Revit 10 API. Maybe that will be the release that puts the API over-the-top (for me :) ).