Short description
Sort / Purpose: Make all entities inside selected block definitions use the same layer as their block references for consistent layer control.
• Scope: Works on selected INSERT block references and edits the underlying block definitions in the current drawing.
• Goal: Ensure that geometry inside blocks follows the block reference layer, so changing the block layer controls all its internal entities.
Command:
Command name: ChangeBlockEntitiesLayer
How to run: Type ChangeBlockEntitiesLayer in the command line and press Enter.
• Selection: When prompted, select one or more block references (INSERT objects) whose internal entities you want to move to the block layer.
Description:
• Block selection: Prompts the user to select only INSERT entities which represent block references in the drawing.
• Reference analysis: For each selected block reference, reads its block name and its current layer name.
• Definition lookup: Locates the corresponding block definition in the active document Blocks collection by using the block name.
• Entity iteration: Loops through every entity that belongs to the block definition and checks whether it has a Layer property.
• Layer matching: Compares each entity layer with the block reference layer and, when they differ, updates the entity to use the same layer as the reference.
• Feedback: After processing all selected blocks, prints a confirmation message that entities inside the selected blocks have been updated.
• No selection case: If no block references are selected, displays a notice that no block references were selected and performs no changes.
Helper function: (if any)
Used AutoLISP and VLA functions:
• vl-load-com: Enables ActiveX or VLA functions required to work with document and block objects.
• ssget: Builds a selection set containing only INSERT entities which represent block references.
• vlax-ename->vla-object: Converts entity names into VLA objects to access their properties through ActiveX.
• vla-get-Name: Retrieves the block name from the selected block reference.
• vla-get-Layer: Reads the layer name of the block reference or of entities inside the block definition.
• vla-get-Blocks: Accesses the Blocks collection in the active document to search for the block definition by name.
• vla-Item: Fetches a specific block definition object from the Blocks collection using the block name.
• vlax-for: Iterates through each entity contained in the block definition.
• vlax-property-available-p: Verifies that a given object supports a Layer property before trying to modify it.
• vla-put-Layer: Writes the new layer name to each entity inside the block definition.
Functionalities:
• Multiple block support: Processes all block references included in the selection set in one execution of the command.
• Definition based edit: Modifies the block definition itself, so every instance of that block in the drawing reflects the updated internal layers.
• Layer unification: Ensures that geometry inside the block uses the same layer as the block reference, improving control over visibility, color, and plotting through the block layer.
• Property safe: Only objects that actually expose a Layer property are modified, preventing errors on unsupported objects inside the definition.
• Case insensitive compare: Compares layer names in a case insensitive way so layers that differ only by letter case are recognized as identical.
• No geometry duplication: Edits existing definition entities in place instead of creating new geometry, keeping the drawing clean.
Result:
Result: All entities inside the definitions of the selected block references are moved to the same layer as their block reference, giving full layer based control over the block content.
• Consistent blocks: Internal entities no longer sit on mismatched layers, so turning the block layer on or off reliably affects the entire block content.
• Easier management: Color, linetype, and plot settings can be controlled centrally from the block reference layer instead of multiple internal layers.
• Global effect: Since the block definition is edited, every instance of that block in the drawing reflects the updated internal layer assignments.
• Non destructive in layout: No entities are deleted or created in model or paper space, only the layer property of block definition entities is updated.
Copy code:
Images, animations etc.
Log in to download.
Log in
Log in
Additional info:
Learn more:
Open Website
Share this page:
Subscribe
Login
0 Comments
Oldest
