ORD/CONNECT One User Preference across multiple workspaces?

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.xml
MS_GROUPPANELPREF = $(_USTN_PREFNAMEBASE).GroupPanels.xml
MS_SAVEMENU = $(_USTN_PREFNAMEBASE).Attached.men
MS_RIBBONPREFS = $(_USTN_PREFNAMEBASE).RibbonState.xml
MS_FKEYMNU = $(_USTN_PREFNAMEBASE).funckey.mnu
MS_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.

Parents
  • 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:

    1. I'm not an in-depth ORD user, I'm just a workspace & projectwise person so my testing does not go super far into the things most of these seed files do. I plan on expanding the usage of this for additional testing.
    2. I have a custom ribbon in my personal dgnlib i use to bring tools for working on workspaces into 2 ribbon tabs. I use it with all applications, all versions, this has worked well.
    3. I've not yet tested this on multiple computers with one drive on them
    4. There are preference files that don't use the prefnamebase. Looking at my ORD folder i have a webdropsettings.rsc, and SurveyToolsWorkspacePreferences_2_0.xml files that don't use it (this is more a concern for using OneDrive than it is to move to a single set of named preference files).
    5. ORD automatically created the folders one OneDrive once I set the variables. This was very nice, I thought i'd have to create them ahead of time manually.
    6. You can't move, or change the name Personal.ucf.
    7. Currently I use this system with:
      1. MicroStation 10.17.01
      2. OpenBridge Modeler 10.10.20
      3. OpenBridge Modeler 10.11.00
      4. OpenRail Designer 10.10.21
      5. OpenRail Designer 10.11.00
      6. OpenRoads Designer 10.10.21
      7. OpenRoads Designer 10.11.00

     

  • 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 Wing
    Senior Systems Analyst

Reply Children
  • @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. 

    Timothy Hickman

    CADD Manager | CADD Department

    timothy.hickman@colliersengineering.com

    Main: 877 627 3772| 

    1000 Waterview Drive Suite 201 | Hamilton, New Jersey 08691

  • 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.918
    Power InRoads 08.11.09.918
    OpenRoads Designer 2021 R2

        

  • Mostly 2 reasons for us (or maybe me):

    1. The default location of the paths are deep, walking a user through going to that folder to do something is prone to mistakes.
      1. For ORD/OBM/OpenRail figuring out which of the 10.0.0, 10.0.0_1, 10.0.0_2 folders has their actual preferences is a super pain.*
    2. Backups. Nothing upsets a user like losing their function key menus or custom ribbon (this was one of the reason I stopped using our client file paths/seed files. It would reset the function key menu everytime they switched clients).

    * - 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:

    • 10.0.0 - ORD 10.10
    • 10.0.0_1 - ORD 10.09
    • 10.0.0_2 - ORD 10.11

    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.