Mercurial > mxd2map
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