diff contrib/python/FixWorkspacePaths.py @ 114:93699e8f2d1f

contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py: Added some sample-scripts for working with MXD-files
author Stephan Holl <stephan.holl@intevation.de>
date Wed, 15 Jun 2011 16:13:32 +0200
parents
children 4dc2b9aa3c57
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/python/FixWorkspacePaths.py	Wed Jun 15 16:13:32 2011 +0200
@@ -0,0 +1,34 @@
+import arcpy, os
+
+inputMXD = arcpy.GetParameterAsText(0)
+
+newpath = r'C:\mxd-konverter\testdata-frida'
+
+rootdir = inputMXD
+
+for root, subFolders, files in os.walk(rootdir):
+    for file in files:
+        f = os.path.join(root, file)
+        if os.path.isfile(f):
+            basename, extension = os.path.splitext(f)
+            if extension.lower() == ".mxd":
+                print "Bearbeitet Dokument %s" % f
+                mxd = arcpy.mapping.MapDocument(f)
+                #Report broken sources
+                if len(arcpy.mapping.ListBrokenDataSources(mxd)) > 0:
+                    for brkLyr in arcpy.mapping.ListBrokenDataSources(mxd):
+                        if brkLyr.supports("dataSource"):
+                            oldpath =  brkLyr.dataSource
+                            oldworkspace =  brkLyr.workspacePath
+                            print "Old dataSource-Path %s, old workspacePath %s " % (oldpath, oldworkspace)
+                            # Replace
+                            brkLyr.findAndReplaceWorkspacePath(oldworkspace, newpath)
+                            print "Corrected path: %s" % brkLyr.workspacePath
+                            print "Corrected dataSource: %s" %brkLyr.dataSource
+                            mxd.save()
+                            print "Wrote file %s" % f
+                            print arcpy.GetMessages()
+                else:
+                    print "keine kaputten Layer gefunden"
+            
+del mxd
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)