Keep one spreadsheet listing every drawing in the job and what its title block should say. SHEETFILL makes the current drawing find its own row and update itself. Run it on every drawing and the whole set is consistent with the register — which is the only way a drawing list and a set of sheets ever stay in step.
What SheetFill does
The CSV format. The first row is headings, and every heading after the fixed columns is an attribute tag. Each subsequent row is one drawing:
DWG Layout TITLE REV DATE
A-101 Sheet 1 GROUND FLOOR C 2026-08-01
A-101 Sheet 2 FIRST FLOOR C 2026-08-01
A-102 Sheet 1 SECTIONS B 2026-07-22
Column one is the drawing name, with or without its extension. The optional Layout and Block Name columns follow it — two rows for one drawing, as above, let each layout carry different information.
How to use it
- Load the routine with
APPLOAD, or put it on your support file search path. - Set
SheetFill:BlockFilterto your title block name — see the warning below. - Set
SheetFill:CsvPathto a fixed location, or leave itnilto be prompted. - Set
SheetFill:HasLayoutandSheetFill:HasBlockNameto match your CSV’s columns. - Type
SHEETFILL.
How it works
The drawing matches itself to a row by name, then writes each remaining column into the attribute whose tag matches that column’s heading. Nothing has to be mapped — the heading is the tag.
Running it automatically. Load the file from acaddoc.lsp with SheetFill:AutoRun set and every drawing updates itself as it opens.
That autorun is conditional on a fixed CSV path being configured, and deliberately so. Without a path, opening any drawing at all would pop a file dialog — which is what the original’s unconditional autorun did. Making it conditional is the difference between a useful automation and one you disable within a day.
Notes and limits
- Without a block filter this updates every attributed block whose tags match a CSV heading — not only title blocks. If your drawings use a tag like
REVon other blocks too, setSheetFill:BlockFilterto something like"*BORDER"first. - Autorun needs a fixed CSV path. It is skipped otherwise, on purpose.
- Two rows with the same drawing name and different Layout values is how one drawing carries different data per sheet.
- The drawing name may include the extension or not. Both match.
Download and details
| Name | SheetFill — fill title block attributes from a CSV, matched on drawing name |
| Download | SheetFill.lsp — 18.8 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Command | SHEETFILL |
| Requires | the ActiveX layer (loaded automatically by the routine with vl-load-com). |
| Source size | 18.8 KB, 447 lines |
| Error handling | Yes — a *error* handler restores every system variable it changed, on cancel as well as on error. |
| Undo | The whole operation is wrapped in a single undo group, so one U reverses all of it. |
| Compatibility | AutoCAD (any release with AutoLISP), BricsCAD, ZWCAD, GstarCAD, ProgeCAD and other IntelliCAD-based platforms. AutoCAD LT needs a LISP enabler. No .NET, no ObjectARX, no installer. |
| Author | YZ, August 2026 |
| Licence | Free to use, supplied “as is” with no warranty. |
References
- ATTPULL and ATTPUSH LISP — build the CSV from the drawings, or push values back
- SHEETNUMBER LISP — renumber the layouts the register refers to
- Title block standards — what the fields you are filling are actually for
- More free AutoLISP routines on this site
- Wisey’s Steel Shapes — free structural steel section drawing program