Quick Access Search All Tools Ctrl+K Help & Tool Guide
⚙ Interactive Reference
Static Block
Fixed geometry, no user-editable data. Symbols, details, equipment outlines.
▣✏
Block with Attributes
Geometry + text fields filled in at insert time. Title blocks, tags, equipment labels.
▣↗
Dynamic Block
Blocks with built-in grip-driven stretch, flip, visibility states. One block, many configurations.
Attribute modes control how an attribute behaves when the block is inserted. Set in the ATTDEF dialog under Mode checkboxes. Multiple modes can be combined.
Invisible
Default: Off  |  AFLAGS bit: 1
Attribute text does not display in the drawing. The value is still stored and extractable. Use for data-only fields like part numbers, cost codes, or IDs that clutter the view.
Constant
Default: Off  |  AFLAGS bit: 2
Fixed value โ€” cannot be changed when inserting or after insertion. Use for attributes that never vary across all instances, like a manufacturer name or drawing standard version.
Verify
Default: Off  |  AFLAGS bit: 4
After the user enters a value, AutoCAD prompts them to verify it by entering it again. Useful for serial numbers or critical IDs where typos are costly.
Preset
Default: Off  |  AFLAGS bit: 8
Uses the default value without prompting the user. The attribute IS editable after insertion, but skips the insert-time dialog. Good for fields that are usually the default but occasionally need changing.
Lock Position
Default: On  |  AFLAGS bit: 16
Prevents the attribute from being moved independently within the block reference using grips. Keeps attributes anchored to their defined position relative to the block geometry.
Multiple Lines
Default: Off  |  AFLAGS bit: 32
Allows the attribute value to span multiple lines (like MText). Use for notes, descriptions, or any field that might need more than one line of text.
💡 ATTMODE system variable: 0 = all attributes invisible, 1 = normal (respects Invisible mode), 2 = all attributes visible regardless of Invisible setting. Use ATTDISP to override attribute visibility without changing mode settings.
DATAEXTRACTION (or the older ATTEXT command) reads attribute values from block instances and outputs them to a table in the drawing or an external file (XLS, CSV, MDB). This is how you turn your drawing into a bill of materials, equipment schedule, or parts list.
1
Launch the wizardType DATAEXTRACTION. The Data Extraction wizard opens (8 pages). Choose Create a new data extraction and name the .dxe template file โ€” you can reuse this template on future drawings.
2
Define data sourceChoose: Drawings/sheet set (extract from multiple DWGs) or Current drawing. You can also point to a folder of drawings to extract from all DWGs in a project at once.
3
Select objects to extract fromPick which block names to include. Uncheck Display all object types to show only blocks. Check only the blocks whose attributes you need (e.g., PANEL-TAG, TRANSFORMER, POLE-SPEC).
4
Choose properties to extractSelect which attribute tags and object properties to include as columns. Check Count to get a quantity column automatically. Drag columns to reorder them.
5
Refine and sortSort by any column, filter out rows, combine identical rows (combine records mode). Preview the table before output.
6
Output destinationChoose: Insert data extraction table into drawing (a live table that updates when you re-run the extraction), Output to external file (XLS/XLSX, CSV, or MDB), or both.
💡 Live table link: If you insert the table into the drawing, right-click the table โ†’ Update Table Data Link whenever blocks are added, removed, or attribute values change. The table refreshes automatically on re-run.
What Are Blocks?
A block definition is a named collection of geometry stored once in the drawing's block table. Every time you INSERT a block, you create a block reference โ€” a lightweight pointer to that definition. Change the definition (via BEDIT or REFEDIT) and all references update instantly. This is the core efficiency of blocks: draw once, use everywhere, edit once, update everywhere. Blocks can contain other blocks (nested), attributes (editable text fields), and dynamic parameters.
💡 Utility drafting use case: A transformer symbol block with attributes for KVA rating, phase, and serial number. Draw it once, insert it 40 times across the project, extract all attributes to an equipment schedule with DATAEXTRACTION โ€” no manual typing.
BLOCK โ€” Creating a Block Definition
BLOCK Dialog OptionWhat It Does
NameBlock name โ€” no spaces, max 255 chars. Use consistent naming (XFMR-KVA, POLE-H1, etc.)
Base PointThe insertion point. Pick a logical snap point โ€” corner, center, or 0,0. This is where the block "sticks" to your cursor on insert.
Select ObjectsEverything included in the block. Attributes must be created first with ATTDEF and selected here.
Retain / Convert / DeleteWhat happens to the original objects after block creation. Convert to block inserts an instance immediately. Delete removes the originals.
AnnotativeBlock scales with the annotation scale. Use for symbols that need to plot at a specific paper size regardless of viewport scale.
Scale UniformlyForces uniform X/Y/Z scaling on INSERT. Prevents distortion on symbols where non-uniform scaling is wrong.
Allow ExplodingUnchecking prevents users from exploding the block โ€” useful for protected title block or standard details.
Open in Block EditorImmediately opens BEDIT after creation โ€” use when adding dynamic parameters.
Block anatomy: base point, geometry, attribute tags
WBLOCK โ€” Write Block to External File
WBLOCK saves a block definition (or selected objects) as a standalone DWG file. This is how you build a block library โ€” each symbol lives as its own DWG file and can be INSERT-ed into any drawing. The DWG file itself IS a block definition when inserted into another drawing.
WBLOCK Source OptionResultWhen to Use
Block (existing named block)Exports a named block from the current drawing to a DWG fileExporting a block you already created for use in other drawings
Entire drawingExports the whole drawing, cleaned of unused definitionsCleaning up a drawing that has accumulated unused blocks, layers, linetypes
Objects (selection)Creates a new DWG from selected objects with a specified base pointBuilding a block from scratch in a scratch drawing, then saving it to the library
INSERT โ€” Inserting Blocks
INSERT OptionDetailCommon Mistake
Name / BrowseType a block name already in the drawing, or browse to a DWG file. Browsing imports the DWG as a block definition.Browsing to a DWG with a different INSUNITS setting โ€” causes incorrect scale on insert
Insertion PointWhere the block base point lands. Use object snaps for accuracy.Inserting without snap โ€” block placed slightly off grid
Scale X/Y/ZNormally 1,1,1. Use -1 on X to mirror. Use matching factor for unit conversion (e.g., 25.4 for mmโ†’inches).Accidentally entering a scale factor of 12 instead of 1 โ€” block appears huge
RotationAngle in degrees. 0 = no rotation. Positive = counterclockwise.Forgetting to set rotation for oriented symbols (north arrows, equipment with defined orientation)
Explode on insertImmediately breaks the block reference into individual objects. Attributes become text.Exploding a block with attributes loses data structure โ€” can't extract later
INSUNITS mismatch: If the block DWG was created in mm and your current drawing is in inches, AutoCAD scales automatically โ€” but only if both DWGs have INSUNITS set correctly. If INSUNITS=0 (unitless) in either file, no auto-scaling happens and the block inserts at wrong size.
ATTDEF โ€” Defining Attributes
Attribute definitions (ATTDEFs) must be created before the block is defined. Place them inside the area of the geometry, then select them along with the geometry when running BLOCK. Order matters โ€” AutoCAD prompts for attribute values in the order the ATTDEFs were created (or in draw order โ€” adjustable with BATTMAN).
ATTDEF PropertyWhat It DoesBest Practice
TagThe variable name (no spaces). Used in extraction and SSFIELD references. e.g., KVA_RATINGUse UPPER_CASE with underscores. Tag names appear as column headers in data extraction.
PromptText shown to user when inserting block (if ATTREQ=1). e.g., "Enter transformer KVA:"Write clear, specific prompts so drafters know exactly what value to enter.
Default ValuePre-filled value if user presses Enter without typing. Can be text, number, or a field expression.Use the most common value as default to speed up repeated inserts. Can also insert an SSFIELD here.
Text StyleThe text style used to display the attribute value in the drawing.Match the block's other text styles. Use annotative text style if the block is annotative.
Text HeightDisplay height of the attribute text in drawing units.Set to plot-height ร— scale factor (same as DIMTXT). For annotative blocks, set the paper height.
JustificationText alignment: Left, Center, Right, etc. Middle-Center is common for labels inside symbols.Use Middle-Center for single-line symbol labels so they stay centered even as values change length.
RotationRotation angle of the attribute text relative to the block's geometry.Usually 0. For rotated equipment, consider whether attributes should rotate with the block.
Editing Attributes After Insertion
CommandWhat It DoesWhen to Use
EATTEDITEnhanced Attribute Editor dialog โ€” edit values, text properties, and layer of attributes on one specific block instance. Double-clicking a block opens this.Editing one specific block reference's attribute values
ATTEDITCommand-line attribute editor. Can globally change attributes across multiple blocks (change all instances of a tag value at once).Global find-and-replace on attributes; scripting attribute changes
BATTMANBlock Attribute Manager โ€” edit attribute definitions (tag names, prompts, defaults, display order) across all instances of a block definition.Reorganizing attribute prompting order; changing tag names globally; removing attributes from a definition
ATTSYNCSynchronizes all block references to match the current block definition โ€” adds missing attributes, removes deleted ones. Does NOT change existing values.After editing a block definition in BEDIT and adding/removing attributes
ATTDISPOverrides visibility of all attributes: Normal / On / Off. Affects display only, not stored values.Temporarily showing invisible attributes for editing; hiding all attributes for clean review plots
Block Editor (BEDIT) โ€” Editing Block Definitions
BEDIT opens the block editor โ€” a separate authoring environment where you edit the block definition directly. Changes update all references in the drawing when you save and close. BEDIT is also where you build dynamic blocks by adding parameters and actions from the Block Authoring palette.
1
Open block editorDouble-click a block โ†’ opens EATTEDIT (attribute editor). To open BEDIT instead: type BEDIT โ†’ pick the block name, or right-click a block โ†’ Block Editor.
2
Edit geometry and attributesAdd, move, or delete objects. Add new ATTDEFs for new attributes. The gray background distinguishes the editor from normal drawing mode.
3
Add dynamic parameters (optional)From the Block Authoring Palettes panel: add a Linear parameter for stretch, a Flip parameter for mirror, a Visibility parameter for alternating states. Each parameter needs an associated Action to define what moves/stretches/flips.
4
Test in editorClick Test Block in the ribbon to interact with the block as a user would โ€” test grip behavior, visibility states, and stretch behavior without leaving the editor.
5
Save and closeClick Save Block then Close Block Editor. All references update. Run ATTSYNC if you added or removed attributes.
Dynamic Blocks โ€” Parameters & Actions
Dynamic blocks behave like smart symbols. Instead of maintaining 12 versions of a door block for different widths, one dynamic block with a linear parameter covers all widths. Blue square grips indicate dynamic block handles โ€” dragging them triggers the associated action.
Parameter TypeWhat It ControlsCommon Actions Paired With
LinearDistance along one axis โ€” controls length or widthStretch, Scale, Move, Array
PolarDistance + angle โ€” controls position at any angleMove, Stretch, Scale
XY PointX and Y independently โ€” controls 2-axis position or sizeMove, Stretch (X and Y separately)
RotationAngle โ€” controls orientation of geometry within blockRotate action
FlipMirror state โ€” flips geometry about a reflection lineFlip action
VisibilityNamed visibility states โ€” shows/hides groups of geometryNo action needed; controlled by grip dropdown
AlignmentAligns the block to existing geometry automatically when moved near itNo action needed; built-in alignment behavior
LookupDropdown list of preset values (e.g., pipe sizes) that drive other parametersLookup action drives Linear/Rotation parameters
💡 Value sets: Add a value set to a Linear parameter to snap the grip to specific values only (e.g., door widths: 24", 28", 30", 32", 36"). This prevents in-between sizes that don't exist in reality.
Block vs Group vs Xref
▣ Block Best for Symbols
  • Stored inside the current DWG
  • One definition โ†’ many references
  • Supports attributes (ATTDEF)
  • Supports dynamic parameters
  • Editable via BEDIT or REFEDIT
  • Can be exploded into objects
  • Data extractable via DATAEXTRACTION
🔄 Group Best for Temp Sets
  • Stored inside the current DWG
  • Named or unnamed collection of objects
  • No definition โ†’ reference model
  • Objects remain individually selectable
  • No attribute support
  • No data extraction
  • Easy to dissolve (UNGROUP)
🔗 Xref Best for Linked DWGs
  • External DWG file โ€” not stored inside host
  • Updates automatically when source changes
  • Cannot carry ATTDEF attributes
  • Multiple project files share one source
  • Can be clipped with XCLIP
  • Fading controlled by XDWGFADECTL
  • Needs path management (full/relative/no path)
EXPLODE Considerations
Exploding blocks with attributes converts attributes back to attribute definitions (ATTDEFs) โ€” you lose the values. The text reverts to the tag name, not the value that was entered. Avoid exploding blocks that carry attribute data you need.
SituationEXPLODE Result
Normal block (no attributes)Breaks into individual lines, arcs, text objects
Block with attributesGeometry is exploded; attributes revert to ATTDEFs (tag shows, not value)
Non-uniformly scaled blockCannot explode โ€” AutoCAD refuses. Use FLATTEN or XPLODE workaround.
Nested blockExplodes one level at a time โ€” must EXPLODE again to reach inner objects
Dynamic blockExplodes into static geometry at the current state โ€” dynamic parameters are lost
Block with locked layersObjects on locked layers won't explode โ€” unlock layers first
System Variables
ATTREQ
Default: 1  |  0 = use defaults, 1 = prompt
Controls whether the attribute dialog opens when inserting a block. Set to 0 in scripts to insert blocks silently using default attribute values. Set to 1 for interactive use.
ATTDIA
Default: 1  |  0 = command line, 1 = dialog
Controls whether attribute values are entered via the dialog box or at the command line. Dialog (1) is standard for most workflows. Command line (0) is used in scripts.
ATTMODE
Values: 0, 1, 2
0 = all attributes invisible, 1 = normal (Invisible mode is respected), 2 = all attributes visible (overrides Invisible mode). Also controlled by ATTDISP command.
INSUNITS
Default: 1 (inches)  |  4 = mm, 0 = unitless
Units of the current drawing. Used when inserting blocks from external DWGs โ€” AutoCAD compares INSUNITS between files and scales automatically. Mismatch causes wrong-scale inserts.
AFLAGS
Default: 0  |  Bitcode sum of modes
Default attribute mode flags for new ATTDEFs. 1=Invisible, 2=Constant, 4=Verify, 8=Preset, 16=Lock Position, 32=Multiple Lines. Add values together for combined modes.
BLOCKEDITLOCK
Default: 0  |  1 = locked
When set to 1, prevents the Block Editor (BEDIT) from opening. Use in a drawing template to protect standard block definitions from accidental editing.
Key Commands
CommandPurposeQuick Notes
BLOCK / BCreate a block definition from selected objectsPick base point at a meaningful snap location โ€” corner, center, or known coordinate
WBLOCK / WWrite block definition to external DWG fileEssential for building reusable block libraries; use consistent folder structure
INSERT / IInsert a block reference from the drawing or an external DWGUse Design Center (ADCENTER) as an alternative for browsing and dragging blocks
ATTDEFCreate an attribute definition before block creationCreate all ATTDEFs first, then run BLOCK and select geometry + ATTDEFs together
EATTEDITEdit attributes of one block instanceDouble-clicking a block with attributes opens this automatically
ATTEDITGlobal attribute editing (command line, multi-block)Use with Wildcard filter to change attributes across many block instances at once
BATTMANBlock Attribute Manager โ€” edit definitions globallyUse to reorder attribute prompt sequence or rename tags across all instances
ATTSYNCSync all block references to current definitionAlways run after BEDIT changes that add or remove attributes
ATTDISPOverride attribute visibility: Normal / On / OffATTDISP OFF is useful for clean review plots; doesn't delete attribute data
BEDITOpen Block Editor to edit a block definitionAlso used for adding dynamic parameters and actions
DATAEXTRACTIONExtract attribute data to table or fileSave the .dxe template โ€” re-run it on updated drawings with one click
PURGERemove unused block definitions, layers, linetypesRun on project completion to reduce file size โ€” unused block defs bloat DWGs
ADCENTER / Ctrl+2Design Center โ€” browse and drag blocks from external DWGsGood for dragging blocks from a library folder without using INSERT and Browse
REFEDITEdit a block definition in-place within the drawing contextShows surrounding geometry as context โ€” useful for blocks that need to align to nearby objects
Common Problems & Fixes
ProblemCauseFix
Block inserts at wrong scaleINSUNITS mismatch between the block DWG and the current drawingSet INSUNITS correctly in both DWGs. Or use SCALE command after inserting to correct the size manually.
Attribute values reset to default on insertATTREQ=0 โ€” attributes silently use default valuesSet ATTREQ=1 to force the attribute dialog on insert
Attribute prompt order is wrongATTDEFs created in wrong order, or draw order changedUse BATTMAN to reorder attribute definitions within the block
BEDIT won't openBLOCKEDITLOCK=1 in the drawing or CUI settingsSet BLOCKEDITLOCK=0; or check if the block is from a locked xref
Can't explode blockBlock was created with "Allow exploding" unchecked, or non-uniform scale was appliedRe-create the block with exploding allowed. For non-uniform scale, use XPLODE or reset scale to uniform first.
New attribute not appearing on existing insertsATTSYNC hasn't been run after BEDIT added a new ATTDEFRun ATTSYNC and select the block name โ€” existing references get the new attribute with the default value
Data extraction table shows wrong countNested blocks are being counted separately, or blocks on frozen layers are included/excludedIn DATAEXTRACTION wizard, check the "Count" column setting and filter by layer if needed
Dynamic block grip doesn't move correctlyStretch action selection set is wrong โ€” geometry not included, or stretch frame is incorrectOpen BEDIT, select the Stretch action, verify the stretch frame and selection set include the correct objects

💬 Notes & Feedback

Block workflow tips, dynamic block questions, or something missing? Leave a note.
Thanks for the feedback!