At work I have a recommended set of ArcMap/AcrCatalog Options, Geoprocessing Options, Editor Options, and Environmental Settings that I would like to share with everyone in my office, without having to go to their workstation and walk them through manually making these changes in ArcCatalog/ArcMap. Just to be clear, these are the settings found under Geoprocessing > Geoprocessing Options, Customize > ArcMap Options, etc. For instance, I would like this script to access the editor options and set the 'Direction Type' to 'North Azimuth', change the 'Sticky Tolerance' to 7 pixels, etc. I usually walk people through about 10-15 settings.
Yes I have created a document providing instructions on what and how to make these changes, but what's the fun in that? Not to mention the casual users usually get lost and need help despite the document.
Because of security at work, I only have admin privileges on a few computers so I'm trying to stay away from a script that accesses and edits the registry. I would like to be able to have the person run a script from within ArcMap/ArcCatalog and make all these settings directly in an .mxd or ArcCatalog. I believe this could be done with a config file, but I'm having fun learning Python and would like to see if this is possible exclusively with a Python script.
Any help/advice on if this is possible, and links to functions, etc. to accomplish, and links to examples would be greatly appreciated.
Thanks in advance to everyone's help in these forums.
an interesting problem... would a default project cover some?
others can be covered by Setting geoprocessing environments—Help | ArcGIS for Desktop and
Now in theory, you should be able to distribute these, but it depends on whether you are dealing with standalone setups or you have to configure them over a network. We normally make an 'image' of the way the software is to be deployed and simply limit updates to twice a year. Someone wants to stray off the path, the can configure it the way they want and save their customizations appropriately.
I somewhat disagreed with ESRI's decision to move away from using .mxt's as they did in the past (10.0 and prior???), and ever since that change I've almost forgotten about their true templates. My situation would allow for distribution over a network, so in theory this is possible. To be honest I never even thought that customizations in the normal.mxt would include the settings I mentioned, but I'm going to give it a try this week. Thanks for reminding me about making use of normal.mxt. I've realized that over the years every time I branch out to learn something new in Arc, I wind up forgetting some of the basics...lots to learn, which is why I really enjoy Arc and the GIS world. But, if possible I am still interested in learning how to do this running a script within ArcMap/ArcCatalog that mimics making the changes manually within the program.
Write a batch/python script that changes registry settings. Admin rights are not required if you're only changing values in HKEY_CURRENT_USER. If they were, you wouldn't be able to change the settings via the ArcGIS GUI either...
I'm not a system admin so I didn't realize modifying HKEY_CURRENT_USER doesn't require admin privileges. I've already started researching Python batch files to access/edit the registry. It's something I haven't done before, but that makes it all the more interesting. I may get some resistance from the boss (I'm a biologist/GIS analyst/developer), but I'm always up for being a pain in the butt I've been really interested in learning Python's capabilities within ArcMap the last few years, so I'd still like to know how and if these settings can be accessed and modified if a script that works directly on the settings in ArcMap/ArcCatalog (mimicking making the changes manually).
These settings are saved in one of three places - Normal.mxt, Normal.gxt (arcatalog defaults, used for new map documents), and in the HKCU registry settings.
This mess is one reason the ArcGIS Pro mostly has project-centric settings (saved in the .aprx)