This tool is free — it keeps working whether or not AECOtools is licensed, so this page carries its complete guide rather than a summary.
What it does
Sheet Generator shows every view in your model that isn't on a sheet yet, and every schedule. You build sheet cards — each card is one sheet with a number, a name and the views and schedules you drag onto it — either one at a time or by pasting / loading a sheet list. Click Generate Sheets and the tool creates every sheet with the title block you chose, puts the schedules down the left of the sheet, places the views across the rest, and applies your preferred viewport type for each view type.
Before you start
- Revit 2024–2027. Sheet Generator is a free tool — it works even when AECOtools is unlicensed.
- A project must be open and active.
- At least one title block family must be loaded in the project. Without one the tool stops with "No title blocks found."
- Only views that are not already on a sheet (and aren't view templates) are listed. Views already placed elsewhere won't appear — except legends, which can go on any number of sheets and are always listed.
- Schedules have their own list. A schedule can go on any number of sheets, so every schedule is listed — even one that is already on a sheet. Schedule templates, and the schedules Revit keeps for itself (a title block's revision schedule), aren't listed because Revit won't place them.
Quick start
- On the Sheets & Views panel, click Sheet Generator.
- Pick the Title Block at the bottom left.
- Type a sheet number and name into the first card — or click Add Cards to paste or load a whole sheet list.
- Drag views from the Views list, and schedules from the Schedules list, onto the grey area of each card. Use Filter to find them quickly.
- Optional: click Viewport Defaults to choose which viewport type each view type gets.
- Click Generate Sheets. If any card won't be made as typed you're told first (see Checked before anything is made). A summary lists every sheet created, and every card or view that wasn't, with why.
The window
Left side — views, schedules and title block
| Control | What it does |
|---|---|
| Filter | Narrows the Views and Schedules lists as you type. Not case-sensitive; separate words with spaces and an item must contain all of them (e.g. floor level 2). |
| Views | Every view not yet on a sheet, plus every legend, shown as [ViewType] View Name, e.g. [FloorPlan] Level 1. Drag from here onto a card. |
| Schedules | Every schedule that can go on a sheet (schedules, quantities, material takeoffs, sheet and view lists, note blocks, key schedules), by name. Drag from here onto a card. On a card a schedule shows as [Schedule] Name. |
| Title Block | The title block used for every sheet created in this run, shown as [Family] Type. The list is alphabetical and the last entry is selected when the window opens — check it before generating. |
Right side — sheet cards
- Each card has a sheet number box, a sheet name box, a grey drop area for views and schedules (it grows as you add more), and a ✕ (Remove card) button.
- The window opens with one blank card showing the placeholders
SheetNumberandSheetName. Overtype them. - The + tile at the end of the grid adds a new card. See Numbering and naming rules for how it fills the new card in.
Drag and drop
| Action | Result |
|---|---|
| Drag a view from Views onto a card's grey area | The view is added to that card and disappears from the Views list, so it can't be used twice. |
| Drag a schedule from Schedules onto a card's grey area | The schedule is added to that card and stays in the Schedules list, so you can drop it on other cards too. |
| Drag a view or schedule from one card to another card | It moves to the other card. |
| Drag a view or schedule from a card back onto the Views or Schedules list | It is removed from the card (a view reappears in the Views list). |
| Right-click a view or schedule on a card | Same as above — removes it from the card. |
| Click ✕ on a card | Removes the card; its views go back to the Views list. |
Legends and schedules can go on any number of sheets: they stay in their list after you drop them, so you can put the same legend or schedule on as many cards as you like — but only once per card.
Buttons
| Button | What it does |
|---|---|
| Viewport Defaults | Choose a viewport type per view type. See Viewport defaults. |
| Add Cards | Add many cards at once by pasting or loading a sheet list. See Importing a sheet list. |
| Cancel | Closes the window without creating anything. Esc does the same. |
| Generate Sheets | Checks the cards, then creates the sheets and closes the window. |
| ? | Opens this guide. |
Pressing Enter in a card's number or name box doesn't generate anything — only clicking Generate Sheets does. Cards are not saved between runs — closing the window discards them.
Checked before anything is made
When you click Generate Sheets the cards are checked first. If any won't be made as typed, a message lists them — These cards won't be made as typed — and asks Generate the other cards anyway? No takes you back to the cards to fix them. It flags:
- a number that is already a sheet in this model (compared ignoring upper and lower case, as Revit does);
- a number that is on more than one card;
- a card that holds views or schedules but has no sheet number;
- characters Revit doesn't allow in a sheet number or name (
\ : { } [ ] | ; < > ? ` ~) — those are removed, and the message shows what the number will become; - a schedule on a card that no longer exists (deleted since the window opened) — it will be left off, and the sheet is still made;
- a schedule that is split into parts (Revit's Split Schedule Table) — every part will be placed, side by side.
Importing a sheet list
Add Cards opens the Add Sheet Cards window. Paste rows into the big text box — one sheet per line, with the sheet number and sheet name separated by a Tab or a comma — then click Add Cards. New cards are added after your existing ones.
Copying two columns straight out of Excel and pasting works, because Excel copies cells as Tab-separated text.
Row format
| Position | Meaning |
|---|---|
| Before the first Tab (or, if there's no Tab, the first comma) | Sheet number — or a range / list of numbers (below) |
| Everything after it (up to the next Tab) | Sheet name. If blank, the name is Unnamed. |
| After a second Tab (optional) | Schedules to put on the card, by name. Several can go in one column separated by ;, or in further Tab-separated columns. |
Blank lines are ignored. A row with a name but no number (it starts with a Tab or a comma) still becomes a card, showing the SheetNumber placeholder so you can fill the number in.
Schedules in the sheet list
Example (⇥ is a Tab): A601⇥Door and Window Schedules⇥Door Schedule;Window Schedule makes card A601 holding both schedules. A range row (A601--A603) puts the schedules on every card it makes.
- Names must match a schedule in the Schedules list exactly, including upper and lower case and spaces.
- A name that matches nothing isn't added. After the cards are added, a message — N schedule names match nothing. — lists each one with its card, so you can drag the right schedule on by hand.
- Only Tab-separated rows can carry schedules. In a comma-separated row everything after the first comma is the sheet name.
- Views can't be named in the list — drag them onto the cards.
Ranges and lists — many sheets from one line
| You type (number part) | Cards created |
|---|---|
A101 | One card: A101 |
A101--A104, A101::A104 or A101:A104 | Four cards: A101, A102, A103, A104 — all with the same name. Leading zeros are kept (A01--A03 → A01, A02, A03), and numbers are padded to the longer end (A1--A10 → A01 … A10). A backwards range (A104--A101) counts down. |
A101,A102 or A101;A102 | Two cards: A101 and A102 — same name. |
A range only expands when both ends share the same prefix (A101--A104). With different prefixes (A101--B104) you get just the two cards A101 and B104. One range makes at most 500 cards: a slip like A1--A100000 stops at 500, and a Range shortened. message says so.
Comma lists need Tab separators. If your line uses a comma to separate number and name, the first comma is taken as that separator, so A101,A102,Section makes one card A101 named A102,Section. Use a Tab (A101,A102⇥Section) or semicolons (A101;A102,Section).
Loading from a file
| Button | What it reads |
|---|---|
| Load .txt File… | A plain-text file, using the same row format as pasting. The file picker also has an All files option, so a simple comma-separated .csv can be loaded this way. A header row is not skipped — delete it first, or it becomes a card. |
| Load .xlsx File… | The first worksheet of an Excel workbook: column A = sheet number, column B = sheet name, and optionally column C onward = schedule names (one per cell, or several in a cell separated by ;). Cells are read as Excel shows them, so a number formatted as 001 stays 001. Empty rows are skipped. |
A header row on the xlsx is skipped automatically when column A and column B read:
| Column A (any of) | Column B (any of) |
|---|---|
Number, Sheet Number, No, No. | Name, Sheet Name, Title |
Loading a file replaces whatever is in the text box. The rows appear in the box first, so you can check and edit them before clicking Add Cards. Ranges and lists in column A expand as described above.
Numbering and naming rules
- The + tile copies the last card and adds 1 to the number at the end:
A09→A10(width kept). If the name also ends in a number it goes up too (Level 1→Level 2); otherwise the name is copied as-is. If the last card still shows theSheetNumberplaceholder, the new card is blank as well. - Blank cards are skipped. A card whose number is empty or still reads
SheetNumberis not created — and if it holds views, the summary says how many weren't placed. - Blank names (or the
SheetNameplaceholder) becomeUnnamed. - Numbers already used are never changed into something else. A card whose number is already a sheet in the model — or already taken by an earlier card in the same run — is not made, and is listed under Not made so you can renumber it. Nothing gets a
*or a-2added. - Characters Revit doesn't allow (
\ : { } [ ] | ; < > ? ` ~) are removed from numbers and names, and the summary lists any number that changed —A{101}becomesA101.
Viewport defaults
Viewport Defaults lists every View Type used by views in this project, each with a Viewport Type dropdown.
- Choose the viewport type to apply whenever a view of that type is placed on a sheet.
(use Revit default)leaves Revit's normal viewport type for that view type.- Apply saves the choices into the project straight away; Cancel discards your changes.
These rules are shared with Auto Views on Sheets — set them once in either tool and both use them, including next time you open the model.
Results and undo
- One sheet per card, using the chosen title block, with the card's number and name.
- The card's schedules go first, in the order they appear on the card: the first at the top-left of the title block (just inside its edge), each next one below the last. When a stack would run past the bottom of the title block, a new column starts to its right. A split schedule's parts are placed side by side.
- The card's views are placed as viewports, spread evenly inside the title block — or, when the card has schedules, across the part of it to the right of the schedules (with a small margin): 1 view centred, 2 side by side, 3 as two-over-one, 4 as a 2×2 grid, and so on — first row at the top, each row centred. Views are placed in the order they appear on the card. A view that would still overlap the schedules is moved right, clear of them. Treat this as a starting layout; tidy it up afterwards.
- A view Revit won't put on the sheet is left off and listed under Views not placed with the reason — already on another sheet (named), or a view Revit can't place, such as an empty one. The sheet is still created.
- A schedule that can't be placed — deleted since you added it to the card, or refused by Revit — is left off and listed under Schedules not placed with the reason. The sheet is still created.
- Your Viewport Defaults are applied as each view is placed. If a chosen viewport type has since been deleted, Revit's default is used and the summary says so.
- Each card is made on its own: if Revit refuses one part-way, that card is removed again and listed under Not made, and the rest still go.
- When it finishes, a summary shows "Created N sheets.", each sheet with its view count (and schedule count), Total viewports placed, Total schedules placed when there are any, then any Not made, Views not placed, Schedules not placed and Notes.
| Undo list entry | What it undoes |
|---|---|
Sheet Generator | All sheets, viewports and schedules from the run — one Undo removes the lot. |
Save Viewport Defaults | The viewport-type rules saved by Apply in Viewport Defaults. |
Where things live
The project (.rvt) | Viewport Defaults rules, stored inside the model and shared with Auto Views on Sheets. |
| Nowhere | Sheet cards and the Filter — they last only while the window is open. |
Troubleshooting
| Symptom | Fix |
|---|---|
| "No active model is open." | Open a Revit project first, then run the tool. |
| "No title blocks found." | Load a title block family (Insert ▸ Load Family), then run the tool again. |
| A view I need isn't in the Views list | It's already on a sheet, it's a view template, or it's already on one of your cards. Clear the Filter box and check the cards. |
| "No cards to generate." | Every card was removed. Add a card with the + tile or Add Cards. |
| "These cards won't be made as typed:" | The check before generating found a clash or a character Revit refuses (see Checked before anything is made). Click No to fix the cards, or Yes to make the rest now. |
| "… is already a sheet in this model." | That number is taken, so the card isn't made. Give the card a new number, or renumber the existing sheet first. |
| "… is on more than one card." | Two cards share a number; only the first is made. Change one of them. |
| "Card N holds … view(s) but has no sheet number." (or "… schedule(s) …") | That card still shows the SheetNumber placeholder or is blank. Give it a number, or its views and schedules aren't placed. |
| A schedule I need isn't in the Schedules list | Clear the Filter box. Schedule templates and a title block's own revision schedule aren't listed — Revit won't put them on a sheet. A schedule created after the window opened appears the next time you run the tool. |
| "… a schedule on this card no longer exists - it will be left off." | The schedule was deleted after you added it to the card. The sheet is still made without it; remove it from the card to stop the message. |
| "… is split into N parts - every part will be placed, side by side." | The schedule is split (Revit's Split Schedule Table), so all its parts go on the sheet next to each other. Tidy them afterwards, or join the parts in Revit first if you want it in one piece. |
| "N schedule names match nothing." | A name in the pasted or loaded sheet list isn't a schedule in the Schedules list. Names must match exactly (upper and lower case count). Fix the name and add the cards again, or drag the schedule onto the card. |
| A schedule is listed under "Schedules not placed" | The reason is on the same line — usually that it was deleted, or Revit's own message when it refused it. |
| "… runs past the right of the title block" / "… was moved clear of the schedules and now runs past the title block" | The card has more (or wider) schedules and views than fit side by side on that title block. Move them into place, put some on another card, or use a larger title block. |
| "Created 0 sheets." | No card could be made — the Not made list says why for each (no number, or a number already in the model). Fix those cards and run it again. |
| "Range shortened." | One range would have made more than 500 cards, so only the first 500 were added. Check the range for a typo. |
| A card created a sheet called "Number" / "Name" | The loaded .txt file had a header row. Delete it from the text box before clicking Add Cards. |
Wrong sheets from a comma list (e.g. one card named A102,Section) | Separate number and name with a Tab, or list the numbers with semicolons. |
| "Could not read file." / "Could not read xlsx." | The file couldn't be opened — check it isn't open in another program and is a real .txt / .xlsx, then load it again. Or copy the cells and paste them instead. |
| "The title block has no size Revit can read, so views and schedules are placed at the sheet origin - move them into place." | The viewports are stacked on top of each other at the sheet origin (schedules are stacked down from it). Move them into place by hand, or use a different title block. |
| A view is listed under "Views not placed" | The reason is on the same line: it is already on another sheet (which is named), or it's a view Revit won't put on a sheet, such as an empty one. |
| Viewport Defaults says "No view types are currently used in this project." | There are no views in the model yet — create some views first. |
| "No sheets were made." / "Revit undid the whole run, so no sheets were made:" | Revit refused the run as a whole, so nothing was kept. Its reasons are listed underneath. |
| "Sheet Generator failed." | Something unexpected stopped the run and nothing was created (it was rolled back). The message underneath gives the reason — Report this issue to AECOtech sends it to us. |
Anything else
- In Revit: this same guide opens from the ? button in the tool's window.
- Stuck? Use AECOtools ▸ Support ▸ Report Issue to send us the details.
- Not using AECOtools yet? Start a 30-day free trial.
- Questions: get in touch.