Door Swing 2.0

The Swing 2.0 tool is a robust utility designed for automatically determining and assigning swing directions, room associations, and sequencing for doors and windows in Revit models. Developed for quality control and documentation consistency, it offers fine-grained control over multiple parameters and handles both family-based logic and project-specific metadata.


🔄 Core Functionality

1. Assign Swing Direction (LEFT/RIGHT)

  • Uses a combination of family geometry and instance flips (HandFlipped + FacingFlipped) to determine if the door/window swings left or right.

  • Applies custom values (e.g., "LEFT" / "RIGHT") to a shared instance text parameter like ALAB_BIM_DoorSwing.

  • Family symbols hold the original swing direction in ALAB_BIM_OriginalSwing.

2. Set Room Association

  • Assigns a room identifier (e.g. room number) to each instance using the ALAB_BIM_Romtilhørighet parameter.

  • By default, the To Room is used, but this can be reversed to use the From Room via ALAB_BIM_ReverseRoom (text parameter containing “yes”).

3. Room-Based Sequencing

  • Generates unique sequence values per room (e.g., 101-01, 101-02) and stores them in a chosen parameter (e.g., ALAB_BIM_DoorSequence or Mark).

  • Supports skipping locked instances using a LockedMark parameter (e.g., “yes”).


⚙️ Configurable Settings

You can customize the following directly in the interface:

Setting
Description

Original Swing Parameter

Name of the family text parameter used for original swing (default: ALAB_BIM_OriginalSwing)

Swing Parameter

Target instance parameter for swing assignment (default: ALAB_BIM_DoorSwing)

Room Association Parameter

Where to store room ID or number (default: ALAB_BIM_Romtilhørighet)

Reverse Room

Indicates if From Room should be used instead of To Room (default: ALAB_BIM_ReverseRoom)

Locked Mark

Used to prevent overwriting values on marked elements (default: ALAB_BIM_LockedMark)

Door Sequence

Parameter used for per-room numbering (default: ALAB_BIM_DoorSequence)

Include Room Property

If enabled, includes room number prefix in the sequence value


📝 Additional Features

  • Support for Windows: Can apply swing logic and room association to window families as well.

  • Logging: Optionally generate a detailed log of all actions, including skipped elements, applied values, and errors — saved to your desktop.

  • Phase Awareness: Operations can be limited to elements within a selected phase, avoiding unintended edits.

  • Progress Dialog: Long-running operations show a cancelable progress bar.


âś… Example Use Case

You need to:

  • Assign LEFT/RIGHT swing to every door and window based on geometry and flipping.

  • Label each door with the room number it belongs to, and generate a sequence like 102-01, 102-02.

  • Lock specific instances from being overwritten (e.g., fire doors).

  • Export a log of what was processed.

Last updated