Home / Guides / Inlay
Data panelInlay

Your Excel table, drawn in Revit — and it knows when Excel moves on.

Inlay takes a range from any modern workbook and draws it in a drafting view or a legend as real Revit geometry — filled regions, text notes and detail lines, cell for cell, with the fonts, fills, merges and borders intact. Not an image, not an OLE object: it prints exactly as it displays. The link lives inside the model, so the whole team sees it; press Refresh and Inlay tells you — by content, not by file date — which tables Excel has left behind, and one click redraws them in the same view, at the same anchor.

Revit 2024–2027Any .xlsx or .xlsm — no Excel neededReal geometry, not a pictureOne transaction, one undo
Video guideComing soon on BIMIO’s YouTube
Why Inlay exists

Tables on sheets age in silence.

Every project carries Excel tables that must appear on sheets — finishes schedules, area summaries, code legends. The usual routes are a pasted image that blurs at print, or a retyped table nobody dares touch. Either way, when the workbook changes, the sheet doesn't — and nothing tells you.

Pasted or retyped
  • A screenshot or OLE paste that prints soft and ignores the model's graphics.
  • Or an hour of retyping into text notes and lines — per revision.
  • When the workbook changes, the sheet keeps the old numbers, silently.
  • Nobody can tell which drawn table matches which file, sheet or range.
Linked through Inlay
  • Each cell becomes native geometry: filled regions, text notes, detail lines — crisp at any zoom.
  • Fonts, colours, fills, alignment, merged cells, hidden rows: preserved as Excel prints them.
  • Refresh fingerprints the content — a real edit turns the pill amber; a mere re-save doesn't.
  • One click redraws in the same view at the same anchor; the whole draw is one undoable transaction.
  • Links are stored in the model itself, so the whole team sees the same tables with the same statuses.
How Inlay works · input → output

Pick the range. Draw it. Keep it honest.

Inlay has two halves. You link a workbook range and see exactly what will be drawn — that is the input. Then Draw turns it into pinned Revit geometry that Refresh keeps honest — that is the output.

Isolate:
INInput · link a range
The workbook, linkedAny .xlsx or .xlsm — no Excel install needed
Sheet + range, previewed firstDrafting view, legend, or bothFonts, fills, merges, borders
OUTOutput · geometry that stays honest
Up to date · the drawn table still matches the workbook
!Excel pending · a real edit — one click redraws in place
Not drawn · linked, waiting for its first Draw
Source missing · the file moved — Relink keeps views and anchors
pinned geometry in the model — one transaction, one Ctrl+Z

Tap Input or Output to isolate a half — the other collapses.

INThe input · any workbook, any range

Link the range — and see the contract before you sign it.

Inlay reads the workbook file directly — no Excel install, no export ritual — and shows you, cell for cell, exactly what will be drawn before anything is drawn in the model.

Whoever owns the table

The workbook stays where it lives — Inlay only reads it

Link it

Any workbook, any range — no export ritual.

Point Inlay at any .xlsx or .xlsm — it reads the file directly, even while a colleague has it open in Excel. Pick a sheet and the dialog proposes its used range; type your own and it counts the cells as you go, warning past a few thousand and refusing outright past 50,000, because every cell becomes several Revit elements. Then choose the targets: a drafting view Inlay creates for you, a legend that already exists, or both.

New to Revit: a real Excel range linked into Revit — not pasted, not retyped.
Add Excel tableBIMIO
Choose the sheet and range
Finishes Schedule.xlsx
SHEET
Finishes
RANGE
A1:D24
Used range: A1:D24 (24 x 4).
Drafting viewLegend view
A legend must already exist; Revit can’t create legends via API. Drafting views are created automatically.
CancelAdd
See it first

The preview is the contract.

Select a row and the right-hand pane renders exactly what will be drawn — the same fonts, fills, alignments, merged headers and borders, with hidden rows and columns already collapsed, under a summary of sheet, range and size. Formulas arrive as their formatted results, and Excel's “General” alignment is honoured, so numbers land right-aligned exactly as they do on the printed sheet.

New to Revit: seeing the drawn result before any geometry touches the model.
BIMIO · InlayBIMIO
Excel tables in this project
Bring an Excel range into a drafting or legend view, keeping its formatting. Refresh detects edits; a pending pill means the source changed.
+ Add Excel tableRefreshDraw selected
EXCEL SOURCEIN VIEW(S)STATUS
Finishes Schedule.xlsx"Finishes"!A1:D24DraftingLegendNot drawn
Door Codes.xlsx"Codes"!A1:D18DraftingLegendUp to date
Area Summary.xlsm"GIA"!B2:F14DraftingLegendUp to date
Preview (what will be drawn)
Sheet "Finishes" - A1:D24 - 24 x 4
Internal finishes
CodeRoomFloorArea m²
FL-01Main LobbyTerrazzo142.6
FL-02Office 1.04Carpet tile38.2
FL-03Stair coreSealed concrete24.9
Linked. Press Draw to place it.Draw / Update in Revit
Read like print

It reads the workbook the way Excel prints it.

Numbers arrive as their displayed text, so a currency format or two decimal places survives the trip rather than a raw double. Theme colours resolve through the workbook's own theme, tint included, instead of collapsing to black. Excel's General alignment is taken from the cell's type — numbers and dates right, booleans centred, text left. Hidden rows and columns are skipped exactly as printing skips them. And what cannot cross is named plainly: images, charts, and anything Excel paints by conditional-formatting rule, with dashed borders arriving solid.

New to Revit: an Excel read that keeps number formats and theme colours — and admits what it cannot carry.
BIMIO · InlayBIMIO
Preview (what will be drawn)
Sheet "Finishes" - A1:D900 - 900 x 4
In the workbookDrawn in Revit
Internal finishesInternal finishesmerged header, kept merged
CodeCodetheme fill resolved to its shade
142.60142.60General alignment: a number sits right
TerrazzoTerrazzoand its text neighbour sits left
£48.00£48.00number format kept as displayed text
Rate £/m²hidden column, skipped as printing skips it
What cannot crossImages, charts and conditional-format icons do not cross at all, and a dashed border is drawn solid.
Showing first 750 of 900 rows — the full table will be drawn.
Press Draw — and the spreadsheet becomes Revit geometry, cell for cell, pinned in place.

One named transaction — “BIMIO Inlay — Draw” — writes the geometry and the link record together, so a single Ctrl+Z takes back both.

OUTThe output · geometry that stays honest

Real Revit geometry — that admits when it's stale.

What Draw leaves in the model is native, pinned and printable. And because the link record travels inside the model, every status pill tells the whole team the same truth.

The model — and everyone in it

Synchronise, and the team sees the same tables with the same statuses

Real geometry

Filled regions, text notes, detail lines — pinned.

Draw creates a drafting view named after the workbook, at 1:1 — one Excel point equals one millimetre on paper — and reproduces the table as native detail geometry: a filled region per coloured cell, a text note per value, measured and centred against its cell rather than estimated, and one clean detail line per border run, the heavier weight winning where Excel disagrees with itself. In a legend, you click once to place the top-left corner — and that anchor is remembered for good. Every element lands pinned, so a stray nudge gets Revit's warning before it moves anything.

New to Revit: a table that prints crisp on paper, in the model's own line weights.
Inlay - Finishes ScheduleBIMIO
Drafting view · 1 : 1
Internal finishes
CodeRoomFloorArea m²
FL-01Main LobbyTerrazzo142.6
FL-02Office 1.04Carpet tile38.2
FL-03Stair coreSealed concrete24.9
📌
Pinned — Revit warns before a stray nudge
1 pt = 1 mm on paper · one transaction: “BIMIO Inlay — Draw”
Model hygiene

It names everything it creates, and reuses it next time.

Every type Inlay needs is namespaced and reused: one text note type per distinct font, size, weight and colour, one filled region type per fill colour, one Lines subcategory per border weight and colour. Each carries the FJV_Table_ prefix — FJV_Table_L_ for the line styles — so they sort together in the browser and purge together when a table goes. A redraw adopts whatever a previous draw left behind, so refreshing the same table twenty times adds nothing to the type list.

New to Revit: a linked table that does not grow your type list every time you refresh.
BIMIO · InlayBIMIO
Text note types3
FJV_Table_Calibri_11.0__000000reused
FJV_Table_Calibri_11.0_B_FFFFFF
FJV_Table_Calibri_9.0_I_595959
Filled region types3
FJV_Table_fill_1F3864reused
FJV_Table_fill_D9E2F3
FJV_Table_fill_F2F2F2
Lines subcategories3
FJV_Table_L_2_000000reused
FJV_Table_L_4_1F3864
FJV_Table_L_6_000000
After the first draw3 text · 3 fill · 3 lineAfter the twentieth redraw3 text · 3 fill · 3 lineLink registerFJV_Table_State — one element, all eleven links
✓ Drawn successfully.
It stays honest

Refresh tells a real edit from a re-save.

Refresh checks every linked file. Untouched size and date? Up to date, without even opening the workbook. Changed? Inlay re-reads the range and compares a fingerprint of content and formatting against what it drew — so a colleague saving the file unchanged raises no alarm, and a genuine edit turns the pill amber: Excel pending. Update all pending redraws every stale table in its own view, at its own anchor. And the pills never flatter: a deleted view says Missing in model, a locked file says Can't read, a moved file says Source missing — with Relink to point at the new path, keeping views and anchors.

New to Revit: a sheet that tells you when Excel has moved on — instead of aging in silence.
BIMIO · InlayBIMIO
Excel tables in this project
Bring an Excel range into a drafting or legend view, keeping its formatting. Refresh detects edits; a pending pill means the source changed.
+ Add Excel tableRefreshDraw selectedUpdate all pending
EXCEL SOURCEIN VIEW(S)STATUS
Finishes Schedule.xlsx"Finishes"!A1:D24DraftingLegendExcel pending
Door Codes.xlsx"Codes"!A1:D18DraftingLegendExcel pending
Area Summary.xlsm"GIA"!B2:F14DraftingLegendUp to date
Fire Ratings.xlsx"FR"!A1:C30DraftingLegendSource missing
Preview (what will be drawn)
Sheet "Finishes" - A1:D24 - 24 x 4
Internal finishes
CodeRoomFloorArea m²
FL-01Main LobbyTerrazzo142.6
FL-02Office 1.04Carpet tile38.2
FL-03Stair coreSealed concrete24.9
2 table(s) have pending Excel changes.Draw / Update in Revit
Twenty tables

A project full of tables refreshes without locking the model.

The heavy part — parsing workbooks — never runs on Revit's thread. Opening the panel reads only cheap model facts and hands the parsing to the background with a progress bar; a drifted workbook is fingerprinted once per file version, not once per Refresh. Tick any subset and Draw selected works through them in turn. The summary counts honestly — updated, failed, and which rows to look at — and a failed draw is never rounded up to a green pill.

New to Revit: a linked-table panel that reads twenty workbooks without freezing Revit.
BIMIO · InlayBIMIO
Excel tables in this project
Bring an Excel range into a drafting or legend view, keeping its formatting. Refresh detects edits; a pending pill means the source changed.
+ Add Excel tableRefreshDraw selected
EXCEL SOURCEIN VIEW(S)STATUS
Preview (what will be drawn)
Draw / Update in Revit
Team-proof

The links live in the model, not in your profile.

Every link — file, sheet, range, targets, anchors, drawn elements — is stored inside the Revit model itself. Synchronise, and the whole team opens Inlay to the same list with the same statuses; it survives Save As, detach and eTransmit, and the model being moved to another folder. And Inlay would rather stop than guess: with worksets closed it refuses to save state it cannot verify — the refusal lands in the status bar, in its own words — instead of quietly forking the team's table links.

New to Revit: an Excel link the whole team shares — not a path in one person's profile.
BIMIO · InlayBIMIO
Excel tables in this project
Bring an Excel range into a drafting or legend view, keeping its formatting. Refresh detects edits; a pending pill means the source changed.
+ Add Excel tableRefreshDraw selected
EXCEL SOURCEIN VIEW(S)STATUS
Finishes Schedule.xlsx"Finishes"!A1:D24DraftingLegendUp to date
Door Codes.xlsx"Codes"!A1:D18DraftingLegendUp to date
Area Summary.xlsm"GIA"!B2:F14DraftingLegendUp to date
Preview (what will be drawn)
Sheet "Finishes" - A1:D24 - 24 x 4
Internal finishes
CodeRoomFloorArea m²
FL-01Main LobbyTerrazzo142.6
FL-02Office 1.04Carpet tile38.2
FL-03Stair coreSealed concrete24.9
Add failed: Inlay could not save the link state: this project has closed worksets (or the state could not be read), so it cannot tell whether the state already exists somewhere it cannot see. Open all worksets and try again — creating a second store here would hide the team's existing table links.Draw / Update in Revit
Seen from outside

The suite Dashboard knows about your tables before you open Inlay.

Inlay files a tile into BIMIO's Dashboard, headlined by the worst thing it finds and backed by four figures: linked tables, how many need refreshing, broken sources or ones not drawn yet, and how long ago anything was last drawn. It reaches that verdict cheaply — file existence, size and timestamp, plus a handful of element probes — without opening a single workbook. Broken outranks stale, because a missing source is not one refresh away from being fixed.

New to Revit: a stale-table warning that reaches you without opening the app that owns it.
BIMIO · HubBIMIO
InlayExcel tables drawn in views
5

5 tables need attention: 3 to refresh from Excel, 2 not drawn yet.

Linked tables11
Needing refresh3
Not drawn yet2
Last drawn2 hours ago
All clearAll 11 linked tables are up to date with Excel.
Nothing linked yetNo Excel tables linked in this project.

Stop pasting screenshots of spreadsheets.

Inlay ships on the Data panel of the BIMIO tab. Link the range, draw it once, and let Refresh tell you — honestly — when Excel has moved on. Revit 2024–2027, full trial, no card.

← PreviousNest