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
orMark
).Supports skipping locked instances using a
LockedMark
parameter (e.g., “yes”).
⚙️ Configurable Settings
You can customize the following directly in the interface:
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