Share with:


I was working on semi – automated solution to enter door handiness in Revit models. The existing solutions are either quite expensive (like Reforma Swing Direction) or has weird assumptions.

My intial setup is Dynamo and the Dynamo Door Set Handing module from http://archi-lab.net/. It has fine tutorials, so you only need to create your model in Dynamo.

The weird thing on door handines is it is different in some countries.

  • Door handiness in Germany is defined as hinge position on the door, when one is pulling the door to open. if the hinges are on the left side, the door is left-handed, and if the hinges are on the right side, the door is right-handed. I will refer it ad “DIN – style”.
  • The IFC, together with ISO 16739 defines door handiness as the position of “positive Y axis”, which is definitelly the position of door handle when puling.  I will refer it as “ISO – style”.
  • Americans use ISO style, but also has “reversed” option. I still have no idea on this option, as “reversed right” is “left”.

So, what’s to do?

My idea is to use “Operation” family parameter from the “IFC Parametrs” list for initial assumption and flip the handiness as it is done in “Door Set Handling” module.

The “Operation”parameter is directly mapped to IfcDoorTypeOperationEnum parameter, having several predefined values (as from EXPRESS specification):

TYPE IfcDoorTypeOperationEnum = ENUMERATION OF (
SINGLE_SWING_LEFT,
SINGLE_SWING_RIGHT,
DOUBLE_DOOR_SINGLE_SWING,
DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT,
DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT,
DOUBLE_SWING_LEFT,
DOUBLE_SWING_RIGHT,
DOUBLE_DOOR_DOUBLE_SWING,
SLIDING_TO_LEFT,
SLIDING_TO_RIGHT,
DOUBLE_DOOR_SLIDING,
FOLDING_TO_LEFT,
FOLDING_TO_RIGHT,
DOUBLE_DOOR_FOLDING,
REVOLVING,
ROLLINGUP,
SWING_FIXED_LEFT,
SWING_FIXED_RIGHT,
USERDEFINED,
NOTDEFINED);
END_TYPE;

 Having this and a small (ca. 200 doors 😉 schedule, i’ve discovered the following:

  1. ISO style does not define the handiness of double doors, what is essential for manufacturing.
  2. So additional types should be added, like DOUBLE_SWING_LEFT , defining double doors with the main leaf swinging  left and DOUBLE_SWING_RIGHT , defining double doors with the main leaf swinging  right.

It’s time for Dynamo. This is the Dynamo 0.75 model. The values are set on “Opening – DIN” and “Opening – IFC” parameters. You should pre-set them as instance parameters of the “Text” type as follows:

Door parameters

Door parameters

When playing with “Door Set Handling”, i was unable to supply the “Phase” parameter and after closer look i’ve discovered i don’t need it at all. Therefore the Python script is slightly modified and a new module is used instead.

UPDATE: please reload the sketch and module files, if the sketch is not working on Revit 2015 UR7.

The sketch is working fine when the doors in the family are modelled as *SWING_RIGHT.  For *SWING_LEFT an additional parser for “Operation” parameter must be used.

And now, some photos.

Door IFC right

Door IFC right

Door IFC left

Door IFC left

And finally, the Best Thing Right Now:

Clearing workflow…
00:00:00.0005407 elapsed for loading xml.
Loading node definition for “DoorSetNG” from: […]\DoorSetNG.dyf
00:00:00.0505906 ellapsed for loading nodes.
00:00:00.0063710 ellapsed for loading connectors.
00:00:00.0000023 ellapsed for loading notes.
00:00:02.0493571 ellapsed for loading workspace.
Active view is now A-P1-CD-W
Evaluation completed in 00:00:00.2605236

door_schedule