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.
Cool Thing #2
The different wall location lines are available in the API at all times.
And now for the less cool things:
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.
but… it does not.
Room bounding elements that are close to the wall do intersting things.
Consider this image:
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”.
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.
Bummer #4 Courtesy of Paul Wintour
Self Intersecting boundaries are also possible!
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!