Short description
π AnnoAllOff is an AutoCAD and Civil 3D AutoLISP utility that sets ANNOALLVISIBLE to 0 for selected Model/Layout tabs through a DCL picker.
ποΈ It helps users turn off global annotative visibility per tab while keeping control over which layouts are updated.

Command:
π Main command: AAOFF
ποΈ Dialog title: ANNOALLVISIBLE -> 0 (Choose Tabs)
π§ Workflow: choose Model and/or Layout tabs, then apply ANNOALLVISIBLE = 0 to the selected tabs.
Description:
π AnnoAllOff is an SEO-friendly AutoCAD annotation visibility control tool for managing annotative object display across Model Space and Paper Space layouts.
π§© The routine dynamically writes a temporary DCL file, lists all layout tab names from the active drawing, selects all tabs by default, and lets the user choose All, None, or a custom multi-selection.
π For each selected tab, the command switches CTAB to that tab, forces Paper Space when required, runs ANNOALLVISIBLE 0, and then restores the previous CTAB, TILEMODE, and MSPACE state.
π This is useful for AutoCAD and Civil 3D production drawings where annotative objects, labels, text, dimensions, and multileaders need controlled visibility per tab before review, plotting, or cleanup.
π§ The script notes that ANNOALLVISIBLE is stored per Model tab and per Layout tab, not per viewport entity.
Helper function: (if any)β
π§© AAOFF:WriteDcl writes the temporary DCL picker for selecting Model/Layout tabs.
π§© AAOFF:GetTabNames reads the active drawing Layouts collection and returns the available tab names.
π§© AAOFF:MakeAllIndexString builds the DCL list-box selection string for selecting every tab by default.
π§© AAOFF:IdxList->Names converts selected DCL list-box indices into layout tab names.
π§© AAOFF:SetAnnoAllVisible0 switches through selected tabs, sets ANNOALLVISIBLE to 0, and restores the previous drawing tab state.
π§© c:AAOFF loads the DCL dialog, fills the tab list, handles All/None/OK/Cancel actions, applies the setting, unloads the dialog, and deletes the temporary DCL file.
Functionalities:
β
π Sets ANNOALLVISIBLE to 0 for selected tabs.
β
ποΈ Uses a DCL dialog to choose Model and Layout tabs.
β
β
Selects all tabs by default for fast drawing-wide annotation visibility cleanup.
β
π Allows multi-select tab control with Ctrl/Shift selection.
β
π’ Provides All and None buttons for quick selection management.
β
π§ Switches CTAB to each selected tab before applying the setting.
β
π Forces Paper Space when processing layout tabs.
β
π Restores the previous CTAB, TILEMODE, and MSPACE values after completion.
β
π§Ή Cleans up the temporary DCL file after use.
β
π Avoids viewport-level confusion by treating ANNOALLVISIBLE as a per-tab setting.
Result:
π― The result is a controlled annotation visibility cleanup workflow for AutoCAD and Civil 3D drawings.
π Users can turn off ANNOALLVISIBLE on all tabs or only selected layouts without manually switching each tab and typing the system variable.
π This supports plotting preparation, layout QA, annotative object cleanup, and drawing-standard workflows where visible annotation scales must be controlled per tab.
Images, animations etc.

XAML code:
ο»Ώ<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:Autodesk.Windows;assembly=AdWindows">
<src:RibbonToolTip x:Key="AnnoAllOff">
<src:RibbonToolTip.ExpandedContent>
<StackPanel>
<TextBlock Background="AntiqueWhite" TextAlignment="Left">
<Bold>Function Syntax: AAOFF</Bold>
<LineBreak/>
<Bold>Version: 1.1 Date: 20.06.2026 6:38:54PM</Bold>
<LineBreak/>
<Hyperlink>AI+https://forums.autodesk.com/t5/autocad-forum/annotative-objects-not-displaying-in-layout-viewports/td-p/7949416</Hyperlink>
<LineBreak/>
<Bold>Program purpose</Bold><LineBreak/>
This AutoLISP program defines the command <Bold><Span Foreground="DarkRed">AAOFF</Span></Bold> to help you set the AutoCAD system variable <Bold><Span Foreground="DarkRed">ANNOALLVISIBLE</Span></Bold> to <Bold><Span Foreground="DarkRed">0</Span></Bold> for user-selected tabs (Model and Layouts).<LineBreak/>
<Bold>What the user must do</Bold><LineBreak/>
The user runs the command <Bold><Span Foreground="DarkRed">AAOFF</Span></Bold> and then selects which tabs to update from a multi-select list.<LineBreak/>
<Bold>Key user interface behavior</Bold><LineBreak/>
The program builds a temporary <Bold><Span Foreground="DarkRed">DCL</Span></Bold> dialog at runtime, displays it, and deletes the temporary DCL file after use.<LineBreak/>
The dialog contains a list of all available tabs including <Bold>Model</Bold> and each <Bold>Layout</Bold> name.<LineBreak/>
Multi-selection is supported, and the dialog provides quick selection buttons.<LineBreak/>
<Bold>Functionalities</Bold><LineBreak/>
β’ <Bold>Builds a dialog dynamically</Bold> by writing a DCL definition into a temporary file (for example <Span Foreground="DarkRed">AAOFF.dcl</Span>).<LineBreak/>
β’ <Bold>Lists all drawing tabs</Bold> (Model plus all Layout tabs) by querying the active document layouts collection.<LineBreak/>
β’ <Bold>Defaults to selecting all tabs</Bold> when the dialog opens, so the operation applies everywhere unless the user narrows it down.<LineBreak/>
β’ <Bold>Provides selection shortcuts</Bold> via buttons:<LineBreak/>
β’ <Span Foreground="DarkRed">All</Span> selects every tab in the list.<LineBreak/>
β’ <Span Foreground="DarkRed">None</Span> clears the selection.<LineBreak/>
β’ <Bold>Applies the change per selected tab</Bold> by switching to each chosen tab using <Span Foreground="DarkRed">CTAB</Span> and then executing the command <Span Foreground="DarkRed">ANNOALLVISIBLE</Span> with value <Span Foreground="DarkRed">0</Span>.<LineBreak/>
β’ <Bold>For layout tabs, forces Paper Space</Bold> before applying the change by setting the document <Span Foreground="DarkRed">MSPACE</Span> state to false when <Span Foreground="DarkRed">TILEMODE</Span> indicates a layout environment.<LineBreak/>
β’ <Bold>Restores the prior environment</Bold> after processing, including restoring the previous <Span Foreground="DarkRed">CTAB</Span>, <Span Foreground="DarkRed">TILEMODE</Span>, and <Span Foreground="DarkRed">MSPACE</Span> values as applicable.<LineBreak/>
β’ <Bold>Handles no-selection and cancel cases</Bold> with clear console feedback and no changes applied when appropriate.<LineBreak/>
<Bold>Important technical notes</Bold><LineBreak/>
<Span Foreground="DarkRed">ANNOALLVISIBLE</Span> is stored per Model tab and per Layout tab, not per viewport entity, so the program correctly iterates through tabs rather than viewports.<LineBreak/>
The operation is implemented by calling the AutoCAD command line: <Span Foreground="DarkRed">._ANNOALLVISIBLE</Span> then <Span Foreground="DarkRed">0</Span> for each selected tab.<LineBreak/>
<Bold>Major components in the code</Bold><LineBreak/>
<Bold><Span Foreground="DarkRed">AAOFF:WriteDcl</Span></Bold> writes the dialog definition to a temporary DCL file.<LineBreak/>
<Bold><Span Foreground="DarkRed">AAOFF:GetTabNames</Span></Bold> returns a list of tab names including Model and layouts from the active document.<LineBreak/>
<Bold><Span Foreground="DarkRed">AAOFF:MakeAllIndexString</Span></Bold> generates the default selection string for the list box such as 0 1 2 ... n-1.<LineBreak/>
<Bold><Span Foreground="DarkRed">AAOFF:IdxList->Names</Span></Bold> converts the selected list box indices into tab name strings.<LineBreak/>
<Bold><Span Foreground="DarkRed">AAOFF:SetAnnoAllVisible0</Span></Bold> performs the tab switching and sets <Span Foreground="DarkRed">ANNOALLVISIBLE</Span> to <Span Foreground="DarkRed">0</Span>, then restores the original state.<LineBreak/>
<Bold><Span Foreground="DarkRed">c:AAOFF</Span></Bold> is the command entry point that orchestrates dialog creation, selection capture, execution, and cleanup.<LineBreak/>
<Bold>Outputs and user feedback</Bold><LineBreak/>
If the user selects one or more tabs, the program updates those tabs and exits quietly.<LineBreak/>
If the user selects nothing, it prints: A AOFF: Nothing selected. No changes made.<LineBreak/>
If the user cancels, it prints: A AOFF: Cancelled.<LineBreak/>
If the dialog cannot load, it prints: A AOFF: Could not load dialog.<LineBreak/>
<Bold><Run Foreground="DodgerBlue">Description</Run></Bold><LineBreak/>
<Run Foreground="White">π§© AnnoAllOff is an AutoCAD and Civil 3D AutoLISP utility designed for faster, cleaner CAD layer and drawing-management workflows.</Run><LineBreak/>
<Run Foreground="LimeGreen">π It provides a DCL picker for setting ANNOALLVISIBLE to 0 on selected Model/Layout tabs, helping control annotative object visibility before plotting, review, or cleanup.</Run><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="DodgerBlue">Function Syntax</Run></Bold><LineBreak/>
<Run Foreground="White">π Main command: </Run><Bold><Run Foreground="Orange">AAOFF</Run></Bold><LineBreak/>
<Run Foreground="White">ποΈ Dialog: </Run><Bold><Run Foreground="Orange">ANNOALLVISIBLE -> 0 (Choose Tabs)</Run></Bold><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="DodgerBlue">SEO Optimized Overview</Run></Bold><LineBreak/>
<Run Foreground="White">π This AutoCAD annotation visibility tool sets </Run><Bold><Run Foreground="Orange">ANNOALLVISIBLE</Run></Bold><Run Foreground="White"> to </Run><Bold><Run Foreground="Orange">0</Run></Bold><Run Foreground="White"> for selected Model and Layout tabs.</Run><LineBreak/>
<Run Foreground="White">ποΈ The routine dynamically creates a DCL dialog and lists the drawing tabs so the user can process All, None, or selected layouts.</Run><LineBreak/>
<Run Foreground="White">π It switches through the selected tabs, applies the system variable, and restores the previous drawing state after completion.</Run><LineBreak/>
<Run Foreground="White">π This is useful for AutoCAD and Civil 3D drawings containing annotative text, dimensions, labels, multileaders, and layout annotation that must be controlled before plotting or review.</Run><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="LimeGreen">Primary Workflow</Run></Bold><LineBreak/>
<Run Foreground="White">1οΈβ£ Run </Run><Bold><Run Foreground="Orange">AAOFF</Run></Bold><Run Foreground="White"> at the AutoCAD command line.</Run><LineBreak/>
<Run Foreground="White">2οΈβ£ Review the list of Model/Layout tabs in the DCL dialog.</Run><LineBreak/>
<Run Foreground="White">3οΈβ£ Use </Run><Bold><Run Foreground="DarkRed">All</Run></Bold><Run Foreground="White">, </Run><Bold><Run Foreground="DarkRed">None</Run></Bold><Run Foreground="White">, or Ctrl/Shift multi-select to choose tabs.</Run><LineBreak/>
<Run Foreground="White">4οΈβ£ Click OK to apply </Run><Bold><Run Foreground="Orange">ANNOALLVISIBLE = 0</Run></Bold><Run Foreground="White"> to the selected tabs.</Run><LineBreak/>
<Run Foreground="White">5οΈβ£ The routine restores the previous tab and model/paper-space state.</Run><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="LimeGreen">Functionalities</Run></Bold><LineBreak/>
<Run Foreground="White">β
</Run><Bold><Run Foreground="LimeGreen">DCL tab picker</Run></Bold><Run Foreground="White"> - shows Model and Layout tabs in a multi-select list.</Run><LineBreak/>
<Run Foreground="White">β
</Run><Bold><Run Foreground="LimeGreen">Default select all</Run></Bold><Run Foreground="White"> - prepares the dialog for full drawing processing by default.</Run><LineBreak/>
<Run Foreground="White">β
</Run><Bold><Run Foreground="LimeGreen">Per-tab annotation visibility</Run></Bold><Run Foreground="White"> - applies ANNOALLVISIBLE to each selected tab.</Run><LineBreak/>
<Run Foreground="White">β
</Run><Bold><Run Foreground="LimeGreen">State restoration</Run></Bold><Run Foreground="White"> - restores CTAB, TILEMODE, and MSPACE after processing.</Run><LineBreak/>
<Run Foreground="White">β
</Run><Bold><Run Foreground="LimeGreen">Temporary DCL cleanup</Run></Bold><Run Foreground="White"> - unloads the dialog and deletes the generated DCL file.</Run><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="DodgerBlue">Important Commands and Functions</Run></Bold><LineBreak/>
<Run Foreground="White">π§© </Run><Bold><Run Foreground="Orange">ANNOALLVISIBLE</Run></Bold><Run Foreground="White"> controls whether all annotation scales are visible.</Run><LineBreak/>
<Run Foreground="White">π§© </Run><Bold><Run Foreground="Orange">CTAB</Run></Bold><Run Foreground="White"> is changed to process each selected tab.</Run><LineBreak/>
<Run Foreground="White">π§© </Run><Bold><Run Foreground="Orange">TILEMODE</Run></Bold><Run Foreground="White"> and </Run><Bold><Run Foreground="Orange">MSPACE</Run></Bold><Run Foreground="White"> are restored after the operation.</Run><LineBreak/>
<Run Foreground="White">π§© </Run><Bold><Run Foreground="Orange">load_dialog</Run></Bold><Run Foreground="White">, </Run><Bold><Run Foreground="Orange">new_dialog</Run></Bold><Run Foreground="White">, and </Run><Bold><Run Foreground="Orange">start_dialog</Run></Bold><Run Foreground="White"> manage the DCL picker.</Run><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="DarkRed">Important Notes</Run></Bold><LineBreak/>
<Run Foreground="White">β οΈ The tool sets ANNOALLVISIBLE to 0; it does not delete annotation or remove annotation scales.</Run><LineBreak/>
<Run Foreground="White">β οΈ The code comments specify that ANNOALLVISIBLE is stored per Model tab and per Layout tab, not per viewport entity.</Run><LineBreak/>
<Run Foreground="White">β οΈ The command changes tabs during execution, then restores the previous tab and model/paper-space state.</Run><LineBreak/>
<LineBreak/>
<Bold><Run Foreground="Yellow">Tags</Run></Bold><LineBreak/>
<Run Foreground="Yellow">π·οΈ AutoCAD, π·οΈ Civil 3D, π·οΈ AutoLISP, π·οΈ Visual LISP, π·οΈ DCL dialog, π·οΈ Annotation visibility, π·οΈ ANNOALLVISIBLE, π·οΈ Layouts, π·οΈ Model Space, π·οΈ Paper Space, π·οΈ Annotative objects, π·οΈ Drawing cleanup, π·οΈ CAD standards, π·οΈ Viewport workflow, π·οΈ CAD productivity</Run><LineBreak/>
</TextBlock>
<Grid>
<Image Source="Image_000.jpg" Stretch="Uniform"/>
</Grid>
<!-- Use MediaElement for GIF (static first frame) and Image as fallback -->
</StackPanel>
</src:RibbonToolTip.ExpandedContent>
</src:RibbonToolTip>
</ResourceDictionary>

Leave a Reply
You must be logged in to post a comment.