Sunday, October 13, 2013

Creating Roof Family for Folding Roof Planes

Not exactly. This is not a new family category in Revit where you can create a component family for the roof. However, one can actually create a mass family and use "Roof by Face" to achieve though.

I have a project where the design team came up with the roof design where two roof planes fold upward. Normally, I can use "roof by footprint" to create the roof. It is possible to do it but it can be tedious sometimes especially for those two end piece of the roof that folds upward. Since we are still studying the shape and want to explore with different roof pitch to get the best form. Trying to model the roof planes work together could be a time sink.

The team wanted to know if there is another way to do this more efficiently; so I thought I could make a mass family of the roof shape, set up a couple of parameters and we are in business!

Start making a mass family, I first lay out some reference points where I need to connect with model lines later. Once the points are set, create dimensions and set up parameters associated with those points.

Next, I use spline through points to create linear model lines (I later convert them into reference lines in the properties)  and get all the points connected.

I then select the reference lines and click "Create Form"; the forms are just surfaces that I need to use it to generate the roof once the mass family is loaded into the project.

Flex the family a few times to make sure the form follows with the parameters. One last thing I did before I loaded to the project was to add the formula to tie the "Height" parameter with the parameter "Roof Pitch". All that is done, it is good to go.

Load it to the project, offset it above the walls; I can use create "Roof by Face" to make these folding planes as a roof.

Since I made the mass family parametric, both the width and length are instance parameters, I can freely adjust the overall size of the roof form by pulling the shape handle. The nice thing about using mass family is that once the shape of the mass is changed, I can use "Update to Face" option to get the roof shape follows the new form as if I have a parametric roof family.

I can use the same mass family to generate the roof for multiple buildings in this project.


  1. I'm curious why you did not use the 'slab shape edit' feature for this?

  2. Hi Matt,

    Good to see your comment here. Yes, I could use the shape edit function for the roof, but in order to get the roof pitch accurate (2:12 in this case) I have to calculate the drop from one edge to the other end. If I change the depth of the roof, the pitch needs to be adjusted manually. Shape edit tool is not the best tool in Revit in my opinion. You always need to manipulate the point and edge to get the job done. The process could be as tedious as using my initial approach.
    On the other hand, I was also trying to explore if the massing approach could apply to this situation.
    Thanks for your comments.

  3. Matt, the problem with the shape editing has always been the wrong assumption that Revit takes in deforming the thickness of the roof/floor. This makes this tool really only useable for things we don't dimension, or to "fudge things in", especially when you only need to dimension to one side only for example. But for accuracy, the tool is not very useable for severe slopes and users have been asking for this to be corrected since it's introduction (during the alpha/beta cycles).

    Phil, I wouldn't have bothered with your approach. That roof is easily achievable with two roof segments. The trick is to use a slope arrow for the second piece and you can use the same slope as the other segment without calculating anything. Here's a screen grab:

  4. As this example is rectilinear, and all planes have the same 'Top' surely a roof by footprint with negative pitch values would be both quicker to generate and easier to administer? As long as your project units for slope are set to '1:Ratio' you should have no problem...

    The 'Update to Face' command in Revit sometimes gets lost. In such case you would need to recreate the roof = more work?

  5. Dave and Tim,
    Both of your suggestions are valid methods but they require some calculations to get the slope work adjacent to the main roof. I have verified that after seeing your comments. The problem is if the valley line (intersecting line) is not at 45 degree, the slope value of the side will not be the same as the main roof (ie 2:12). So if I were to change the bottom of the valley location frequently, I have to calculate the slope each time I made an adjustment.
    As for the “update to face” gets lost from time to time, this hasn’t happened yet in the model.
    One of the main ideas of using mass is to be able to explore the roof shape quick enough without going back and forth to change those roofs as there are 5 of those in the project.

  6. I assumed that you were keeping the slope equal for all faces. I would still use a 'roof by footprint'. If you require the valley to end at exactly the correct offset, you method may indeed be easier to adjust. In your example, the 'wings' aren't set to a fall as such. This would require the offset to also be controlled by a formula...

    Dave, why generate your roof example from one piece with the 'defines slope' edge at the top and the slope arrow (or a defines slope) traveling the other way?

  7. Tim,

    It is up to the design team to decide how the valley meets whether it is equal or not, so I found the massing to be rather easy for them to use. The main slope (pitch) is actually controlled by the formula (see the image type parameter table from my post) so the slope at the wing will always be flat at the top. If you are interested in seeing the mass family, I can upload it to a link for download. Thanks

  8. Hi Philip,

    Thanks for sharing your workflow. I like that you were thinking out-of-the-box and used unconventional methods to create a parametric roof. As you stated, you could have used the conventional tools to create this piece but like you, I believe that these tools can be quite cumbersome for design exploration. For the small amount of time spent creating a parametric mass family, the return for design design end is much greater for both exploring the desired shape and the time required for the design team to play with different shapes. Personally, I like to have "living, breathing" parametric framework for objects such as this during the design phase. I find that they allow me think creatively instead of technically which in turn helps keep me in the "design groove." Nice work!