Dynamic blocks live in the Block Editor (BEDIT). Add parameters to create controllable properties, then attach actions to geometry. One block definition — infinite configurations via grips or a lookup list.
PARAMETERS
Linear
Constrains movement to one axis. Drives Stretch, Move, Scale, or Array along X or Y. Most common parameter. Add a value set (list or increment) to snap to allowed sizes. Example: adjustable door width.
Polar
Distance + angle together. Movement at any defined angle. Example: adjustable diagonal brace on a pole structure.
XY
Independent X and Y distance grips. Drives moves or stretches on both axes separately. Example: rectangular opening with independent width and height.
Rotation
Angle grip that drives a Rotate action. Add an angle value set to limit allowed orientations. Example: valve that snaps to 0°, 45°, 90°, 180°.
Flip
Toggle that mirrors geometry across a reflection line. Uses a Flip action. Shows a flip-arrow grip. Example: door that swings left or right.
Visibility
Named states that show/hide geometry without needing a separate action. Controlled via a dropdown grip. Example: transformer block showing 1Ø or 3Ø geometry.
Lookup
Maps named list entries to combinations of parameter values. User picks from a dropdown; block sets all parameters at once. Example: "20A-1P-120V" sets three parameters simultaneously.
Point
Free X/Y grip that drives a Move action in any direction. Less controlled than Linear or XY — use sparingly when true free movement is needed.
ACTIONS
Move
Moves selected objects when the grip is dragged. Paired with Linear, Polar, XY, or Point. Define the selection set to include everything that should translate.
Stretch
The most-used action. Stretches objects inside a crossing window as the parameter changes. Paired with Linear or Polar. Define the stretch frame carefully — objects entirely inside move, objects crossing the frame stretch.
Scale
Scales geometry uniformly as parameter value changes. Paired with Linear. Use when the geometry should scale proportionally, not just stretch in one direction.
Rotate
Rotates geometry around the parameter base point as the angle changes. Paired with Rotation parameter.
Flip
Mirrors selected geometry across the Flip parameter's reflection line when the grip is clicked. Paired with Flip parameter.
Array
Repeats selected geometry at equal spacing as the parameter value increases. Paired with Linear. Example: bolt holes automatically added as plate length grows.
Lookup
The action behind a Lookup parameter. Defines the lookup table mapping display names to parameter values. No direct geometry effect — controls other parameters.
PARAMETER–ACTION PAIRING REFERENCE
| Parameter |
Compatible Actions |
Value Set Available? |
| Linear | Move, Stretch, Scale, Array | ✓ List or Increment |
| Polar | Move, Stretch, Scale, Array | ✓ List or Increment |
| XY | Move, Stretch, Scale, Array | ✓ Separate X and Y lists |
| Rotation | Rotate | ✓ Angle list or increment |
| Flip | Flip | — (toggle only) |
| Visibility | (built-in — no action needed) | Named states list |
| Lookup | Lookup (drives other parameters) | Named rows in lookup table |
| Point | Move | — |
VISIBILITY STATES — STEP BY STEP
1
Enter Block Editor — Double-click the block → Edit Block Definition, or type BEDIT. Open the Block Authoring Palettes panel (BAUTHORPALETTE).
2
Add a Visibility parameter — From the Parameters tab, drag Visibility into the block. A diamond-shaped grip labeled "Visibility" appears. No action needed — visibility is self-contained.
3
Define states — On the Block Editor ribbon, click Visibility States. Rename the default VisibilityState0 (e.g., "Single Phase"). Click New for each additional state ("Three Phase", "Open Cutout"). OK to close.
4
Assign geometry — Set the current state to State 1. Select objects, right-click → Object Visibility in current state → Hide or Show. Switch states and repeat. Objects not explicitly assigned default to visible in all states.
5
Test and save — Use the state dropdown on the ribbon to preview each state. Click Close Block Editor → Save. In the drawing, click the visibility grip (▼) on the block reference to switch states.
💡 Combine with Lookup: Add a Lookup parameter and point it to the Visibility parameter. Users pick from a labeled list instead of clicking an anonymous grip. The lookup table can simultaneously set Visibility AND a Linear parameter — one selection changes both geometry and size.
VALUE SETS — SNAP GRIPS TO ALLOWED SIZES
A value set constrains a parameter grip to a defined list of values or a fixed increment. Without one, the grip can land anywhere — enabling off-standard sizes. Critical for doors, panels, cable trays, or any element that must match a catalogue size.
1
Select the parameter in BEDIT — While in the Block Editor, click once on the parameter label (e.g., the Linear parameter bar). The Properties palette shows its settings on the right.
2
Choose the Value Set type — In the Properties palette, find Value Set → Dist type (or Angle type for Rotation). Change from None to either List (specific values only) or Increment (regular step within a min/max range).
3
List mode — enter allowed values — Click Dist value list → click the […] button that appears. Type each allowed value and press Add (e.g., 750, 900, 1050, 1200 for door widths in mm). OK to confirm. The grip snaps only to these values.
4
Increment mode — set step, min, max — Set Dist increment (e.g., 150), Minimum distance (e.g., 600), and Maximum distance (e.g., 3000). The grip snaps in 150-unit steps; the user cannot drag outside the min/max range.
💡 Lookup overrides value sets: When a Lookup parameter drives a Linear parameter, the Lookup table IS the constraint — the Linear parameter does not need its own value set. The lookup row sets the exact value.
KEY BLOCK EDITOR COMMANDS
| Command |
What It Does |
| BEDIT | Open Block Editor. Prompts to pick an existing block or create a new one. |
| BSAVE | Save the block definition without closing the editor. Use frequently while authoring. |
| BCLOSE | Close Block Editor. Prompts to save unsaved changes. All block references update on close. |
| BTESTBLOCK | Open a temporary test window to drag grips and verify behavior without closing the editor. Ribbon: Test Block button. |
| BAUTHORPALETTE | Toggle the Block Authoring Palettes panel (Parameters / Actions tabs). Run if palettes disappear. |
| BPARAMETER | Add a parameter from the command line instead of dragging from the palette. |
| BACTIONSET | Edit an existing action's selection set without deleting and re-creating the action. |
TROUBLESHOOTING DYNAMIC BLOCKS
| Problem |
Cause |
Fix |
| Yellow ! alert icon on a parameter | Parameter has no paired action | Add the matching action from the Actions palette; assign it to the parameter when prompted |
| Grip moves but geometry doesn't change | Action selection set is empty or wrong objects selected | In BEDIT, right-click the action lightning-bolt icon → Action Selection Set → re-select the correct objects |
| Stretch action moves objects instead of stretching | Stretch frame is too large — objects lie entirely inside it rather than crossing the boundary | Re-draw the stretch frame so the fixed end of the geometry crosses the frame edge; only crossing geometry stretches |
| Grip doesn't snap to specific sizes | No value set defined on the parameter | In BEDIT, click the parameter → Properties palette → Value Set → change type to List or Increment and enter values |
| Lookup dropdown not showing on block reference | Lookup action not created or lookup table has no rows | In BEDIT, double-click the Lookup action icon → Lookup Table → add Name/Value rows and click OK |
| Block explodes on EXPLODE or shows no grips | Allow Exploding is enabled, or block was accidentally exploded | BEDIT → select block border → Properties → Allow Exploding → set to No. UNDO if already exploded. |
| All geometry visible in every visibility state | Object visibility not assigned per state — default is visible in all states | BEDIT → set active state in ribbon → select objects → right-click → Object Visibility in Current State → Hide |
| Block Authoring Palettes panel missing | Panel was closed or moved off-screen | Type BAUTHORPALETTE to restore it; or Block Editor ribbon → Manage → Author Palettes |
FIELD COMMAND — AUTO-UPDATING SMART TEXT IN BLOCKS
The FIELD command inserts a text placeholder that reads its value from the drawing itself — the file name, current date, an object's area, sheet number, and more. When the drawing is saved, plotted, or regenerated, every field updates automatically. Placed inside a block attribute's default value, a field creates a self-filling attribute that requires no manual entry.
INSERTING A FIELD IN THE DRAWING
1
Start the FIELD command — Type FIELD, or on the ribbon: Insert tab → Data panel → Field. The Field dialog opens.
2
Choose a category — The left column lists categories: Date & Time, Document, Object, Plot, Sheet Set, etc. Click one to see the fields it contains.
3
Choose the field name — Select the field (e.g., FileName under Document, or SaveDate under Date & Time). A preview appears at the bottom of the dialog.
4
Set the format (if shown) — Date fields offer format options (e.g., M/d/yyyy). Text fields may offer case options. Choose what matches your title block standard.
5
Click OK — The field inserts at the cursor. It displays with a light gray background — this is the visual indicator that the text is a field, not regular text. The gray does not plot.
💡 Field inside MText or Table cells: You can also insert a field while editing an MText object or a table cell — right-click inside the editor and choose Insert Field (or press Ctrl+F). Fields mix freely with regular text in the same MText.
USING FIELD INSIDE A BLOCK ATTRIBUTE
This is the most powerful use for blocks. The attribute's default value becomes a field expression — when the block is inserted, the attribute auto-fills without any user input.
1
Open BEDIT — Double-click your block → Edit Block Definition, or type BEDIT.
2
Open the attribute definition — Double-click the attribute tag (e.g., DRAWING_NO or DATE_PLOTTED) to open the Edit Attribute Definition dialog.
3
Insert a field as the default — Click inside the Default field. Right-click → Insert Field (or press Ctrl+F). The Field dialog opens.
4
Choose your field — For a drawing number attribute: Document → FileName → format File Name Only (no extension). For a date: Date & Time → PlotDate or SaveDate → choose your date format.
5
Save and close — Click OK on the Field dialog, OK on the attribute dialog, then BSAVE and BCLOSE. The attribute now auto-fills with its field value on every insert.
💡 New attributes vs existing: For a new attribute, enter the field in the Default box of ATTDEF by pressing Ctrl+F before typing. The field expression looks like %<\AcVar FileName \f "%fn">% — this is normal; AutoCAD writes it for you.
COMMON FIELD TYPES FOR BLOCKS
| Field Name |
Category |
What It Shows |
Block Use Case |
| FileName | Document | DWG file name (with or without extension/path) | Drawing number in title blocks |
| CurrentDate | Date & Time | Today's date, updates on each open/regen | Date Issued or Date Created fields |
| SaveDate | Date & Time | Date and time the file was last saved | Last Modified date in revision blocks |
| PlotDate | Plot | Date and time the drawing was last plotted | Date Plotted in title blocks |
| Author | Document | Author from Drawing Properties (Ctrl+Shift+D) | Drawn By field in title blocks |
| SheetNumber | Sheet Set | Sheet number from the active sheet set | Automated sheet number (requires SSM) |
| SheetTitle | Sheet Set | Sheet title from the active sheet set | Auto-fill drawing title from sheet set |
| Area | Object | Area of a selected closed polyline or region | Area label that updates when polyline changes |
| Length / Distance | Object | Length of a selected line, arc, or polyline | Cable run length or pipe span label |
UPDATING FIELDS MANUALLY
Fields normally update on save, plot, open, or regen. If a field looks stale, use UPDATEFIELD — select the text or attribute containing the field, press Enter, and it forces an immediate update. You can also run REGEN to update all fields in the current view.
FIELD SYSTEM VARIABLES
| Variable |
Default |
What It Controls |
| FIELDDISPLAY | 1 | 1 = show gray background on fields (recommended — easy to spot fields vs regular text). 0 = no background. The gray does not appear on plots. |
| FIELDEVAL | 31 | Bitmask controlling when fields auto-update: 1=open, 2=save, 4=plot, 8=eTransmit, 16=regen. Default 31 = all triggers. Set to 0 to disable auto-update (use UPDATEFIELD manually instead). |
💡 Fields vs manual text in attributes: A field-based attribute is ideal for data that is already known to the drawing (file name, date, sheet number). For data the drafter must supply (equipment tag, voltage, circuit number), use a normal prompted attribute — do not use a field.
External References (XRefs) link a separate DWG into your current drawing — the geometry displays but lives in the source file. Change the source, reload the reference, and every drawing using it updates. Essential for multi-discipline coordination and large project workflows.
ATTACHING AN XREF
1
Open XRef Manager — Type XREF (or XR). The External References palette opens showing all current xrefs and their status (Loaded, Unloaded, Not Found, etc.).
2
Attach a file — Click the DWG attach icon (paperclip) or right-click in the palette → Attach DWG. Browse to the source DWG. Alternatively, type XATTACH directly.
3
Set Reference Type — In the Attach dialog: Attach (visible when this drawing is itself xref'd into another) vs Overlay (disappears when this drawing is nested deeper than one level — use for coordination drawings to prevent circular nesting).
4
Set Path Type — Choose Full Path (absolute, breaks on network share changes), Relative Path (recommended — path relative to the host DWG, survives folder moves as long as structure is maintained), or No Path (relies on AutoCAD search paths — risky).
5
Specify insertion — Set the insertion point, scale, and rotation. For most coordination work, insert at 0,0,0 with scale 1 and rotation 0 so all drawings share a common coordinate system.
ATTACH vs OVERLAY — KEY DIFFERENCE
| Type |
When Used Directly |
When This DWG is XRef'd into Another |
Best For |
| Attach | Visible | Still visible (nested xref loads) | Background base maps, sheets used in multiple documents |
| Overlay | Visible | Does NOT load (ignored when nested) | Coordination drawings, avoiding circular references |
PATH TYPES EXPLAINED
Full Path
Stores: C:\Projects\Site\Survey.dwg
Risk: Breaks if the drive letter or folder structure changes, or if the file moves to a different machine. Avoid for team projects on shared drives.
Relative Path ✓ Recommended
Stores: ..\Survey\Site.dwg (relative to the host DWG)
Benefit: Survives moving the entire project folder. Both the host and xref must stay in the same relative structure. Best practice for all project work.
No Path
Stores: Filename only (Site.dwg)
Risk: AutoCAD searches PROJECTNAME paths and support paths to find it. Works in tightly controlled environments; prone to loading the wrong file if duplicates exist.
LAYER MANAGEMENT WITH XREFS
XRef layers appear in the Layer Manager as XRefName|LayerName (e.g., SURVEY|TOPO). You can freeze, lock, or change color/linetype of xref layers in the host drawing without modifying the source. Changes are host-drawing-only.
💡 VP Freeze: Use Viewport Freeze on xref layers to hide them in specific viewports while keeping them visible in others — great for separating existing vs. proposed in plan sheets.
💡 Layer states: Save layer states (LAYERSTATE) that include your xref layer freezes. Restore them after a RELOAD if AutoCAD resets your overrides.
BINDING AN XREF
Binding converts the xref into an embedded block — no more live link to the source. Two methods with different layer-naming behavior:
| Method |
Layer Result |
When to Use |
| Bind | SURVEY|TOPO → SURVEY$0$TOPO | Archiving or transmitting — preserves xref identity in layer names |
| Insert | SURVEY|TOPO → TOPO (merges with host) | Flattening into a deliverable where layer source doesn't matter |
XCLIP — CLIP THE DISPLAY
1
Type XCLIP. Select the xref. Choose New Boundary → Rectangular, Polygonal, or Select Polyline. Only geometry inside the boundary displays — the source file is unchanged.
2
To toggle the clip frame visibility: XCLIPFRAME system variable. 0 = hidden, 1 = visible and not plotted, 2 = visible and plotted.
3
To remove the clip: XCLIP → select xref → Delete. The full xref reappears.
COMMON XREF PROBLEMS & FIXES
| Problem |
Cause |
Fix |
| Not Found | Path broken — file moved or drive letter changed | In XREF palette, right-click → Select New Path. Browse to new location. Consider switching to Relative path. |
| Unresolved (circular) | Drawing A xrefs Drawing B which xrefs Drawing A | Remove one link. Use Overlay type instead of Attach for coordination drawings to prevent circular nesting. |
| Orphaned layers after detach | XRef was detached but named layers remain in file | PURGE → Layers. Or run the LAYDEL command to force-delete stubborn layers. |
| XRef shows in wrong location | Source file uses different coordinate base than host | Confirm both drawings use the same coordinate system. Reattach at 0,0,0. Use MOVE command on the xref reference if an offset is needed. |
| Can't explode or edit geometry | XRef geometry is read-only by design | REFEDIT to edit in context (saves back to source), or BIND → Insert to embed and then edit freely. |
💡 ETRANSMIT: When sending drawings with xrefs to another party, use ETRANSMIT. It packages the host DWG, all xrefs (including nested), fonts, and plot styles into one zip file with remapped relative paths so nothing is left behind.
💬 Notes & Feedback