PROCÉDURE
Lorsque vous travaillez sur des documents ArcMap (.mxd), il peut être nécessaire de remplacer ou de mettre à jour des éléments de texte à la suite de modifications de données ou de révisions. La fonction text.Split() dans Python permet de gagner du temps en remplaçant des éléments de texte dans plusieurs documents ArcMap (.mxd) à la fois, au lieu de mettre à jour le texte dans chaque document ArcMap.
Servez-vous de l’outil de script Python dans ArcMap pour créer deux listes de texte réservées aux anciens et nouveaux éléments de texte des documents ArcMap (.mxd). Remplacez ensuite tout élément de texte correspondant à la première liste par le texte correspondant dans la deuxième liste. Pour ce faire, procédez comme suit.
import arcpy
from arcpy import env
import os
arcpy.env.overwriteOutput = True
#set path to the relevant folder
arcpy.env.workspace = Input_Workspace = arcpy.GetParameterAsText(0)
Output_Workspace = arcpy.GetParameterAsText(1)
Old_Text = arcpy.GetParameterAsText(2)
oldList = Old_Text.split(', ') #set the comma as separator for multiple inputs
New_Text = arcpy.GetParameterAsText(3)
newList = New_Text.split(', ')
#list the mxds of the workspace folder
for mxdname in arcpy.ListFiles("*.mxd"):
arcpy.AddMessage(mxdname)
#set the variable
mxd = arcpy.mapping.MapDocument(Input_Workspace + "\\" + mxdname)
#replace elements that occur in the map document
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
counter = 0
for text in oldList:
if text in elm.text:
elm.text = elm.text.replace(text, newList[counter])
arcpy.AddMessage('{} changed'.format(elm.text))
counter = counter + 1
else:
counter = counter + 1
mxd.saveACopy(Output_Workspace + "\\" + mxdname)


Remarque : Le script est appliqué aux documents ArcMap (.mxd) par ordre alphabétique. Pour mettre à jour les éléments de texte, commencez par le premier document .mxd (dans l’ordre alphabétique) de façon à opérer les modifications voulues.
Remarque : Veillez à ce que les éléments de texte à remplacer soient orthographiés de la même manière que dans chaque document .mxd, lors de la saisie du texte dans le champ Old_Text. Sinon, le script ne pourra pas reconnaître le texte et le changement ne sera donc pas répercuté dans le document .mxd en sortie.
ID d’article: 000015333
Obtenir de l’aide auprès des experts ArcGIS
Commencez à discuter maintenant