#1 Wed 21 May 2014 19:04
- Zebulon_29
- Juste Inscrit !
- Date d'inscription: 21 May 2014
- Messages: 6
Recherche mxd
Je cherche un moyen pour automatiser la recherche des mxd utilisant une couche (.lyr). En effet, celle-ci a été changé, je dois donc ensuite remplacer cette couche par la nouvelle couche.
Cette recherche concerne plusieurs lecteurs réseaux.
Merci pour l'aide que vous pourrez m'apporter.
Hors ligne
#2 Sat 24 May 2014 08:43
- lebon henri
- Participant actif
- Lieu: Vendée
- Date d'inscription: 14 Jan 2008
- Messages: 99
Re: Recherche mxd
salut, tu peux essayer le script ci-dessous.
Code:
import arcpy, os
dossier = r"C:\toto" ## il s'agit là du dossier racine contetant les dossiers contenant les mxd
newlyr = arcpy.mapping.Layer(r"C:\chemin de ton .lyr")
for pathname, directories, filenames in os.walk(dossier):
for filename in filenames:
if filename.lower().endswith(".mxd"):
mxdpath = os.path.join(pathname, filename)
mxd = arcpy.mapping.MapDocument(mxdpath)
for df in arcpy.mapping.ListDataFrames(mxd):
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name == newlyr.name:
##on fait la une comparaison par le nom
## donc il faut être sur que les noms sois toujours les mêmes
##si tu as juste un layer simple on peut le faire avec la data source et même donc la vielle datasource pour la comparaison
arcpy.mapping.InsertLayer(df, lyr, newlyr, "BEFORE")
arcpy.mapping.RemoveLayer(df, lyr)Hors ligne


