I wanted to take a moment to share a few weird things and some cool things with rooms in the Revit API for anyone who has not run into them before.

Cool Thing #1

When retrieving room boundaries, the first sublist is the outermost boundary.

roomsOuterBoundary.png

Cool Thing #2

The different wall location lines are available in the API at all times.

roomsBoundaryOptions.png


And now for the less cool things:

Bummer #1

When a wall intersects your target room, it splits your room boundary at that point.

Here is the room. I would think it gives me 4 lines.

segmentedWall_00.png

but… it does not. segmentedWall_01.png

Bummer #2

Room bounding elements that are close to the wall do intersting things.

Consider this image: columnBreak_00.png

If I were making finish floors for this room, I would want the outer boundary with an opening for that column. Or.. in Revit 2022, a multi-sketch floor.

But. Revit is like, “yeah… nah”. columnBreak_01.png

Bummer #3

All rooms are collectable with the API. Even if they are unbounded or unplaced. To work around this you have to filter. For a recap on FilterByBoolMask check out this video.

unboundedRooms.png

Bummer #4 Courtesy of Paul Wintour

Self Intersecting boundaries are also possible!

Image Courtesy of Parametric Monkey image courtesy of Parametric Monkey

For more information on this one, check out Paul’s Post here: Room Check


To be fair, most of these quirks have workarounds, which is fine. But I wanted to take a moment to share this with people because:

if you don’t know what the issue is, you can’t figure out how to fix it.

in a similar post, I discussed overcoming some of these limitations by thinking differently, 👉 Revit Can’t Do That!