← Back to Resources
GUIDE

Auto-Update Title Blocks: SolidWorks, AutoCAD, Revit, Inventor, NX

One idea, five tools. Link the title block to a model property once, and it fills itself and stays in sync.


One idea, five tools.

By Prasath | ScriptedCAD | https://scriptedcad.com


🚀
Everything I teach about CAD automation with C# and the SolidWorks, AutoCAD and Revit APIs is inside ScriptedCAD. scriptedcad.com

💡
Type your drawing data once as a property on the model, link the title block to it, and the block fills itself and stays in sync. Stop retyping part numbers, revisions, and sheet data across every drawing.

The manual version is the Friday-afternoon nightmare: one field changes and you open 100 sheets to retype it. Every CAD platform below has a built-in way to kill that. The mechanism has a different name in each tool, but the rule is identical: data lives on the model, the title block only displays it.


1. SolidWorks

The rule: type data once as a custom property on the part or assembly, then link the title block note to it instead of typing text. When the property changes, the note follows on rebuild.

  • $PRP points to the drawing's own properties
  • $PRPSHEET points to the model shown in the view
  • Sheet Format file extension: .slddrt

Set it up

  1. Add custom properties on the model. File > Properties > Custom (or Configuration Specific). Add PartNo, Description, Material, DrawnBy, Revision.
  2. Edit the sheet format, not the sheet. In the drawing, right-click > Edit Sheet Format. This is where the title block lines and notes live.
  3. Link each note to a property. Insert a note in the block, then in the Note PropertyManager click Link to Property and choose "Model in view specified in sheet properties" so it reads the referenced part.
  4. Save it back into your template. Save the sheet format (.slddrt), then Save As Drawing Template (.drwdot). Every new drawing inherits self-filling blocks.
$PRPSHEET:"Description"   $PRP:"SW-File Name"   $PRPSHEET:"Material"

Auto-populate? Yes, automatically once the note is linked in the sheet format. API only to build the link or batch-fix legacy drawings:

note.SetTextExpression("$PRPSHEET:Description")
Where data livesWhat links itWhat shows in the block
Part / assembly custom property$PRPSHEET link in noteDescription, material, weight
Drawing document property$PRP link in noteDrawing number, sheet, drawn-by
Model feature (material)SW Material system valueMaterial name, automatic
⚠️
Watch out: title-block tables (MBD) linked with the Equation button often will not refresh until you double-click a cell. Plain linked notes with $PRP / $PRPSHEET update reliably on rebuild (Ctrl+Q).

2. AutoCAD

The rule: Attributes (ATTDEF) are the labelled slots in the block. Fields are the live data you drop into an attribute's default value. Point a field at a drawing property or a Sheet Set property and the slot fills itself.

  • ATTDEF is the slot
  • FIELD is the live value
  • FIELDEVAL = 31 is recommended

Set it up

  1. Store project data as custom properties. DWGPROPS for per-drawing data (Client, Discipline, Phase). Sheet Set Manager properties for set-wide values (Project Name, Project Number) so one source feeds every sheet.
  2. Turn title-block text into attributes. Open the block DWG/DWT, convert static text to attributes with ATTDEF where data should drive the value.
  3. Insert a field into each attribute's default. Right-click > Insert Field. Pick a category: Document (DWGPROPS custom props) or SheetSet (CurrentSheetNumber, SheetTitle, project number).
  4. Sync and bake into the template. Run ATTSYNC after edits so placed blocks pick up the definition. Save as a DWT so new sheets start automated.
FIELDEVAL = 31 (open + save + plot + eTransmit + regen)

Auto-populate? Yes, automatically once the field sits in the ATTDEF. API only to inject the field or refresh:

attRef.TextString  ->  db.UpdateExt()  /  REGEN
Where data livesWhat links itWhat shows in the block
DWGPROPS custom propertyDocument field in attributeClient, discipline, issue date
Sheet Set propertySheetSet fieldProject number, sheet title/number
Geometry (polyline area)Object fieldArea / length, live
⚠️
Watch out: never EXPLODE a block that contains fields, it converts them to static text and kills the automation. If a field shows "####", the source object or referenced property is missing.

3. Revit

The rule: Revit does not link a note to a file property. It maps a label in the title block family to a shared parameter, then hooks that parameter to Project Information. Fill the project info once and every sheet's block reads the same value.

  • Shared parameter is the bridge
  • Label is the display
  • Project Information is the source

Set it up

  1. Create the shared parameters. Manage > Shared Parameters. Make a group (e.g. Title Block Info) and add Text parameters: Client, Drawing Status, Consultant. Shared, so consultants can load the same file.
  2. Add a label in the title block family. Edit the title block family, add a Label, and assign it the shared parameter. The label is the slot that displays the value.
  3. Bind the parameter to Project Information. In the project: Manage > Project Parameters > Add > Shared, then set Category = Project Information for values that are the same on every sheet.
  4. Fill it once. Manage > Project Information. Enter the values. They flow to the block on every sheet at once.
Project Information  ->  Shared Parameter  ->  Label (in family)

Auto-populate? No, this is the exception. The shared parameter must be bound to Project Information first. Only then does the label fill:

doc.ProjectInformation.get_Parameter(guid).Set(value)
Where data livesWhat links itWhat shows in the block
Project InformationProject parameter (shared)Client, project name, status
Sheet propertiesBuilt-in sheet parameterSheet number, sheet name
Instance parameterLabel on familyPer-sheet values e.g. drawn-by
⚠️
Watch out: if a title-block label will not take a value in the project, the shared parameter is not associated with a project parameter yet. Set-wide data belongs on Project Information, not on individual instances.

4. Inventor

The rule: Inventor gives you two ways to fill a block, and the choice matters. Prompted entries ask per sheet and are not searchable in Vault. iProperties live on the model or drawing, carry across all sheets, and are indexable. Map the block to iProperties and it self-fills.

  • iProperties are searchable and carry across sheets
  • Prompted entry is per sheet and not indexed
  • iLogic form gives one entry point

Set it up

  1. Define the iProperties on the model / template. Right-click the file > iProperties > Custom. Add the fields your standard needs. Build them into the part/drawing template so they always exist.
  2. Map title-block field text to iProperties. Edit the title block definition, add Text, and in Format Text choose the Model iProperties or Drawing iProperties source instead of typing. Standard props (Title, Author, Status) map directly.
  3. Optional: drive it all from one iLogic form. Add an iLogic form, drag iProperties in, and the team fills one dialog that instantly updates the block and the underlying properties.
  4. Save into the drawing template. Save the title block and template so new drawings inherit the mapped, self-filling block.
Format Text  ->  Type: Properties  ->  Source: Model / Drawing iProperties

Auto-populate? Yes, automatically once field text points at the iProperty. API only to build the mapping or set values:

oDoc.PropertySets.Item(...).Item("PartNumber").Value
Where data livesWhat links itWhat shows in the block
Model iProperties (custom)Property source in field textPart no., material, description
Drawing iProperties (Status)Property source in fieldChecked-by, approved-by, date
iLogic form inputWrites to iPropertiesAny mapped field, one dialog
⚠️
Watch out: reach for prompted entries and you will retype the same value on every sheet, and Vault cannot search it. Use custom iProperties for anything you will reuse or want to find later.

5. Siemens NX

The rule: NX drives the block from part attributes (and system attributes) referenced by the title-block cells inside a drawing template. Build the attribute titles into the template, reference them in the cells, then values from the master model flow in when the template is applied.

  • Part / system attributes are the source
  • Drawing template is the map
  • Populate Title Block is the command

Set it up

  1. Create attribute titles in the drawing template. Define the attribute titles you will use (not values). Drafting Tools let you build a custom title block from tabular notes and reference attributes in text.
  2. Reference part and system attributes in the cells. Use the Note / References option to point each cell at a part attribute (e.g. material) or a drawing system attribute (sheet number, number of sheets, master part name).
  3. Apply the template from the master model. Create the drawing via File > New using the template referencing the master model, so cells pick up the part's attribute values.
  4. Populate across sheets without retyping. Use Populate Title Block; once Sheet 1 is filled, the same entries push to all other sheets with the command instead of re-entering each one.
Title block cell  ->  references Part / System Attribute  ->  Master model

Auto-populate? Yes, automatically once the template cell references the attribute. API only to set the attribute the cell reads:

part.SetUserAttribute(title, value)
Where data livesWhat links itWhat shows in the block
Part attribute (master model)Reference in title-block cellMaterial, part no., description
Drawing system attributeReference expression in textSheet n of m, master part name
Teamcenter mapping (if PLM)Attribute mapping fileMass / weight, controlled fields
⚠️
Watch out: system attributes like NX_Material / NX_Weight may need a material assigned (and, under Teamcenter, the right attribute mapping) before the value inherits to the instance and shows in the block.

The one pattern across all five

PlatformData lives inThe bridgeFills the block
SolidWorksCustom properties$PRP / $PRPSHEET linked noteson rebuild
AutoCADDWGPROPS / Sheet SetFIELD inside ATTDEFon FIELDEVAL
RevitProject InformationShared parameter to labelacross all sheets
InventoriPropertiesProperty source in field textacross all sheets
NXPart / system attributesReference in title-block cellfrom master model

Does it auto-populate, or do you need an API call?

Once the link is set in the template, the property fills the block automatically on four of five platforms. You only reach for an API to build the link, batch-fix legacy drawings, or (Revit) bind the parameter, which does not auto-connect.

PlatformAuto after linking?The one API call that matters
SolidWorksYes, on rebuildnote.SetTextExpression("$PRPSHEET:Description")
AutoCADYes, on FIELDEVALattRef.TextString, then db.UpdateExt()
RevitNo, needs bindingdoc.ProjectInformation.get_Parameter(guid).Set(value)
InventorYes, across sheetsoDoc.PropertySets.Item(...).Item("PartNumber").Value
NXYes, from master modelpart.SetUserAttribute(title, value)
💡
The takeaway: four of these need zero code at runtime. The property drives the block because the template already holds the link. Revit is the one that genuinely needs an API step to associate the shared parameter. Write code only to set up the link or to fix drawings in bulk.

The manual version of this is a Level 1 task: one person, one drawing, retyping. The moment the data lives in one place and every sheet reads it, you have stepped into systems thinking. That is where CAD automation actually starts.


🚀
Want the plugins and courses that build this for you? scriptedcad.com. CAD automation for real engineering work.