WARNING : This is an initial draft and needs a serious proofreading and edit. It is being posted in the hopes it is useful in its current state. Later edits will hopefully correct these issues. This document is just a starting point, there are still many roof tricks that could be added.

Introduction

FloorPlan roofs are a very powerful tool for overcoming many floor plan limitations. They can be used to create sloped walls, reverse soffits and other objects that need to angle in the z axis. There have been many discussions in the forums on roofs and an excellent tutorial in the Mastering FloorPlan v 8.2 book by Kevin Doucette & Jack Zimmer which I strongly recommend. (henceforth referred to as MFP). I wanted a better understanding of the mechanics of roofs so I could quickly create special design constructs. The goal of this document is to document from a user’s perspective how roofs work in, sometimes painful, detail.

The Math

There is some basic trigonometry required to fully grasp roofs and their limitations. Don’t worry it is very simple and the Windows calculator can easily handle the math needed. Just refer to these the basic equations as needed. For many roofs there will be no need to use these but some roofs demand detailed measurements and this is the easiest and fastest way to calculate them.

Forumula Calculator keys
arctan(h/w) = a h [/] w [Inv] [tan]
tan(a) = h/w h [/] w [tan]
tan(a) * w = h a [tan] [*] w
tan(a) / h = 1/w a [tan] [/] h [1/x]

NOTES:

  • Scientific mode must be enabled View / Scientiific
  • All calculations should be in degrees for FP. Make sure the Degrees circle is checked.
  • [...] = Key on calculator
  • [Inv] = The inverse checkbox
  • a is the angle of the roof slope expressed as degrees
  • w is the width of the area under consideration
  • h is the height being worked with

Roof Overview

The first thing to know is that roofs require an enclosed space to work properly. Any enclosed space by three or more walls will work. Roofs will be drawn only on exterior walls and each location can reliable have only one roof. This document focuses on simple four wall roofs although the techniques will work equally well only any roof. A roof segment is that part of the roof attached to a single wall. A four wall room will have four roof segments. The term supporting wall is used to refer to the wall that supports the roof segment being discusses. Each roof starts at a wall and rises. Tricks can be used to reverse this and are discussed later.

General

The General tab gives the name, description, price, etc. for the roof. These parameters can only be specified when creating a new roof object. The one setting that can be changed is Include in Quantity. For this document this tab is not used although I recommend using descriptive names and entering any special notes when creating a new roof.

Material

Roof materials apply to ALL roof segments for the current roof. Each separate roof can of course have its own materials.

  • Roof: Top of the roof
  • Fascia: The color that applies to the edges and corresponds to the roof thickness
  • Soffit: The color under the roof
  • Gable: This can be thought of as a wall that rises from the top of the room wall to intersect with the roof. It is always at 90 degrees (vertical). It is always the same thickness as the supporting wall.
    • Gable Front: The outside of the dynamically created wall. This is what is sen from outside the room.
  • Gable Back: The inside of the dynamically created wall. This is what is seen from the inside of the room IF the ceiling has been deleted from the room.

Size

Each roof segment can have its own size settings.

  • Slope : The slope of a roof can be expressed as run over rise (x in 12) which in floor plan is x inches per 12 inches of rise. This setting changes how the angle of roof is specified. Slopes can also be expressed in degrees by changing the drop down to Degrees. Any value in the Angle (see below) will be re-calculated to the new unit of measurement.
  • Roof Thickness : The thickness (facia) of the roof across its entire span. Thickness can only be set when creating a new roof object (right click on roof, select Add new as …) and it applies to all roof segments.
  • Flat Soffit : If checked a soffit (horizontal) will be drawn from the lowest part of the roof segment (set by Overhang) to the supporting wall. This will often cause the gable to step down around the gale supporting wall.
  • Clipping: This checkbox will remove (not hide) any roof segment(s) that are on a wall that has a matching wall (exact position) on the floor above. Use this to remove skirts (roof segments that run around a lower floor). Note that the matching wall is based on the Cut-off Area by Location setting which may be any location.
  • Cut-Off Area by Location: When a roof rise encounters a wall it normally stops. The location containing the floor to use for this can be selected here. If None is selected the roof will continue through walls allowing for roofs within/underneath other roofs. When a roof is created FP calculates the default cut-of location based solely on the current location Floor Level. Understanding this setting is critical to making roofs behave as sloped walls and will be discussed later in this document.
  • Section : Every roof can have multiple sections. How sections work will be discussed later. Sections can have the following settings:
    • Angle : The roof slope expressed as x inches over 12 or as degress depending on the Slope style selected (see above)
    • Overhang : How far the roof should change over (horizontal distance) the supporting wall. Creative use of this is needed for simulating caps and trim.
    • Height : Normally a roof segment rises until it meets with other segments (_Auto_). Changing this causes the roof to rise until the total height of the roof is the value entered. The tricky part is that this is the total roof height has measured vertically from the lowest part which includes the Overhang. Note that the lowest part of the roof is often below the the supporting wall due to overhang.
    • Type : Either gable or hip.
      • Hip: A hip roof rises from the wall at the angle specified until it meets up with other roof segments. This creates a slope. FloorPlan defaults all segments to hip for a new roof.
  • Gable: A gable roof rises straight up (fixed 90 degree) to meet with other roof segments. It is always at an angle of 90 degrees (vertical).

The Rules of the Roof

A rough idea of how to visualize a roof. While reading this remember that roofs can be used to simulate other construction objects such as sloped walls, reverse angled soffits, etc. Also note that these are guesses confirmed with limited experience. Without access to the source code I cannot be 100% sure of these.

  • FloorPlan can only reliable handle only one roof per location.
  • A roof is defined by external walls enclosing an area. Three of more walls are required to define an enclosed space.
  • Roof overhangs are defined as the horizontal distance from the outer wall. A common error is to think of this as the length of roof slope. The roof properties box shows how each measurement is done relative to the others. It is a very handy reference.
  • All roof segments for a roof start at the same elevation.
    • The elevation of the roof is calculated by examining each wall and taking its height minus the roof segments decent (vertical) below that wall based on the overhang setting. Take the maximum elevation of all roof segments and that becomes the starting elevation for the roof. I find it easier to express all measurements in the same scale, typically inches when I am working with US designs.
      • NOT select this. Any entry with Auto tells FloorPlan to automatically re-adjust the clip whenever anything changes, potentially eliminating all of our work to get the roof to appear.
    • Repeat the above on this select Set Default Contour after right clicking.
    • The roof should appear and be fully editable and will remain so no matter what additional locations are placed. Of course if the roof is deleted then the process will have to be repeated.
    • There are a couple of other ways, which may be easier depending on your plan, to get the roof to appear
    • Make sure any existing roof is deleted. The Drawing Info tab can be used to locate an invisible roof per above and then it can be deleted. Existing roofs must be removed before a new roof can be created.
    • Drawing your walls the roof should span using your desired location settings.
      • Remember that each distinct roof should be on its own location, see warnings below.
    • set the location to the height of the uppermost floor or above. I use 1000’ which is usually beyond my upper floor! There is no need or desire to adjust any walls, the location is changed only to fool FloorPlan into setting the cut-off floor properly.
    • Add your roof. It will be added based on the current wall heights, ignoring the new location.
    • At this point you can do one of two things
      1. Recommended : Forcibly set the clip-by location to None and restore the location Floor Level
        • Right click on any roof segment, select Edit Properties, select Size and adjust the clip-by location to be None.
          • Be sure to select None and not None (Auto). Any location with (Auto) will allow FloorPlan to change the clip automatically if location data or roofs change.
        • Edit your location Floor Level and restore it.
        • The roof can be freely edited and will be stable and reliable. Deleting the roof will undo all the work and you will have to repeat the above steps.
  1. Leave the location at the new setting. I find this confusing and unreliable since adding additional roofs can cause strange clipping issues.

Roof clipping is broken

Roofs do always adjust properly when walls are moved or change heights. This is especially true for multiple level roofs. After adjusting a wall right click on adjacent roofs, select properties then click OK. There is no need to adjust any of the properties. The roof should redraw correctly. A classic example of this problem can be seen if you create a roof on one floor, add a new floor and then adjust the walls of that new floor. The first floor roof will fail to meet the new wall locations and a gap will appear between the roof and the new wall position (or an overlap). You can also close your plan then reload it to update all roofs. I occasionally do this for complex drawings just to make sure everything is correct.

Work Arounds

Multiple roof starting elevations

All segments of a roof in FloorPlan start at the same elevation (see aove for forumula). To have multiple starting elevations:

  1. Create multiple roofs. Remember each location can reliable have only one roof. It may take some work to get roofs to merge seemlessly (visually) together. Using the basic equations given above or simply experimenting will rapidly resolve any such issues.
  1. Use multiple sections to simulate the desired look. This is less flexible than using multiple roofs but will occasionally work. One limitation is that the first, lowest, roof will be at the same level, but additional sections can be at varying heights with different overhangs.

Troubleshooting

Q: The roof tool does not seem to do anything

  • There are a couple of possibilities
    1. The room is inside an external wall area on the same location. Move the room to its own location or outside the external walls.
    2. There is already a roof for this room but it is being clipped because it intersects with external walls on another location, regardless of those walls height or base level.
  • See Fixing Roofs above.

Q: One or more roofs are cutting into rooms on other locations, the clipping does not seem to be working

  • A couple of possibilities
    1. The roof’s Cut-Off by Location is set tot he wrong location or set to None
  1. FloorPlan has not redrawn the roofs based on changes. See Refreshing Roofs above.

Q: My roof vanishes at odd times or is just unreliable

  • I normally find that this happens if there is more than one roof per location OR it may be due to clipping, see Fixing Roofs above