One of the requirements for specifying a door is to know which way it swings, both left or right and, if it has a keyed side, in or out. In Revit this information is not readily available, but the information is there. This piece will help you manage your door quantity takeoffs by first identifying how Revit represents this information and how to use that information to populate the doors with the correct information using Ideate BIMLink or to verify that information with Ideate Query in Ideate Explorer.
There are four types of swings: Left Hand (LH), Right Hand (RH), Left Hand Reverse (LHR), and Right Hand Reverse (RHR). There are many explanations online with diagrams of each.
For this example we will be using the default Revit door as a reference. It is modeled in the family as a Left Hand Reverse. This is important as it impacts the way the Revit properties should be interpreted. If you are using families modeled in a different hand than the default family, you will have to note those families and adjust the calculations as appropriate. This workflow also requires that the family have flip controls in place, one horizontal and one vertical.
Here is an image of a Revit file that I created for this piece. There is one of each swing, using the Revit placement tools and the flip controls. I then used the mirror command to make another set of doors (in blue) to show that the mirror command does get captured.
There are two properties in Revit that are not listed in the properties palette but are accessible through the API that will determine the swing of the door. These properties are exposed by both Ideate BIMLink and Ideate Query. The two properties are:
- Is Facing Flipped – This indicates the side of the wall the door swings towards. Since the default Revit family swings out (up in the family) a value of ‘False’ indicates that the door is a ‘Reverse’ door, and a value of ‘True’ is not reversed.
- Is Hand Flipped – This indicates the hand of the door. Since the default Revit family is modeled as a Left Hand, a value of ‘False’ indicates that the door is a ‘Left Hand’, and ‘True’ indicates that the door is ‘Right Hand.’
Additionally, you can include ‘Host Wall: Function’ or your ‘Has Lock’ parameter to identify those doors that do or do not need to be marked as ‘Reverse.’ In this example we won’t be including those parameters.
There are two workflows to manage these parameters, allowing you to rely on one resulting text parameter.
In Ideate BIMLink, a door instance link is created with the parameters listed above, along with the text parameter that will store the resulting value. If you are using families that are modeled differently, you will also want to include the ‘Family Name’ property.
This information is then exported to Excel. To convert the information we can use one of the following Excel formulas, where C is the ‘Is Facing Flipped’ column, D is the ‘Is Hand Flipped’ column.
With Full Text
IF(D2,"Right Hand","Left Hand"),
Once this formula has been put in place, it can be dragged down to the rest of the rows. The data can then be imported back into Revit, updating the parameter.
In Ideate Query (a part of Ideate Explorer) you can verify that the swing parameter you have defined is accurate. Select the doors that you would like to examine (or all the doors). Open Ideate Query. Select the swing parameter and either one or both of the ‘Is Facing Flipped’ and ‘Is Hand Flipped’ properties from the list using ctrl+select. The query tool will group the elements by these values allowing you to spot discrepancies. You can then select the discrepancies to fix.
Here is an image showing some issues I made on purpose, one blank value from a new door, one that is using the wrong syntax for the parameter, and one that was mislabeled, creating a duplicate in the list.
About the Author
Jesika DiGregorio – Software Engineer
Jesika received her Bachelor of Architecture from the University of Oregon in Eugene where she also spent time studying advanced math. Her work experience includes Junior Designer at an award-winning firm specializing in architecture and land planning, and Intern Architect at a firm that provides services in planning, design, construction documents and construction administration for projects of all sizes. After working in architecture design for several years, Jesika decided to pursue her interest in programming and her love of efficient systems. She now serves as a Software Team Lead for Ideate Software.