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.
Obtenir de l’aide auprès des experts ArcGIS
Télécharger l’application Esri Support