ToolbarManager_vs.01

Short description

🚀 ToolbarManager is an AutoCAD Civil 3D .NET Framework 4.8 plugin for managing, filtering, saving, restoring, exporting, and repositioning AutoCAD toolbars across monitor setups. It helps CAD users create repeatable toolbar profiles, fix floating toolbar positions, audit toolbar contents, and improve productivity in multi-monitor Civil 3D production environments.

Image 000 43

Command:

🧰 Load the compiled plugin with NETLOAD and select ToolbarManager_023.dll or the current build DLL generated from ToolbarManager_023.csproj.
🚀 Run the generated command TOOLBARMANAGER_023 to open the modeless WinForms toolbar manager inside AutoCAD or Civil 3D.
📌 The command name is generated from BQ_Build through BuildConstants.CommandName, so future builds use the same pattern, for example TOOLBARMANAGER_024.
🧩 Target platform: AutoCAD Civil 3D 2024 x64, .NET Framework 4.8, WinForms, AutoCAD COM Interop, and ObjectARX managed references such as AcMgd.dll, AcDbMgd.dll, accoremgd.dll, Autodesk.AutoCAD.Interop.dll, and Autodesk.AutoCAD.Interop.Common.dll.

Description:

📘 ToolbarManager scans the active AutoCAD or Civil 3D session, reads every available toolbar from every AutoCAD menu group, and presents the result in a filterable grid. The user can search toolbars, filter by menu group, show only visible toolbars, inspect toolbar commands, and apply visibility changes from one central panel.

🔍 The program is designed for CAD users who work with many floating AutoCAD toolbars, custom CUI toolbars, Civil 3D workspaces, and multi-monitor layouts. It records each toolbar label, group, visibility state, screen position, width, height, and toolbar contents where AutoCAD exposes that information through the COM API.

📌 A key purpose of the tool is toolbar profile management. Users can save named profiles such as office monitor, laptop, docking station, or project-specific layouts, then restore the dialog position and saved floating toolbar set later. This makes it easier to move between Civil 3D workstations, screen resolutions, remote sessions, and multiple monitor arrangements.

🧠 The project includes a monitor-aware fix through ScreenHelper.cs. Instead of relying on AutoCAD SCREENSIZE, it uses the AutoCAD main window handle and Windows screen detection to determine the correct monitor. This improves Fit to Screen behavior when Civil 3D is not on the primary display.

📊 The settings dialog provides advanced profile editing, toolbar ordering, align tools, gap control, distribution, CSV import/export, clipboard round-trip support, and right-click context menus. This makes the plugin useful for AutoCAD toolbar organization, Civil 3D UI standardization, workspace recovery, and CAD production setup automation.

Helper function: (if any)​

  • 🧩 Command registrationCommands.cs registers RunToolbarManager() with [CommandMethod(BuildConstants.CommandName)], making the build-specific AutoCAD command available after NETLOAD.
  • 🔍 Toolbar enumeration engineToolbarService.Refresh() scans AcadApplication.MenuGroups and AcadToolbar collections to collect toolbar labels, groups, visibility, Left, Top, Width, and Height.
  • 📋 Toolbar contents readerToolbarService.GetToolbarItems() reads toolbar button names and command macros with late-bound COM access and caches the result for faster row selection.
  • 🟢 Visibility apply logicApplySelection and the toolbar grid let users turn selected AutoCAD toolbars on or off without opening multiple AutoCAD CUI or toolbar dialogs.
  • 📐 Fit-to-screen layoutToolbarService.FitToScreen() computes visible toolbar bounds and shifts floating toolbar groups back inside the real AutoCAD monitor area.
  • 🖥️ Monitor-aware boundsScreenHelper.GetAcadWindowBounds() uses the AutoCAD main window handle, GetWindowRect, and Screen.FromHandle() to detect the actual monitor instead of guessing from viewport size.
  • 💾 Profile persistenceWindowSettings.cs stores named profiles, dialog positions, toolbar sets, toolbar geometry, order, and last-used profile in a plain text settings file under the user application data folder.
  • 🔄 Profile restore workflowToolbarService.RestoreToolbarSet() turns saved toolbars on and repositions them to their stored Left and Top values when those values are available.
  • 📊 CSV import and exportCsvUtil.cs and WindowSettings.ExportDetailedCsv() create Excel-friendly profile and toolbar-set reports for backup, review, or transfer to another workstation.
  • 📌 Toolbar profile editorProfileSettingsForm.cs provides profile reorder, rename, duplicate, delete, apply, export, import, toolbar move, copy, paste, distribute, align, and refresh-size actions.
  • 🧰 Profile panelProfilePanel.cs embeds the day-to-day profile save/apply controls in the main form and delegates advanced editing to the settings dialog.
  • 🎨 Civil 3D style UI themeC3DTheme.cs, Theme.cs, and ButtonIconFactory.cs apply a dark CAD-style palette, role-colored buttons, and generated GDI icons without relying on external image resources.
  • 📝 Prompt and selection dialogsPromptDialog.cs and ChooseProfileDialog.cs provide reusable text input and profile selection dialogs for rename, duplicate, import, and copy workflows.
  • 🔒 Logging and diagnosticsLogger.cs writes timestamped info, warning, and error messages to the UI log and a persisted log file for troubleshooting Civil 3D toolbar behavior.

Functionalities:

  • 🚀 Open toolbar manager – run TOOLBARMANAGER_023 to launch a modeless AutoCAD Civil 3D toolbar management window.
  • 🔍 Filter toolbar list – search by toolbar name, filter by menu group, and optionally show visible toolbars only.
  • 📋 Inspect toolbar contents – select a toolbar row to view its internal buttons, separators, and command macros.
  • 🟢 Apply toolbar visibility – check or uncheck toolbar rows and apply visibility changes to the active AutoCAD session.
  • 📐 Fit toolbars to screen – move floating toolbars back into the visible AutoCAD monitor area for multi-monitor recovery.
  • 📌 Save dialog and toolbar profiles – store named layouts with the manager window position and the currently visible toolbar set.
  • 🔄 Restore saved toolbar profiles – turn saved toolbars back on and reposition floating toolbars to their recorded coordinates.
  • 🧭 Manage multiple monitor profiles – keep separate profiles for laptop, office monitor, external screen, remote desktop, or custom Civil 3D workspaces.
  • 🧩 Edit toolbar sets per profile – move toolbar entries up, down, to top, to bottom, duplicate entries, rename entries, and delete entries.
  • 📏 Align and distribute toolbars – align left or right, set a common Left value, set all gaps, distribute vertically, and distribute horizontally.
  • 📊 Refresh real toolbar sizes – read live toolbar Width and Height from AutoCAD so spacing and distribution use actual toolbar geometry.
  • 📤 Export and import CSV – share profile and toolbar position data through Excel-friendly CSV files.
  • 📋 Clipboard round-trip – copy toolbar entries or profiles to the clipboard, edit tabular data in Excel, and paste values back into the profile editor.
  • Set current profile – mark a profile as the default last-used profile without applying or moving toolbars immediately.
  • 🧹 Clear filters and refresh lists – quickly reset search controls and rescan AutoCAD toolbar state.
  • 🔐 Preserve safe restore behavior – restore saved toolbar sets without automatically hiding unrelated toolbars that the user turned on for other work.

Result:

✅ The final result is a productivity-focused AutoCAD Civil 3D toolbar layout manager that centralizes toolbar discovery, visibility control, monitor-aware positioning, profile storage, profile restore, toolbar-set editing, CSV export, clipboard workflows, and diagnostic logging.
🟢 It reduces manual AutoCAD UI setup, improves multi-monitor Civil 3D workflow recovery, makes toolbar layouts repeatable across workstations, and helps CAD teams standardize floating toolbar arrangements with fewer repetitive steps.

Images, animations etc.

Image 000 43
Image 001 22
Pixel

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="ToolbarManager_1.0">
<src:RibbonToolTip.ExpandedContent>
<StackPanel>
<TextBlock Background="AntiqueWhite" TextAlignment="Left">
<Bold>Function Syntax: ToolbarManager</Bold>
<LineBreak/>
<Bold>Version: 1.0 Date: 10.11.2025</Bold>
<LineBreak/>

</TextBlock>
            
<Grid>
<Image Source=".jpg" Stretch="Uniform"/>
</Grid>

<Grid>
<Image Source=".png" Stretch="Uniform"/>
</Grid>





</StackPanel>
</src:RibbonToolTip.ExpandedContent>
</src:RibbonToolTip>

<src:RibbonToolTip x:Key="ToolbarManager_1.1">
<src:RibbonToolTip.ExpandedContent>
<StackPanel>
<TextBlock Background="AntiqueWhite" TextAlignment="Left">
<Bold>Function Syntax: ToolbarManager</Bold>
<LineBreak/>
<Bold>Version: 1.1 Date: 20.06.2026 6:38:54PM</Bold>
<LineBreak/>


</TextBlock>
<Grid>
<Image Source=".jpg" Stretch="Uniform"/>
</Grid>

<Grid>
<Image Source=".png" Stretch="Uniform"/>
</Grid>



</StackPanel>
</src:RibbonToolTip.ExpandedContent>
</src:RibbonToolTip>

</ResourceDictionary>

Additional info:

Share this page:

Page Tag: 🏷️ Autocad Lisps

  • ToolbarManager_vs.01

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="ToolbarManager_1.0"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: ToolbarManager</Bold> <LineBreak/> <Bold>Version: 1.0 Date: 10.11.2025</Bold> <LineBreak/> </TextBlock> <Grid> <Image Source=".jpg" Stretch="Uniform"/> </Grid> <Grid> <Image Source=".png" Stretch="Uniform"/> </Grid> </StackPanel> </src:RibbonToolTip.ExpandedContent>…

  • ImportBlock

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="ImportBlocks"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: ImportBlockDrw</Bold> <LineBreak/> <Hyperlink>https://www.lee-mac.com/copyblockfromdrawing.html</Hyperlink> <LineBreak/> <TextBlock> <Bold><Run Foreground="Orange">id: importblock01</Run></Bold><LineBreak/> <Bold><Run Foreground="DodgerBlue">title: ImportBlock</Run></Bold><LineBreak/> <Bold><Run Foreground="LimeGreen">short_description:</Run></Bold><LineBreak/> <Run Foreground="White">🚀 ImportBlock is an AutoCAD and…

  • InsertBlockFilterScale

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="Test"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: Command</Bold> <LineBreak/> <Bold>Version: 1.0 Date:</Bold> <LineBreak/> <LineBreak/> <Hyperlink>N/A</Hyperlink> <LineBreak/> id: ibb7q2 short_description: | <Bold><Run Foreground="DodgerBlue">SEO Description</Run></Bold><LineBreak/> <Run Foreground="White">🚀 InsertBlockFilterScale is…

  • ExplodeBlocks

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="ExplodeBlocks"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: ExplodeBlocks</Bold> <LineBreak/> <Bold>Version: 1.1 Date: 27.06.2026 19:50:35</Bold> <LineBreak/> <Bold>Version: 1.2 Date: 20.06.2026 6:38:48PM</Bold> <LineBreak/> <Hyperlink>WEB</Hyperlink> <LineBreak/> id: xbp9e2 short_description: |…

  • DeleteObjectFromBlock

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="DeleteObjectFromBlock"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: ExtractFromBlock / DeleteObjectFromBlock</Bold> <LineBreak/> <Bold>Version: 1.0 Date: 20.06.2026 6:38:48PM</Bold> <LineBreak/> <Hyperlink>N/A</Hyperlink> <LineBreak/> short_description: | <Bold><Run Foreground="DodgerBlue">SEO Short Description</Run></Bold><LineBreak/> <Run Foreground="White">🚀…

  • DeleteBlockCrossings

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="DeleteBlockCrossings"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: DELETEBLOCKCROSSINGS / DBC / ABBS</Bold> <LineBreak/> <Bold>Version: 1.0 Date: 30.06.2026 17:58:39</Bold> <LineBreak/> <Bold>Version: 1.1 Date: 30.06.2026 8:35:39PM</Bold> <LineBreak/> <Hyperlink>N/A</Hyperlink> <Bold><Run…

  • CreateMultipleRectangleBlocks

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="CreateMultipleRectangleBlocks"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: CPAGES_BBB / CreateMultipleRectangleBlocks</Bold> <LineBreak/> <Bold>Version: 1.0 Date: 20.06.2026 6:38:48PM</Bold> <LineBreak/> <Hyperlink>N/A</Hyperlink> <LineBreak/> short_description: | <Bold><Run Foreground="DodgerBlue">SEO Description</Run></Bold><LineBreak/> <Run Foreground="White">🚀 CreateMultipleRectangleBlocks…

  • CopyBlock_vs.01

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="CopyBlock_CB"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: CopyBlock_CB</Bold> <LineBreak/> <Bold>Version: 1 Date: 09.10.2025</Bold> <LineBreak/> <LineBreak/> <Hyperlink>AI+https://www.lee-mac.com/copyblock.html</Hyperlink> <LineBreak/> short_description: |<LineBreak/> <Bold><Run Foreground="DodgerBlue">SEO Description</Run></Bold><LineBreak/> <Run Foreground="White">🚀 CopyBlockChangeLayer is an…

  • AttachImagesToBlocks

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="AttributeColour"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: AttachImagesToBlocks / CopyPDFsToBlocks / AddPDFsToBlockDefs</Bold> <LineBreak/> <Bold>Version: 1.1 Date: 20.06.2026 6:38:47PM</Bold> <LineBreak/> <Hyperlink>N/A</Hyperlink> <Bold><Run Foreground="DodgerBlue">short_description:</Run></Bold><LineBreak/> <Run Foreground="White">🚀 AttachImagesToBlocks is an…

  • Convert3DFaceToPolyline

    Short description Command: Description: Helper function: (if any)​ Functionalities: Result: Images, animations etc. XAML code: Expand Code ↓ Select Code Copy 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="Convert3DFaceToPolyline"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: Convert3DFaceToPolyline</Bold> <LineBreak/> <Hyperlink>AI</Hyperlink> <LineBreak/> <Bold><Run Foreground="DodgerBlue">short_description:</Run></Bold><LineBreak/> <Run Foreground="White">🚀 Convert3DFaceToPolyline is an AutoCAD and Civil 3D AutoLISP command description for converting…