Overview
Inlay brings a range from an Excel sheet into your Revit model and draws it as a real table in a drafting view or a legend. It is not an image or an OLE object: each cell is reproduced with native Revit geometry (filled regions for backgrounds, text notes for contents and detail lines for borders), so the table prints and displays exactly the same as it does in the project views.
The link to the Excel file is remembered inside the model itself. When someone edits the Excel file, you click Refresh and the affected table is marked as pending; with one click you redraw it with the new content, in the same place and in the same view, without setting anything up again.
Inlay preserves the essentials of the Excel formatting: font (name, size, bold, italic, underline and colour), cell fill colour, horizontal and vertical alignment, text wrapping, borders with their thickness and colour, merged cells, and column widths and row heights. Rows and columns hidden in Excel are not drawn, just as when printing the sheet.
Who it's for
Architects and BIM managers who maintain finishes schedules, area tables, code legends or any supporting table in Excel, and need to show them on Revit sheets without retyping them or pasting images that age badly.
Requirements
- Revit 2022 to 2026 with the BIMIO suite installed (Inlay loads from the BIMIO tab).
- A project document open in Revit.
- The Excel file in .xlsx or .xlsm format (the old .xls format is not supported). You do not need Excel installed: Inlay reads the file directly, even if it is open in Excel at the time.
- To draw in a legend, the legend must already exist in the project: Revit does not allow legends to be created programmatically.
Where to find it
The window is called BIMIO · Inlay. It is modeless: you can keep working in Revit while it is open, and if you click the button again the existing window is focused (restored if it was minimised) instead of opening another one.
Key concepts 8 terms
- Table link
- The record that ties a specific Excel range (file + sheet + range) to what has been drawn in Revit. It is stored inside the model, so it travels with worksharing synchronisation, with Save As and with eTransmit, and the whole team sees the same links.
- Range
- The area of the sheet that is drawn, in Excel notation such as A1:G24. When you choose the sheet, Inlay automatically proposes that sheet's used range.
- Drafting view
- An annotation-only view where Inlay can draw the table. If none exists, Inlay automatically creates one named Inlay - <Excel file name> at 1:1 scale.
- Legend
- The other possible target. As Revit does not allow legends to be created via the API, Inlay draws in a legend that already exists; if the legend is active when you draw, you are asked to mark the anchor point with a click.
- Anchor
- The point in the view where the top-left corner of the table is placed. It is stored with the link and reused on every update, so the table never jumps position and you are never asked where to place it again.
- Status (pill)
- The colour indicator on each row: Up to date (the Excel file matches what is drawn), Excel pending (the Excel file changed since the last draw), Not drawn (linked but not yet drawn), Source missing (the file is not at its path), Can't read (the file exists but cannot be read right now) and Missing in model (the view or the drawn elements were deleted in Revit).
- Fingerprint
- A digest of the range's content and formatting that Inlay computes when drawing. On each Refresh, the current fingerprint of the Excel file is compared with the stored one: if they differ, the table is marked as Excel pending. This detects real edits, not just changes to the file date.
- Pinned elements
- Everything Inlay draws is pinned with Revit's pin. If someone tries to move or delete a cell by hand, Revit warns them first: the table is protected against accidental tampering.
The interface
The window is split into two halves separated by an adjustable divider. On the left is the list of Excel tables linked to the project, with its toolbar; on the right, the preview of the selected table and the main draw button.
Each row in the list is a link: it shows the Excel file name, the sheet+range reference in monospaced type, the target tick boxes (Drafting and Legend) and the status pill. When you hover over a row, the pill fades out and that row's quick actions appear: Draw, Remove and, if the file has gone missing, Relink.

Step-by-step workflows 8 workflows
1Link an Excel range to the project
6 steps
Goal. Register an Excel file, sheet and range as a linked table, ready to be drawn.
- Click + Add Excel table on the toolbar (or in the empty state if there are no tables yet).The standard Windows file dialog opens, filtered to .xlsx and .xlsm.
- Select the Excel file and confirm.The file can be open in Excel at the time; Inlay reads it anyway.
- In the Add Excel table dialog, choose the sheet from the SHEET drop-down.When you choose a sheet, the RANGE field is filled in automatically with that sheet's used range (for example A1:G24) and a note shows its size. If the sheet is empty, the field is filled with A1:E10 as a starting point and the note warns you that the sheet appears to be empty, so that you can type the correct range yourself.
assets/shots/inlay/fig-03.pngThe Add Excel table dialog with the sheet drop-down open, the proposed range in the RANGE field and the Used range note below. - Adjust the range in the RANGE field if you do not want the proposal.As you type, Inlay shows how many cells the range covers. From 5,000 cells it warns you that drawing will create a large number of elements; above 50,000 cells the link is blocked and you must narrow the range.
- Tick the target views: Drafting view (ticked by default) and/or Legend view.You must tick at least one. Remember: drafting views are created automatically, but a legend must already exist in the project.
- Click Add.You can also confirm with Enter (Add is the default button) or close without linking with Esc or the Cancel button. The table appears in the list with the Not drawn status, remains selected and its preview loads on the right. The status message reads Linked. Press Draw to place it.
- If the range includes rows or columns hidden in Excel, do not worry: they will be skipped when drawing, just as when printing the sheet.
- You can link several ranges from the same file: each one is an independent link with its own status.
2Draw the table in a drafting view
5 steps
Goal. Turn the linked range into real Revit geometry inside a drafting view.
- Click the table's row to select it and review the preview on the right.The preview shows exactly what will be drawn, with the sheet - range - rows x columns summary above it.
- Check that the row's Drafting tick box is ticked.
- Click Draw / Update in Revit (or the Draw button that appears when you hover over the row).Inlay reads the Excel file again, creates a drafting view named Inlay - <file name> at 1:1 scale and draws the table anchored at the view's origin. Everything happens in a single transaction named BIMIO Inlay — Draw.
assets/shots/inlay/fig-04.pngA newly created drafting view in Revit showing the drawn table with fills, text and borders identical to the Excel file. - Review the result: Revit takes you automatically to the newly created view.The row's status changes to Up to date. If there were warnings (for example, a cell that could not be drawn), the message shows how many and the pill's tooltip lists the details.
- Place the drafting view on whichever sheet you want, like any other view.Later updates reuse that same view, so the table placed on sheets does not shift position.
- The whole draw is a single transaction: a single Ctrl+Z reverts it completely.
- Do not change the drafting view's scale: the table is plotted at a ratio of 1 Excel point = 1 mm on paper on a 1:1 view.
3Draw the table in a legend
5 steps
Goal. Place the table in a legend view, choosing the exact point where it is anchored.
- Create or locate the target legend in Revit if it does not exist yet.Revit does not allow add-ins to create legends, so Inlay needs one that already exists.
- Activate the legend in Revit (make it the open, active view).With the legend active, Inlay will let you mark the anchor with a click. If you draw with no legend active and no previous anchor, Inlay will use the first legend in the project at its origin and will warn you.
- In Inlay, tick the row's Legend tick box and click Draw / Update in Revit.
- When Revit prompts you, click in the legend to mark the table's top-left corner.The Revit prompt reads Pick the top-left anchor for the table in this legend. That point is stored: you are never asked again. If you cancel the pick with Esc, the table is placed at the legend's origin.
assets/shots/inlay/fig-05.pngAn active legend view in Revit with the point-picking cursor and the table about to be placed. - Check the table drawn in the legend.In future updates, Inlay recognises that same legend by its identifier and redraws at the same anchor, even if another view is active.
- The same table can have both tick boxes ticked and be drawn in a drafting view and a legend at the same time.
- If you picked the wrong legend, unticking and re-ticking the box is not enough: the remembered target is kept. To change it, untick Legend, click Draw / Update in Revit (the redraw forgets the previous legend), tick Legend again, activate the correct legend and draw again: Inlay will ask you for a new anchor with a click.
4Detect Excel edits and update (Refresh)
4 steps
Goal. Find out which tables have fallen out of date with their Excel files and bring them up to date.
- Click Refresh on the toolbar.Inlay checks each file: if the date and size have not changed, the table stays Up to date without opening the file. If the file changed, it reads the range, computes its fingerprint and compares it with the one from the last draw.
- Watch the status pills: tables whose content or formatting differs change to Excel pending.The message at the bottom summarises how many tables have pending changes. If the file's date changed but the range is identical, the table remains Up to date: no false alarms.
assets/shots/inlay/fig-06.pngThe table list after a Refresh with two rows marked with the amber Excel pending pill and the Update all pending button visible on the toolbar. - Click Update all pending to redraw all the pending tables at once.This button only appears when there are pending tables. You can also update a single one with its Draw button. The update deletes the previous geometry and redraws it in the same view and at the same anchor.
- Check the final summary in the status bar.It shows how many tables were updated and, if any failed, points you to that row's status for the reason.
- Refresh also detects problems on the Revit side: if someone deleted the view or the drawn elements, the table changes to Missing in model so you know it needs redrawing.
- The check is manual: Inlay does not watch the files in the background. Get into the habit of clicking Refresh when you open the window.
5Update several specific tables at once
3 steps
Goal. Redraw a subset of tables in bulk, whether they are pending or not.
- Tick the box in the first column of each table you want to redraw.
- Click Draw selected on the toolbar.The button is only enabled when at least one row is ticked. The progress bar advances table by table.
- Review the summary: Updated N selected table(s), or the failure count if any could not be drawn.Each row keeps its own status and its tooltip with the warnings.
- It is useful after changing the project's text types or styles: a bulk redraw regenerates every table with the current state of its Excel file.
6Change a table's target views
2 steps
Goal. Decide whether a table is drawn in a drafting view, in a legend or in both.
- In the row's IN VIEW(S) column, tick or untick the Drafting and Legend tick boxes.The change is saved to the model instantly, with no confirmation button.
- Click Draw / Update in Revit to apply the change in the model.Drawing deletes the link's previous geometry and draws only in the ticked targets. If you untick both and try to draw, Inlay warns: No target view selected (Drafting or Legend).
- Bear in mind that removing a target and redrawing removes the table from that target: the redraw is always complete.
7Relink a moved or renamed Excel file (Relink)
4 steps
Goal. Recover a table whose source file is no longer at the stored path.
- Locate the row with the Source missing pill and hover over it.The pill's tooltip shows the path where the file was looked for. On hover, the Relink button appears instead of Draw.
assets/shots/inlay/fig-07.pngA list row with the Source missing pill replaced on hover by the Relink and Remove buttons. - Click Relink and choose the Excel file in its new location.
- In the sheet and range dialog, confirm (or correct) the new file's sheet and range and click Add.It is the same dialog as when linking; it even lets you point to a different sheet or range if the file's structure changed.
- Click Draw to redraw the table from the new source.Relinking keeps the views and anchors already drawn: the table updates in place. The message reminds you: Relinked. Press Draw to update the table.
- Relink is also useful for deliberately redirecting a table to a different file, for example the final version of a schedule that used to be a draft.
8Remove a linked table
3 steps
Goal. Remove the link and delete the drawn geometry from the model.
- Hover over the row and click the red Remove button.
- Read the Remove linked table? confirmation dialog and click Remove & delete to confirm (or Cancel to abort).The warning explains that the link and the drawn elements (fills, text and borders) are deleted. The geometry can be recovered with Ctrl+Z in Revit, but the link record cannot.
assets/shots/inlay/fig-08.pngThe Remove linked table? confirmation dialog with the Remove & delete and Cancel buttons. - Check that the row disappears from the list and the model geometry has been deleted.Deleting the geometry and the record happens in a single transaction named BIMIO Inlay — Remove.
- If you only want to pause updates without losing the drawn table, do not remove it: simply do not click Draw after a Refresh.
Options reference 7 options
| Option | What it does |
|---|---|
| Drafting / Legend (per row, IN VIEW(S) column) | Tick boxes that define which type of view each table is drawn in: drafting view, legend or both. They are saved to the model as soon as you change them and applied on the next draw. |
| SHEET (Add Excel table dialog) | Drop-down with all the sheets in the workbook. When you choose one, the range is filled with its used range and its size is shown. |
| RANGE (Add Excel table dialog) | Text field with the range in A1 notation (for example B2:H40). As you type, the number of cells is shown; from 5,000 a size warning appears and above 50,000 the link is blocked. |
| Drafting view / Legend view (Add Excel table dialog) | The link's initial targets. Drafting view is ticked by default; you must choose at least one of the two. |
| Update all pending (toolbar) | Contextual button that only appears when a link is in Excel pending; it redraws all the pending tables at once. |
| Large table confirmation | If the range exceeds 5,000 cells, clicking Add asks for explicit confirmation (Add anyway) because drawing will create tens of thousands of Revit elements. |
| Removal with geometry deletion | When removing a link, Inlay always deletes the drawn geometry too, after confirmation in the Remove linked table? dialog. |
What you get out
- Detail geometry in Revit: one filled region per cell with a background, one text note per cell with content and detail lines for the borders, all pinned.
- One drafting view per table (when the target is Drafting), named Inlay - <Excel file name>, at 1:1 scale, ready to place on sheets.
- Reusable auxiliary types in the model with the FJV_Table_ prefix (text note types per combination of font, size, style and colour; filled region types per colour, and line styles per border thickness and colour), easy to find and purge.
- The link register stored inside the model (extensible storage, FJV_Table_State element), shared by the whole team in workshared models.