9

I have several map documents (around 30) that reference all the same files and display them all the same way. I created them by setting one map how I wanted it, then using "save as" to create a new map then adjusting the data frame extents in the layout. Of course now that I have them all created, I need to make the exact same change to all of them. Is there a more efficient process than just manually repeating the same steps in each document? If not, is there a better way I could have set up the project to facilitate changes like this?

I'm using ArcMap 10.0.

  • 1
    The nature of your changes will dictate your best path moving forward. – MLowry Jan 2 '14 at 16:58
  • I need to swap shapfile reference paths, change symbology, and level display order. – Scott La Vanne Jan 2 '14 at 17:08
  • 1
    You might look at Data Driven Pages and with that the arcpy.mapping suggested in Alex's answer. I'd Google on the phrase but here's one useful link: blogs.esri.com/esri/arcgis/2011/01/28/data-driven-pages – johns Jan 7 '14 at 21:00
2

Have you every used Data Driven Pages? Not sure if version 10 has it, I am using 10.1. Pretty slick, but would be after the fact for you at this point.

Data driven pages will move from one area to the next plotting or exporting the maps as it goes. I layout out one large watershed and then define the sub-watersheds within for the individual layout limits.

Do a search in the help for Data Driven Pages for more instructions.

  • Data driven pages seems to be the best option. After looking into how to use it, I found it faster to recreate the maps using data driven pages than to edit them all separately. I'm also set up to make across the board changes in the future now. – Scott La Vanne Jan 8 '14 at 19:59
8

The most efficient way to make bulk changes to multiple documents is to use Python scripting available in ArcGIS. You would need to write a Python script that will iterate (or go through) each of the map document files you have and apply the changes you specify in the code.

Start looking for the arcpy.mapping module. 10.1 and 10.2 have more functions embedded but you can go a long way even with 10.0. Specify what type of changes you need to perform and then see if you can find the matching functions within the arcpy.mapping module. If there are some that are missing, start a new question and we will try to find an alternative. If you have not scripted in ArcGIS before, consider reading through the getting started help.

Also consider taking a look at arcpy.mapping sample scripts which Esri staff put available online for download (with source code). According to the help file, they should work for 10.0, but I have used them only in 10.1 and 10.2.

PS. Start with just one map document to see if the changes are applied correctly and always back up your data before making any changes.

1

You can't do all of what you want to do with a Python script.

Two techniques that you may be able to use:

  1. Make your changes to the common layers in one of the map files.
  2. Create a new group layer and add all of these layers to the group.
  3. Export the group layer to disk.
  4. Open the other map documents and add the previously saved group layer.
  5. Remove the old duplicated layers and un-group the added layers if necessary.

You may find that a custom template may be useful.

  1. Create a map having a layout and the layers common to all maps.
  2. Save this as a template.
  3. Start a new map using this template and add any other layers or layout changes
  4. Any future changes to common elements can then be made only on the template but will be reflected in all maps that use that template.

ESRI help on templates

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.