In this series of posts I am going to cover a few "other" ways utilizing
masses in Revit projects. Not necessarily in the traditional sense of using
them like driving the “by-face” creation of the building elements (floors,
walls etc) or modeling geometry that is more complex than the project elements
can handle, but using masses as utilities elements or helpers for your project
development. I will cover at least two examples showing how masses helped me
out in my day-to-day Revit work to resolve certain things in Revit project
environment. I’m going to have at least one API and one non-API example. So,
hopefully based on these examples you could come up with some other creative
use for Revit masses that will save you either lots of tedious work or
additional coding time.
Ok, the first example is a non-API one. Basically the
problem that I ran into is that the apartment building that I’m working on has
funky balconies that are wave – like and thus are different on each floor. The
slab profiles are driven by 3d mass which consists of two extruded boxes that
define the “skin” boundary and a bunch of “curved” wave – like shapes that
drive the location and the profiles for the balconies. The slabs are defined
“by – face” so when we change the mass the slabs update to their host mass
floor. Take a look at the picture below to get the idea.
![]() |
| slab driving in-place mass |
So, basically adjusting the balconies after each change in
the apartment layouts becomes a free – form exercise, however we still need to
comply with certain rules like the Min/Max depth of the balconies (we have ours
at 4-6 feet). That is exactly when utility masses will come in handy because
when you manually editing the profiles of these shapes it is hard to tell whether
you satisfied the Min/Max depth requirements.
![]() |
| offset parameter from the face of the shell |
![]() |
| Left: Max offset (6ft) Right: Min offset (4ft) |
Now when you do your free-form editing in the in-place mass that drives your building geometry (shape of slabs in my case) you just need to keep these two masses visible and you will always see the extent of your constrains projected on your building elements (mass floors or slabs in my case) so you can do all your editing in 3d view and not have to measure anything.
![]() |
| Free form mass profile editing. Notice that you can clearly see the boundaries of our 4' and 6' constrains |
The great part of it is that since your utility masses are
properly constrained and parameterized you won’t have to worry about editing
them no more other than maybe changing the offset parameters’ values if your project
constrains change.
This is a very specific example and chances are that you
might not have to ever deal with this particular problem in your life. But, the
only reason why I brought it up is to show that masses in project environment
can be used not only as what their main application was intended to be like
driving project geometry etc, but also as helpers/utility objects for all kinds
of purposes due to the fact that you can parameterize the heck out of them…



