i'm back onto setting up my ORD workspaces for clients.
I plan to use the default location for userpreferences to simplify things. This will require me to lock down a few variables in our Organization configuration.
My question is, is there any HARM in using the same user preferences for multiple clients? As far as I can tell, user preferences are personal preferences, and shouldn't really be dependent on client setup, but I'm not certain about that. Some of the clients have user preference seeds, some of them do not. Can you think of anything in
MS_DOCKINGPREF = $(_USTN_PREFNAMEBASE).docking.xmlMS_GROUPPANELPREF = $(_USTN_PREFNAMEBASE).GroupPanels.xmlMS_SAVEMENU = $(_USTN_PREFNAMEBASE).Attached.menMS_RIBBONPREFS = $(_USTN_PREFNAMEBASE).RibbonState.xmlMS_FKEYMNU = $(_USTN_PREFNAMEBASE).funckey.mnuMS_USERPREF = $(_USTN_PREFNAMEBASE).upf
that would be essential to functioning in a specific client environment?
_USTN_PREFNAMEBASE does vary from client to client. I believe that is what I would need to lock down. Either that, or _USTN_HOMEPREFS...
I plan to %lock _USTN_USERNAME = $(USERNAME)
Can you think of anything wrong with this?If I need to allow for separate preferences for each client, I can do that, but it would be cleaner and neater if I could just go around that.
I've been experimenting with using One Drive to hold my user preferences. In order to account for both how Bentley breaks up preference storage (by application and version) and to avoid one computer modifying a file in use on another computer I decided to put each application's preferences in a folder for that app, then name the files in that folder with the username, computer name and version of the application.
Since I setup our client workspaces I remove all their seed files & preference file naming. In my checking our client workspaces seem to be shipping the default seed files that were in the version of ORD was current when they set up their very first ORD workspace.
I've done this grand experiment on one person (me) so far, so take with a grain of salt.
Here's roughly the configuration I use (i edited ours a bit so i may have introduced an error):
#----------------------- # OneDrive User Prefs #----------------------- #--- Define UserPrefs locations & name prefix %if defined (_ONEDRIVE_ROOT) && exists ($(_ONEDRIVE_ROOT)CADDLib/Connect/) _PRODUCT_VERSION_MINOR = $(_USTN_PRODUCT_VERSION_GENERATION).$(_USTN_PRODUCT_VERSION_MAJOR).$(_USTN_PRODUCT_VERSION_MINOR) _MY_USER_ROOT = $(_ONEDRIVE_ROOT)CADDLib/Connect/ _MY_ALLAPPSPREFS = $(_ONEDRIVE_ROOT)All/ _USTN_USERNAME = $(USERNAME) _USTN_USERDESCR = $(CONNECTUSER_FULLNAME) ($(CONNECTUSER_NAME)) _USTN_HOMEROOT = $(_ONEDRIVE_ROOT)$(_ENGINENAME)/ _USTN_HOMEPREFS = $(_USTN_HOMEROOT) _USTN_PREFNAMEBASE = $(_USTN_HOMEPREFS)$(_USTN_USERNAME)_$(COMPUTERNAME)_$(_PRODUCT_VERSION_MINOR) # These prefs are always the same for all apps, all versions MS_SPELLINGUSERDICTIONARY = $(_HNTB_ALLAPPSPREFS)msspell.dic MS_PERSONALDGNLIB = $(_HNTB_ALLAPPSPREFS)Personal.dgnlib MS_FKEYMNU = $(_HNTB_ALLAPPSPREFS)funckey.mnu %endif #--- Migrate Existing Preferences %if exists($(_USTN_LOCALUSERAPPDATAPATH)Prefs/Personal.upf) # Migrate preference files from user directory _OLD_PREFBASE = $(_USTN_LOCALUSERAPPDATAPATH)Prefs/Personal MS_BUTTONMENUSEED = $(_OLD_PREFBASE).button.btnmenu MS_DGNTEXTEDITORPREFSEED = $(_OLD_PREFBASE).DgnTextEditor.xml MS_DOCKINGPREFSEED = $(_OLD_PREFBASE).docking.xml MS_EXPLORERSETTINGSSEED = $(_OLD_PREFBASE).explorer-settings.xml MS_FKEYMNUSEED = $(_OLD_PREFBASE).funckey.mnu MS_GROUPPANELPREFSEED = $(_OLD_PREFBASE).GroupPanels.xml MS_INPUT_CONFIGXMLSEED = $(_OLD_PREFBASE).InputConfiguration.xml MS_KEYBOARDSHORTCUTSSEED = $(_OLD_PREFBASE).KeyboardShortcuts.xml MS_PERSONALDGNLIBSEED = $(_OLD_PREFBASE).dgnlib MS_RIBBONPREFSSEED = $(_OLD_PREFBASE).RibbonState.xml MS_USERPREFSEED = $(_OLD_PREFBASE).upf # Not sure what preference file this creates #MS_TASKDIALOGPREFSEED = $(_OLD_PREFBASE)MicroStationTaskDialogPrefSeed.xml %elif exists ($(_ONEDRIVE_ROOT)CADDLib/Connect/Seed/) # Keep a set of seed files in OneDrive _SEED_PREFBASE = $(_ONEDRIVE_ROOT)CADDLib/Connect/Seed/PersonalSeed MS_BUTTONMENUSEED = $(_SEED_PREFBASE).button.btnmenu MS_DGNTEXTEDITORPREFSEED = $(_SEED_PREFBASE).DgnTextEditor.xml MS_DOCKINGPREFSEED = $(_SEED_PREFBASE).docking.xml MS_EXPLORERSETTINGSSEED = $(_SEED_PREFBASE).explorer-settings.xml MS_FKEYMNUSEED = $(_SEED_PREFBASE).funckey.mnu MS_GROUPPANELPREFSEED = $(_SEED_PREFBASE).GroupPanels.xml MS_INPUT_CONFIGXMLSEED = $(_SEED_PREFBASE).InputConfiguration.xml MS_KEYBOARDSHORTCUTSSEED = $(_SEED_PREFBASE).KeyboardShortcuts.xml MS_PERSONALDGNLIBSEED = $(_SEED_PREFBASE).dgnlib MS_RIBBONPREFSSEED = $(_SEED_PREFBASE).RibbonState.xml MS_USERPREFSEED = $(_SEED_PREFBASE).upf # Not sure what preference file this creates #MS_TASKDIALOGPREFSEED = $(_SEED_PREFBASE)MicroStationTaskDialogPrefSeed.xml %endif
The first %if is what is defining the actual preference seed files.
Note that the _USTN_PRODUCT_VERSION_* variables are newer ones. They are there in 10.10 on. There is a way to get these numbers from the registry if you want to support older versions as well. Version is only down to the minor version (so 10.10.21 for the last 10.10 ORD build and 10.11.00 for current ORD). I went down to the minor version because OBM 10.10 had different prefs for 10.10.00 and 10.10.20. Everything else seems OK with just going to the major version number. If OBM doesn't repeat this I may change to just the major version once we get 10.10.00 out of the environment.
The key line is:
_USTN_PREFNAMEBASE = $(_USTN_HOMEPREFS)$(_USTN_USERNAME)_$(COMPUTERNAME)_$(_PRODUCT_VERSION_MINOR)
That defines both the path and the prefix for any user preference file.
The first part of the bottom section is how I plan on migrating most of a user's existing preference files. Basically I identify the existing files as the seed files so when ORD goes to create the new files it just copies the existing ones.
The second half allows me to create a folder of seed files in OneDrive and use those for all my settings. If the personal.upf doesn't exist in the application's old preference location, and there is no seed folder in one drive, the applicaton's defaults are used.
Testing so far:
BTW, I already remove all our client's setting of seed and prefname base. I've been doing this for awhile, i've got a several 10.9 workspaces where i've done this. Just instead of putting them on OneDrive I use the ORD defaults for everything.
so item #6 - the personal.ucf is still on the local machine where the software installed it ?
Timothy Hickman
CADD Manager | CADD Department
timothy.hickman@colliersengineering.com
Main: 877 627 3772|
1000 Waterview Drive Suite 201 | Hamilton, New Jersey 08691
It has to be. There is no way to rename or repath that file.
It is locked internally by MicroStation.
Rod WingSenior Systems Analyst
@Rod - correct.So there is still a local file.
I do not understand why so many people want to mess with the prefs folder and files ?
any time I have every dealt with a preference having issues is when they move them.
Usually because we either want things on our network so they are backed up, or we want them to "roam" if our users use more than one computer. Not to mention, the more files we can manage from the network, the fewer times we need access to any user's computer.
MaryB
Power GeoPak 08.11.09.918Power InRoads 08.11.09.918OpenRoads Designer 2021 R2
Mostly 2 reasons for us (or maybe me):
* - the user preference folders 10.0.0* are created at first open, so if you open ORD 10.10 then 10.09 then 10.11 your preferences will be:
The only way to tell which one is memorizing the names of the dirsig_ files ORD creates to mark the version using that folder or opening the dirsig file to see what path is in it. The DirectoryExplanation.txt also shows which ORD it's for.
I'm hoping OneDrive will give us an easier way for users to find the preference files easier, and OneDrive will handle the backups and user's can restore their own files. Additionally the files will follow them to a new computer when we swap them out (although with my system they'll have to copy or rename them to the new computer name when they do).
I got burned way back in MicroStation J with putting user preference files on a network drive so I've never done that again, but i definitely have always moved them to an easier to find & maintain location.