Friday, September 08, 2006

What's new in the Revit 9.1 API?

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...

Related Posts:

What's new in Revit 9.1???

First of all, there are a variety of new elements that can now be programmatically created:
  • AreaBoundaryConditions
  • BeamSystem
  • LineBoundaryConditions
  • MaterialSet
  • ModelCurve
  • ModelCurveArray
  • PathReinforcement
  • PointBoundaryConditions
  • ReferencePlane
  • Room
  • RoomTag
  • SketchPlane

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...

Rooms/Room Tags
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.

  • Opening
  • LayoutRules
  • FillPattern

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.

In Summary
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 :) ).


Matt Mason said...


Yes - I expect that it's probably developer-related only...

jb4046 said...


I am interested to know what the infrastructure requirements for Revit 9.1 are (i.e., servers, desktops, network) - do you know?


Matt Mason said...

Well... the Autodesk webpage for Revit is a good place to start:

(this is for the 2008 version, but I suspect it's pretty similar). Revit is a desktop application at heart, so you won't find any server/network specs there.

Talk to your local Autodesk reseller as well - depending on the nature of your company (type of work, number of people, number of sites, etc), they can probably make server/network recommendations.