The following is what I used to allow grouping of tool palettes and on the fly swapping between them, rather than having dozens of tabs within one palette. It also allowed multiple users to access the same set of palette's, and has been very stable across the last four or five releases.
Set up with a macro which does the following>
^C^C Cancels any current command that may be current.
ToolpalettesClose - Closes any currently opened tool palette
*_TOOLPALETTEPATH "S:/ACADBLKS/TOOL PALETTES/Civil/Bolts" Sets the NEW and custom current Tool palette. This can be anywhere in your system, and one <could> make an environemnt variable that set the top level drive/Directory. In the example, we are using a mapped network drive, but it is also possible to use a network share using active directory.
ToolPalettes - Opens then newly active palette. Any number of tabs may be in this palette. It was deemed preferable to group the tabs that are related to one type of activity into one palette.
This macro is then assigned to a button by starting the CUI and creating a new partial custiomization file; then creating a new toolbar or ribbon dropdown. (I prefer toolbars) : Note that a custom bitmap is an advantage here.
The full macro <could> look like the following
^C^CToolPalettesClose;*_TOOLPALETTEPATH "S:/ACADBLKS/TOOL PALETTES/Civil/Bolts";ToolPalettes
The directory structure can look like whatever your needs dictate.
To allow for individual customization, I created a directory of each of the users windows logins so that if they click the last palette in the toolbar( Named “ Your Very Own Palette”), they had a way to get their customizations and only theirs, as it is stored in a directory the same as their logon:
The code to do this is as follows :
^C^CToolPalettesClose;*_TOOLPALETTEPATH (strcat "S:/ACADBLKS/TOOL PALETTES/User/" (getvar "loginname"));ToolPalettes
This allows users individualitiy while still having all customization files on the network. For the small amount of users we have, I opted to manually create the directories, rather than have them automatically created if they didn’t exist. That <should> be a simple task to auto-create the directory within the macro if it does not exist.
Just one more Idea, but this one has served us well.