Wednesday, May 09, 2007

The Challenges of Phase-Aware Revit Apps.

Revit Phases
One of the more interesting capabilities of Revit (for a long time now, not a recent one) is the concept of Phases. Specifically, that you can define, for example, the "Existing" state of a building, then define a "New Construction" phase and demolish existing elements (like walls) as well as add new elements.
Internally, each type of element within Revit has a "PhaseCreated" and a "PhaseDemolished". Sounds pretty cool, right? It is.

A Couple More Worthwhile Notes...
As I understand it (and real Reviteers, please jump on me if I'm wrong on this) - while Elements can be created or demolished in particular phases, they cannot change. If the idea is to change something, it must be demolished and re-created. Another interesting behavior is that of Room objects - room objects are locked to a single phase (which makes some sense, seeing that they would wind up changing between phases if you dropped in a wall, for example). Some strange things do happen out there in the wild, though - case in point - an existing window which is demolished seems to magically cause a "filler wall" to be created.

A Developer's Life Gets Harder
Here's where the hard part comes in as an application developer, though - when you have multiple phases within one model, are moving into not just 3D CAD but 4D (time). As developers we are used to dealing with the model as "the current state reality" - but in Revit, when you dig through the model, you're digging through a whole potential timeline of model construction - you have to do extra work to determine the state of the model as of "Phase X".

For example, if you're interested in the "New Construction" phase, you need to ignore any elements that are existing but demolished as part of the "New Construction" phase.

One of the interesting new capabilities in 2008 is that you can access the ROOM, TO_ROOM and FROM_ROOM for FamilyInstances (doors, windows, light fixtures, etc). The trick is that this ability to access room data is actually "Phase-based" - when you want to know, for example, which room a desk is in, you have to specify during which phase of construction.

The more I grasp the Revit Phased approach, the more I think that most of the applications we're developing will need to prompt the user for which phase they should work on. While specific companies may not be using Phases today - you probably still need to support the phase checking concept (because if you don't and someone decides to "try it", then you'll probably get the wrong answer!).

To that end, we're posting a new version of Earth Connector for Revit, which prompts the user for which Phase they would like to display.

This 4D stuff is cool, but developers may need to stock up on some Ibuprofen.

Wednesday, May 02, 2007

Earth Connector for Revit 2008 Posted

We've posted an update to Earth Connector for Revit on our website which will support the 2008 line of Revit products.

While I know that Autodesk has announced that they will be offering Google Earth support in conjunction with Revit 2008, it's not available as of yet - and we've been getting requests for an Earth Connector update. We've actually known this was coming for about a year, but opted to develop Earth Connector anyway, in order to explore the API and enable people to work with the great combination of Revit and Google Earth during the past year.

We're interested to see what Autodesk's version will be like... I anticipate it will be somewhat more like their AutoCAD version (including the ability to import the site image from Google Earth - a new capability enabled by the 2008 API). I'm hoping that they have invested where we did not - in KML 2.1 support (including textures, family instances, etc) - that will make for some neat (and smaller) models!

In the meantime (and afterwards too), Earth Connector is there for you.

Tuesday, May 01, 2007

Autodesk Introduces Inventor LT

In somewhat of a suprise move (at least to me - apparently I'm out of the loop), Autodesk has introduced a "Limited" version of it's 3D Mechanical Inventor software. Conceptually - I suppose it should work much like AutoCAD vs. AutoCAD LT, with LT being the choice of users who don't really need the full capabilities of the Inventor software.

What's missing? well, from a developer's perspective - everything! Similar to the restrictions on AutoCAD LT, Inventor LT will not allow any 3rd party development to work with it.

But beyond that restriction - it's a pretty good deal (especially while it's free). If nothing else, you get full part modeling support, rendering, DWF publishing, translation (including UGNX, Parasolid and Pro/E Granite import and export).