You may remember a few posts about the Revit.ini file and Revit 2012:
- Deploying Revit 2012 with a Customized Revit.ini file
- Revit 2012 Network Deployment Utility: Custom Revit.ini Settings and Content Supression
- Who moved my Cheese (Files) ? - Important File location changes for Revit 2012
Before diving into this post, I recommend you check out the above posts if you haven't already.
With UR1 for Revit 2012 products, the way the UserDataCache Ini file (C:\Program Files\Autodesk\Revit Architecture 2012\Program\UserDataCache\Revit.ini) propagates to the users directory (%USERPROFILE%\AppData\Roaming\Autodesk\Revit\Autodesk Revit Architecture 2012\Revit.ini) have changed with the addition of a new Update tag.
There are also some important details to understand about the hostname field that will impact your ability to roll out company wide changes to your users Revit.ini files.
First, here are the details about how these fields work in the ini to propagate changes:
2012 behavior for RAC, RME or RST at startup as product is initializing:
Note: all keys are read from the [Install] section of Revit.ini for either the user's file or UserDataCache (UDC) file.
If Hostname key in user's file does not match UDC Hostname key:
no further processing, InstallGUID and ReinstallGUID are skipped
If InstallGUID key exists in UDC and value does not match InstallGUID key in user's file
- delete all files in user's roaming profile folder (top level files only, no subfolders processed)
- %USERPROFILE%\AppData\Roaming\Autodesk\Revit\<product name> e.g. C:\Users\<username>\AppData\Roaming\Autodesk\Revit\Autodesk Revit Architecture 2012
- re-copy all files from UDC into user’s roaming profile folder
else if Update key exists in UDC and value does not match Update key in users’ file (new for UR1)
- parse list of Section/Key pairs and overwrite user’s values for any non-null values in UDC Update key
- i.e. for each UDC Section/Key read the value, and overwrite the user’s Section/Key value
- e.g. Update=Documentation|OnlineHelpServer
- format: Update=Section|Key;Section|Key;Section|Key
- i.e. for each UDC Section/Key read the value, and overwrite the user’s Section/Key value
- write UDC Update value into user’s file
else If ReinstallGUID key exists in UDC and value does not match ReinstallGUID key in user’s file
- overwrite user’s values for these keys for any non-null values in UDC file (hard-coded list only)
- FamilyTemplatePath
- DataLibraryLocations
- DefaultTemplate
- write UDC ReinstallGUID value into user’s file
The first item is probably the most important one for you if you want to roll out changes to a lot of users at once (after you have already installed). It turns out that the hostname field is the first check Revit makes when comparing the UserDataCache ini with the ini in the users directory.
If the names don’t match, then nothing else parsed through in the ini file. The Hostname check was added because of roaming profiles so as a user logged into different machines their Revit.ini wouldn’t get overwritten due to different InstallGUIDs per install.
In case you need to roll out changes to your user ini files from one source there are two options you can look at:
- If you remove the Hostname entry from *all* user’s Revit.ini files and from the UDC Revit.ini, then you can more easily propagate changes and/or overwrite entire Revit.ini files.
- If you delete all user’s Revit.ini files on all machines, and update all UDC Revit.ini with the new settings and remove the Hostname entry, then a new Revit.ini file would be copied from the UDC the next time the user runs Revit.
Both of these options should have the desired affects and allow you to roll out changes to other users. Happy INI ing...
Great info Harlan! Thanks for posting.
Gordon
Posted by: Gordon Price | August 16, 2011 at 05:17 PM
Wow... I feel special.... ;-)
Will a BAT accept "%username%" in the script to delete the current user's ini? I can try myself, but figured I would just ask first.
Posted by: Robert Manna | August 22, 2011 at 09:09 PM