Pages: 1
- Sujet précédent - ArcPy arcgis 10.8: ajout de couches dans mxd avec symbologie - Sujet suivant
#1 Mon 11 July 2022 11:00
- PauloLrx
- Participant occasionnel
- Date d'inscription: 11 Feb 2021
- Messages: 22
ArcPy arcgis 10.8: ajout de couches dans mxd avec symbologie
Bonjour,
Je dois mettre à jour 200 plans. Cette mise à jour consiste à rajouter 3 couches avec leur symbologie sur ces plans.
Je voudrais tenter de créer un script Arcpy pour automatiser le processus. Je n'ai pas de compétences en python.
J'ai trouver ce script :
import arcpy, os
import arcpy.mapping as mapping
layer = mapping.Layer(r"CHEMIN VERS LE DOSSIER CONTENANT LES TROIS COUCHES")
for root, dirs, files in os.walk(r"CHEMIN VERS LE DOSSIER CONTENANT sous dossier avec les MXD"):
for f in files:
if f.endswith(".mxd"):
mxd = root + '\\' + f
mxd_doc = mapping.MapDocument(mxd)
df = mapping.ListDataFrames(mxd_doc)[0]
mapping.AddLayer(df, layer, "TOP")
mxd_doc.save()
Je voudrais l'adapter pour ajouter la symbologie à chacune des mes trois couches dans les mxd car je ne suis pas sûre que les couches vont être ajoutées dans les sous-dossiers et les sous-sous-dossiers contenant les mxd.
Merci par avance,
Paulo
Hors ligne
#2 Tue 12 July 2022 13:13
- Cornet Jérémie
- Participant assidu
- Lieu: Nouméa
- Date d'inscription: 6 Apr 2008
- Messages: 229
Re: ArcPy arcgis 10.8: ajout de couches dans mxd avec symbologie
Bonjour,
Plutôt que les couches SIG, vous pouvez pointer sur des lyr.
Ainsi, vous aurez pu configurer symbologie, étiquettes...
os.walk est bien récursif donc fouillera bien tous vos dossiers et sous-dossiers.
Jérémie
Hors ligne
#3 Wed 13 July 2022 09:02
- PauloLrx
- Participant occasionnel
- Date d'inscription: 11 Feb 2021
- Messages: 22
Re: ArcPy arcgis 10.8: ajout de couches dans mxd avec symbologie
Bonjour Jérémy,
On m'a aidé a modifier le code mais pas sur que ce soit pour une version plus récente de arcpy
Pourriez-vous y jetter un oeuil s'il vous plait?
Voici :
Code:
import arcpy import arcpy.mapping as m import os root_folder = r"path\to\root\folder" add_lyr_1 = r"path\to\file1.lyr" add_lyr_2 = r"path\to\file2.lyr" add_lyr_3 = r"path\to\file3.lyr" ## create list of lyr files add_lyrs = [add_lyr_1, add_lyr_2, add_lyr_3] mxd_paths = [] ## add all mxd paths to a list for root, dirs, files in os.walk (root_folder): for f in files: if f.endswith(".mxd"): mxd_paths.append("{0}\\{1}".format(root, f)) ## print to test #print(mxd_paths) for mxd_doc in mxd_paths: mxd_name = mxd_doc.rsplit("\\")[-1] arcpy.AddMessage(mxd_name) ## access the mxd mxd = m.MapDocument(mxd_doc) ## only access the desired dataframe ## you might want to use a dataframe name / wildcard to ## add layers to correct dataframe if you have multiple df = m.ListDataFrames(mxd)[0] ## add each layer file, one on top of the other. for lyr_file in add_lyrs: add_lyr = m.Layer(lyr_file) m.AddLayer(df, add_lyr ,"TOP") mxd.save()
Hors ligne
Pages: 1
- Sujet précédent - ArcPy arcgis 10.8: ajout de couches dans mxd avec symbologie - Sujet suivant