If you work with dynamic blocks in AutoCAD, the bsactiontool command is one of the ways to add actions to a dynamic block definition. This guide explains what the command does, how to use it step-by-step, common reasons it may fail and how to fix them, useful alternatives, practical tips, and a FAQ section for typical reader questions.
What is the BSACTIONTOOL command?
The bsactiontool command (sometimes referenced as the BACTIONTOOL action in AutoCAD documentation and in some versions) adds an action to a Dynamic block definition. An action is the behavior that a dynamic block exhibits when a user manipulates a parameter (for example: Stretch, Move, Rotate, Scale, Flip, Lookup, Array, or Visibility). The command is used while editing a block in the block editor (BEDIT) and is part of the Dynamic Block authoring workflow.
Important: Dynamic block authoring/editing must be done in the full AutoCAD release. AutoCAD LT can insert and use dynamic blocks, but it cannot create or edit dynamic block definitions.
Key concepts (quick explanations)
- Parameter: a control inside the block that stores the variable (distance, angle, alignment, visibility state). Examples: Linear, Polar, Visibility, Rotation, Point.
- Action: ties a behavior to a parameter. Examples: Stretch action linked to a Linear parameter; Rotate action linked to a Rotation parameter.
- Block Editor (BEDIT): the environment where you add parameters and actions to a block.
- Block Authoring Palette: the GUI containing Parameters and Actions palettes used to add and configure parameters and actions.
How to use bsactiontool — step by step
This section describes the typical workflow for adding an action to a dynamic block. You can use the Block Authoring Palette (recommended) or invoke the bsactiontool command.
Prepare the block
- If the geometry is not already a block, create one: select geometry → type B (Block) → provide a name and base point → OK.
- Save your drawing.
Open the Block Editor
- Select the block and type BEDIT (or right-click → Block Editor), then open the block definition.
- The Block Editor opens and you should see the Parameters and Actions tabs/palettes. If palettes are not visible, open them from the ribbon: Insert → Block Definition panel → Block Authoring Palettes.
Add a parameter
- On the Parameters tab choose the appropriate parameter (for example Linear Parameter for a width or length, Rotation Parameter for a rotating part, Visibility Parameter for visibility states).
- Place the parameter: click to set the parameter base point, second point to set direction/axis (for linear/polar), and set the grip location if requested.
- Name the parameter clearly in its Properties (e.g., Width_Param).
Add an action (using the Block Authoring Palette)
- Switch to the Actions tab.
- Choose the action type that matches your intended behavior (for example Stretch, Move, Rotate, Scale, Flip).
- With the action tool active, click on the parameter you created to link the action to that parameter.
- Specify the action settings: for a Stretch action you typically define a stretch frame (crossing window), pick the objects to be stretched, and confirm.
Or, add an action using the command line:
- Type bsactiontool (or the appropriate alias in your AutoCAD version) at the command line.
- Follow prompts: choose the action type, select the parameter to associate, then select objects affected and any required grip or selection boxes.
Configure action properties
- With the action selected, review and edit properties in the Properties palette: set Action Unit, Action Behavior, and ensure the action references the correct parameter name.
Test the dynamic block
- In the Block Editor, use Test Block (or BTEST) to open a test instance and manipulate grips to verify the action works as expected.
- If behavior is correct, save changes and Close Block Editor → Save changes to block definition.
Insert and use the modified block in your drawing to confirm real-world behavior.
Example scenario (before/after):
- Before: A door block has fixed width.
- After: Add a Linear Parameter and a Stretch action tied to that parameter. The block now stretches horizontally when you drag the parameter grip, resizing the door width.
Common action types and when to use them
- Stretch: change size/length of part of the block—use with Linear Parameter.
- Move: shift objects—use with Point or Linear Parameter.
- Rotate: rotate geometry—use with Rotation Parameter.
- Scale: uniformly scale objects—use with Linear or Scale Parameter.
- Flip: mirror geometry across an axis—use with Flip Parameter.
- Lookup: switch between preset parameter values (good for stand options).
- Visibility: hide/show sets of geometry (use with Visibility Parameter).
- Array: create multiple copies in pattern (use with Polar or Linear parameters).
Why bsactiontool sometimes doesn’t work (and fixes)
Symptom: Command is ignored, not found, or action does not produce expected behavior.
Possible reasons and solutions:
You are not in the Block Editor.
- Fix: Open the block with BEDIT before adding actions.
The object/block is not dynamic (no parameters).
- Fix: Add an appropriate Parameter first, then add the action.
You’re using AutoCAD LT (which cannot author dynamic blocks).
- Fix: Use full AutoCAD or ask someone with full AutoCAD to author the block.
Command not recognized or alias mismatch (bsactiontool not available in this version).
- Fix: Use the Block Authoring Palette (Parameters & Actions) from the ribbon, or check command aliases and documentation for your AutoCAD version (try BACTIONTOOL or use the UI tools).
Palettes not visible or workspace customized.
- Fix: Reset workspace to “Drafting & Annotation” or open the Block Authoring Palettes from the Insert ribbon.
Layer, object, or selection issues (objects locked or on frozen/off layers).
- Fix: Ensure objects are editable and on thawed/unlocked layers before linking them to an action.
Incorrect action setup (wrong parameter selected, wrong selection set or stretch frame).
- Fix: Revisit the action definitions, check the action’s Properties and retarget the correct objects/frames.
Block corruption or complex nested blocks making association difficult.
- Fix: Explode and rebuild problematic elements or edit nested blocks separately. Save incremental backups before large changes.
UCS/coordinate issues making action behave unexpectedly.
- Fix: Verify UCS and define parameters/actions in consistent coordinate orientation.
Software corruption/customization/apl overrides.
- Fix: Reset AutoCAD profile, repair installation, or run AutoCAD with default settings. Check for LISP/custom commands that override bsactiontool.
Alternative methods to add actions (when bsactiontool is not suitable)
- Use the Block Authoring Palettes (Parameters and Actions) — the GUI is more visual and recommended for beginners.
- Use BEDIT and then the ribbon Insert → Block Definition → Block Authoring Palettes to drag-and-drop parameters/actions.
- Use Dynamic Block sample files or pre-created block templates to copy parameter/action setups into your block.
- Edit nested blocks separately and then reinsert into the main block to avoid complexity.
- If you cannot author dynamic blocks in your AutoCAD variant (e.g., LT), have a full-AutoCAD user author them and provide the dynamic block to you.
Practical tips and best practices
- Always save a backup of the original block before editing.
- Give clear, descriptive names to parameters (e.g., DoorWidth_Param).
- Keep the base point consistent and logical for predictable grip behavior.
- Use Test Block frequently during authoring to confirm changes.
- Use Visibility States to manage alternatives instead of manual hide/show geometry.
- Use Lookup tables for commonly used preset sizes rather than multiple parameters when appropriate.
- Keep the block simple: limit the number of parameters/actions to what’s necessary—too many can create confusing grips.
- Document parameter behavior for other users (a short note in the block description helps).
- Use layers wisely (e.g., put auxiliary geometry on a non-printing layer if needed).
FAQ — What if I still have questions?
What is the difference between a parameter and an action?
A parameter stores or defines the variable (distance, angle, state). An action is what changes geometry in response to parameter changes. For example, a Linear Parameter records a movement axis and limits, while a Stretch Action uses that parameter to resize parts of the block.
Can I create or edit dynamic blocks in AutoCAD LT?
No. AutoCAD LT can insert and use dynamic blocks but it cannot create or edit dynamic block definitions. Use full AutoCAD to author dynamic blocks.
How do I remove or modify an existing action?
Open the block with BEDIT, select the action in the Block Editor, and either edit its Properties or press Delete to remove it. Re-link or reassign parameters if needed.
Why are my action grips not appearing after I save the block?
Possible causes: you didn’t add a parameter, the parameter is hidden or deleted, or the block instance is set to a state that hides grips. Open the block in BEDIT, ensure parameters exist, and check visibility states and grip settings.
Is bsactiontool available in all AutoCAD versions?
Command names and aliases can vary across versions. If bsactiontool is not recognized, use the Block Authoring Palettes or check your version’s command reference for the equivalent command (often accessible via ribbon → Insert → Block Authoring Palettes).
How can I test a dynamic block without inserting it into the drawing?
Use Test Block inside the Block Editor. This opens a test instance where you can manipulate grips and parameters without leaving the authoring environment.
Can I link multiple actions to the same parameter?
Yes. A single parameter can drive multiple actions (for example a linear parameter might drive a stretch for two sets of geometry). Ensure each action references the same parameter and that the selection sets are correct.
My action worked in the Block Editor but behaves differently when inserted—why?
Check for differences in UCS, reference scales, annotation scaling, or external constraints in the drawing environment. Also verify that any dependent nested-block parameters are configured and accessible.
Provide clear names, test often, and use the Block Authoring Palettes if the command line method does not work in your environment. This will help you create robust, predictable dynamic blocks with the desired behavior.
