Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 31 July 2015 10:25

Etienne72
Participant occasionnel
Lieu: Morlaix
Date d'inscription: 26 Jun 2009
Messages: 20

ArcGIS 10.2 - Générer automatiquement .lyr

Bonjour,

je souhaiterai savoir si quelqu'un possède un outil permettant de générer automatiquement un .lyr par mxd et si possible que le .lyr porte le même nom que le mxd. Actuellement, je fais un groupe de couches de tous les shapes appelés dans le mxd et j'exporte le .lyr.
Actuellement, je possède pas loin de 800 mxd.... ;-(
Je possède la version ArcGIS 10.2


Merci pour vos réponses.

Hors ligne

 

#2 Mon 03 August 2015 09:09

lebon henri
Participant actif
Lieu: Vendée
Date d'inscription: 14 Jan 2008
Messages: 99

Re: ArcGIS 10.2 - Générer automatiquement .lyr

Salut, tu peux utiliser ce script.

Code:

import os, arcpy


dossier_mxds = r"chemin du dossier avec les mxd"

dossier_output = r"chemin où tu veux mettre tes résultats"


for root, dirs, files in os.walk(dossier_mxds):

    for mxdName in files:

        mxdPath = os.path.join(root, mxdName)

        if mxdName.lower().endswith(".mxd"):

            mxdModel = arcpy.mapping.MapDocument(r" chemin mxd model") ##créer un mxd avec un groupe de couche vide nommé "groupLayerVide"

            dfmodel = arcpy.mapping.ListDataFrames(mxdModel)[0]

            groupLayer_vide = arcpy.mapping.ListLayers(mxdModel, "groupLayerVide", dfmodel)[0]


            mxdPath = os.path.join(dossier_mxds, mxdName)

            mxd = arcpy.mapping.MapDocument(mxdPath)

            for df in arcpy.mapping.ListDataFrames(mxd): ##attention, les couches ne seront pas regroupées par dataframe dans cette façon de faire

                for lyr in arcpy.mapping.ListLayers(mxd, "", df):

                    if lyr.name == lyr.longName: ##cette condition ne garde que les groupe de couche à la racine de la table of contents

                        arcpy.mapping.AddLayerToGroup(dfmodel, groupLayer_vide, lyr, "BOTTOM")



            nomMXD, ext = mxdName.split(".")

            groupLayer_vide.name = nomMXD

            nomLyr = nomMXD + ".lyr"

            cheminOutput = os.path.join(dossier_output, nomLyr)

            groupLayer_vide.saveACopy(cheminOutput)

Hors ligne

 

#3 Tue 04 August 2015 09:19

Etienne72
Participant occasionnel
Lieu: Morlaix
Date d'inscription: 26 Jun 2009
Messages: 20

Re: ArcGIS 10.2 - Générer automatiquement .lyr

Merci, je teste ça

Hors ligne

 

#4 Tue 04 August 2015 09:48

altigis
Participant assidu
Date d'inscription: 20 Jun 2013
Messages: 308

Re: ArcGIS 10.2 - Générer automatiquement .lyr

je suis preneur du suivis, cela m'intéresse fortement

Hors ligne

 

#5 Wed 05 August 2015 09:00

Etienne72
Participant occasionnel
Lieu: Morlaix
Date d'inscription: 26 Jun 2009
Messages: 20

Re: ArcGIS 10.2 - Générer automatiquement .lyr

Ça marche impeccable, merci beaucoup

Hors ligne

 

Pied de page des forums

Powered by FluxBB