#1 Wed 27 February 2013 10:22
- Etienne72
- Participant occasionnel
- Lieu: Morlaix
- Date d'inscription: 26 Jun 2009
- Messages: 20
Lister des couches dans un MXD
Bonjour,
je souhaiterai savoir si quelqu'un possède un outil permettant de lister les couches appelées dans un mxd et ensuite de les retranscrire dans un fichier texte contenant le nom du mxd, ainsi que le chemin de chaque couche appelée. Je connais l'outil ArcCrawler pour la version 9.3 d'arcgis, mais je suis en version ArcGIS Desktop 10 service Pack 5 et cet outil ne fonctionne plus.
Merci pour vos réponses.
Hors ligne
#2 Wed 27 February 2013 11:32
Re: Lister des couches dans un MXD
Bonjour,
Je n'ai pas encore pratiqué mais c'est faisable via Python.
Voir pun exemple ici : http://www.forumsig.org/showthread.php?t=36053
Le code serait le suivant (source : http://www.forumsig.org/showpost.php?p= … ostcount=6) :
import os
import arcpy
import glob
malistedemxd = glob.glob('O:/mxd/*.mxd')
for elt in malistedemxd:
print elt
mxd = arcpy.mapping.MapDocument(elt)
dfs = arcpy.mapping.ListDataFrames(mxd, "")
for df in dfs:
ListedeCouche = arcpy.mapping.ListLayers(mxd, "", df)
for couche in ListedeCouche:
if couche.isFeatureLayer :
print couche.dataSource
Hors ligne
#3 Wed 27 February 2013 11:38
- Etienne72
- Participant occasionnel
- Lieu: Morlaix
- Date d'inscription: 26 Jun 2009
- Messages: 20
Re: Lister des couches dans un MXD
Merci pour ton aide, mais est-ce que c'est possible de générer un fichier texte ou excel pour chaque MXD ?
Hors ligne
#4 Wed 27 February 2013 12:14
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Lister des couches dans un MXD
Bonjour,
Pour écrire dans un fichier texte, il suffirait de compléter le code de Robin en utilisant les méthode d'écrite de fichier de Python : pour chaque MXD, vous ouvrez un fichier texte avec la méthode f = open("file.txt", "w"), puis inscrivez un ligne pour chaque couche.
Voici un lien intéressant pour lire ou écrire en Python http://snipplr.com/view/6630/.
Si vous n'arrivez pas à vous en sortir, j'essaierai de me pencher dessus ce soir.
Cordialement,
Kevin.
Hors ligne
#5 Wed 27 February 2013 13:03
- Etienne72
- Participant occasionnel
- Lieu: Morlaix
- Date d'inscription: 26 Jun 2009
- Messages: 20
Re: Lister des couches dans un MXD
Merci pour ce lien, j'ai regardé les fonctions pour écrire un fichier, mais étant novice en Python je n'arrive pas à m'en sortir.
Cordialement
Etienne
Hors ligne
#6 Wed 27 February 2013 19:47
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Lister des couches dans un MXD
Vous trouverez en pièce jointe une boite à outils qui devrait répondre à votre besoin.
L'outil génère un fichier texte par MXD à la racine du dossier spécifié. Voici un exemple du contenu de ce fichier :
Emplacement du MXD : C:\temp\Sans nom.mxd
BLOC DE DONNEES;TYPE;NOM DE LA COUCHE;SOURCE DE DONNEES
Couches;FeatureLayer;RUE;Connexions aux bases de données\xxx.sde\RUE
Couches;FeatureLayer;COMMUNES poajzofj&àéç= *;C:\FDP_ORGANISATION.gdb\COMMUNES
Couches;FeatureLayer;COMMUNES_INI;C:\FDP_ORGANISATION.gdb\COMMUNES_INI
Une remarque : si un MXD contient des sources de données SDE invalides, le traitement prendra beaucoup de temps. C'est propre au mécanisme d'ouverture du MXD et je n'ai pas cherché à y remédier.
Cordialement,
Kevin
Hors ligne
#7 Thu 28 February 2013 08:42
- Etienne72
- Participant occasionnel
- Lieu: Morlaix
- Date d'inscription: 26 Jun 2009
- Messages: 20
Re: Lister des couches dans un MXD
Merci beaucoup, ça fonctionne super bien !!!!
Cordialement
Etienne
Hors ligne
#8 Thu 28 February 2013 09:47
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Lister des couches dans un MXD
Tant mieux, et merci pour le retour .
Kevin
Hors ligne
#9 Thu 14 March 2013 12:11
Re: Lister des couches dans un MXD
Bonjour,
Je viens de tester sur un ensemble de cartes pour envoyer à un client qui nous demandait le détail des cartes produites, l'outil est rapide et donne un résultat pratique à mon sens (import sous excel notamment).
Merci encore Kevin pour tes scripts bien pratiques.
Hors ligne
#10 Thu 14 March 2013 16:03
Re: Lister des couches dans un MXD
Bonjour,
Pour documenter un document ArcMap, j'aime bien l'addin X-Ray for ArcMap (il existe aussi pour la version 10.1).
L'outil permet de générer plusieurs fichiers Excel et aussi des pages HTML.
A+
Franck
Hors ligne
#11 Fri 15 March 2013 06:55
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Lister des couches dans un MXD
@Robin : de rien, c'est toujours un plaisir de se sentir utile
J'ai apporté une petite amélioration à cet outil : il permet désormais de lister les tables autonomes présentes dans le document ArcMap (mais pas les tables utilisées dans les jointures ou relations).
@Franck : merci pour le rappel de l'existence de cet AddIn. Je vais profiter de mes vacances pour prendre le temps de me l'approprier un peu plus.
Hors ligne
#12 Fri 05 May 2017 15:32
- romain.paoli
- Juste Inscrit !
- Date d'inscription: 30 Dec 2013
- Messages: 1
Re: Lister des couches dans un MXD
Merci pour cet outil fort utile, et bravo.
Hors ligne