Set ArcMap Option Defaults Using Python Script

5066
6
04-02-2016 03:29 PM
WesKing
New Contributor

Hi Everyone,

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.

Wes

Tags (1)
0 Kudos
6 Replies
DanPatterson_Retired
MVP Esteemed Contributor

an interesting problem... would a default project cover some?

others can be covered by Setting geoprocessing environments—Help | ArcGIS for Desktop  and

A quick tour of geoprocessing environments—Help | ArcGIS for Desktop

templates Fundamentals of saving your customizations—Help | ArcGIS for Desktop

and of course About configuring the user interface—Help | ArcGIS for Desktop

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.

WesKing
New Contributor

Thanks Dan,

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.

Wes

0 Kudos
Luke_Pinner
MVP Regular Contributor

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...

WesKing
New Contributor

Thanks Luke,

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).

Wes

0 Kudos
curtvprice
MVP Esteemed Contributor

An approach to setting many registry keys at once is to export a .reg file from regedit and import it using reg.exe.

curtvprice
MVP Esteemed Contributor

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)