ArchPlug / Documentation / Auto Lintel Beams

Auto Lintel Beams — Detailed User Guide

Automate placement and scheduling of lintel beams above wall openings.

Autodesk Revit 2022–2026 Windows One-time purchase — $33 Guide updated: July 2026
⬇︎ Download this guide as PDF View plugin & free trial →

Overview

Auto Lintel Beams places structural lintel beams above every door and window opening in your Revit model — automatically, in a single click. It scans the entire project for doors and windows, reads each opening's width and top elevation, and places a Structural Framing beam of your chosen type directly above it, extended by a configurable bearing length on each side.

The plugin is fully update-aware: run it again after moving, resizing, adding or deleting openings, and it updates every beam to match — repositioning moved beams, creating beams for new openings, and removing beams whose openings no longer exist. It never creates duplicates.

The settings window is modeless, meaning it floats above Revit while you keep working: you can pan, zoom, switch views, move openings, and press RUN again at any time without reopening the tool.

Key Benefits & Use Cases

Requirements

Installation

  1. Close Revit.
  2. Run the downloaded .msi installer and follow the wizard.
  3. Start Revit and open a project.
  4. Find the ArchPlug tab on the Revit ribbon — Auto Lintel Beams is launched from there.

No additional configuration is required. Your settings are stored per Windows user and survive plugin updates.

User Interface Walkthrough

The plugin has a single window: Lintel Beam Settings.

Window behavior

Main settings (top section)

Control What it does
Default beam type: Dropdown listing every Structural Framing type loaded in the project, in the format Family : Type, sorted alphabetically. This type is used for all lintels unless a wall-type override applies.
Extra width each side - windows (unit): Bearing extension added to each side of a window opening. A 100-wide window with 20 extra gives a 140-long beam. Default: 20.
Extra width each side - doors (unit): Same as above, for doors. Default: 20.
Raise above opening - windows (unit): Vertical gap between the top of a window opening and the underside of its beam. Default: 0 (beam sits directly on top of the opening).
Raise above opening - doors (unit): Same as above, for doors. Default: 0.

The (unit) shown in each label follows your project's length display unit — mm, cm, dm, m, in, or ft. Enter values in that unit. Both . and , are accepted as the decimal separator. Negative raise values are allowed (they lower the beam relative to the opening top).

Special types (override default by wall type)

Below the numeric fields, the section headed Special types (override default by wall type): contains a table with two dropdown columns:

Column What it does
Special wall type Pick a wall type from the project (all wall types are listed alphabetically).
Beam type Pick the Structural Framing type (Family : Type) to use for every opening hosted in a wall of that type.

Any door or window hosted in a wall whose type name matches a row here receives that row's beam type instead of the default. Overrides apply equally to doors and windows.

Table buttons:

Rows where the chosen beam type no longer exists in the project are skipped at run time (the default type is used for those walls instead).

Footer buttons

Step-by-Step Workflow

  1. Make sure a suitable beam (Structural Framing) family is loaded in your project. If none is present, the plugin will tell you: "No Structural Framing families found in the model. Please load a beam family first."
  2. Launch Auto Lintel Beams from the ArchPlug ribbon tab. The Lintel Beam Settings window opens.
  3. Select your Default beam type.
  4. Enter the Extra width each side values for windows and doors (the bearing length on each side of the opening).
  5. Enter the Raise above opening values if you want a gap between the opening top and the beam (leave 0 to seat the beam directly on the opening).
  6. (Optional) Add wall-type overrides: click ADD ROW, pick a Special wall type and its Beam type. Repeat for each wall type that needs a different lintel.
  7. (Optional) Click SAVE TEMPLATE to store these settings for reuse, or IMPORT TEMPLATE to load office-standard settings.
  8. Click RUN. The plugin processes every door and window in the model in one Revit transaction.
  9. Inspect the result in a 3D view or section. Use Hide all beams / Unhide all beams to control their visibility in the active view while you work.
  10. Whenever openings change — moved, resized, added, deleted, or re-hosted — simply click RUN again. Beams are updated in place, recreated at new positions, created for new openings, and deleted for removed openings.
  11. Close the window with X or Esc when done. All settings, plus window position and size, are remembered for next time.

One click of Revit's Undo reverses an entire run (all created, updated, and deleted beams), because everything happens in a single transaction named "Create or update lintel beams".

Feature Reference

Opening detection

Opening width measurement

For each opening, the width is determined in this order:

  1. Standard width parameters on the instance (Width / door width / window width, plus common names such as Width, b, B).
  2. The same parameters on the opening's type.
  3. Fallback: the opening's bounding box projected onto the wall direction — so even families without a conventional Width parameter get a correctly sized beam.

Openings measuring 10 cm or less are considered invalid and are skipped, as are openings whose geometry cannot be resolved.

Beam placement geometry

Height-aware vertical justification

The plugin reads the beam type's section height from standard structural section parameters or common names (h, H, d, D, Height, Section Height, Beam Height):

In both cases the beam's Z Offset is set to 0, so manual offsets never accumulate.

Wall-type overrides (Special types)

Smart update — no duplicates, ever

Every beam the plugin creates is tagged in its Comments parameter with an identifier of the form ARCHPLUG_LB:<opening id> linking it to its opening. On each run:

Important: do not edit or clear the ARCHPLUG_LB: text in a plugin-created beam's Comments parameter. That tag is how the plugin recognizes its own beams; without it, the beam will no longer be updated or cleaned up (and a duplicate may be created on the next run).

Marks and legacy compatibility

Hide / Unhide in the active view

Templates

Settings persistence

Quiet, non-interruptive execution

Project units

All numeric fields are interpreted in your project's length display unit, and the field labels show which unit that is. Switching the project's units changes the labels and interpretation accordingly on the next launch.

Tips & Best Practices

Troubleshooting & FAQ

"No Structural Framing families found in the model. Please load a beam family first." The project has no beam families. Load any Structural Framing family (Insert → Load Family, or from your template), then relaunch the tool.

"No doors or windows found in the model." The model contains no door or window family instances. Note that openings modeled as wall openings, generic models, or in linked files are not detected — only elements in the Doors and Windows categories of the current model.

"Default beam type not found: …" The saved/selected beam type no longer exists in the project (it was deleted or renamed). Re-open the dropdown and pick a valid type, then RUN again.

"Extra width - windows must be a number." (or the equivalent for the other fields) The highlighted field contains non-numeric text. Enter a plain number; both . and , decimals are accepted.

Some openings did not get a beam. An opening is skipped when its level cannot be determined, its width cannot be measured, its width is 10 cm or less, or its direction/top elevation cannot be resolved (unusual custom families). Check that the family is wall-hosted and has sensible geometry or a Width parameter.

Beams appear at the wrong height (e.g., centered on the opening top instead of sitting on it). The beam type's section height could not be read, so bottom justification was used — which still aligns the underside — or your family's geometry is not symmetric about its axis. Prefer families whose section height is stored in a standard structural section parameter or a parameter named h, Height, or similar.

I moved a door and the beam didn't follow. Beams update only when you press RUN — the plugin does not monitor the model live. Run it again after changes.

I get duplicate beams above one opening. This can only happen if the plugin's tag was removed from a beam's Comments, or the beam was copied manually. Run the tool once — it deletes surplus tagged beams itself; untagged manual copies must be deleted by hand.

"Hide all beams" seems to do nothing. Hide/Unhide affects only the active view, and only beams the view allows to be hidden (visible category, not already hidden, view supports hiding). Also, beams are only recognized if their Comments tag is intact.

The window opened off-screen or oddly sized after changing monitors. The plugin validates the saved position and re-centers if it would be invisible, and corrects sizing when moving between monitors with different DPI scaling. If it ever looks wrong, close and reopen the window.

"Lintel Beams - Save failed" appears once. Windows blocked writing the settings file (shown in the message, under your user's local application data). Your inputs still work for the session; check folder permissions or antivirus if it persists.

Does it work on openings in linked models? No. Only doors and windows in the active model are processed.

Does it place lintels over plain wall openings (Opening by Face / Wall Opening)? No. Detection is based on the Doors and Windows categories.

Can I undo a run? Yes — one Revit Undo step reverses the entire run (creation, updates, and deletions).

ArchPlug — Revit plugins for architects. archplug.com · All plugin guides · Privacy · Terms

All plugins include a 7-day free trial — no credit card required.