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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 25 April 2014 10:35

Loutre
Participant actif
Lieu: Montpellier
Date d'inscription: 12 Jan 2008
Messages: 146

Script Chemin relatif

Bonjour,

Est-ce que quelqu'un connait l'existence d'un script Python permettant d'enregistrer des fichiers .mxd en masse (un ou plusieurs) en chemin relatif ?

Je vais changer l'arborescence de mes dossiers, et pour ne pas perdre les sources de données de mes projets, je pense qu'il est nécessaire que je fasse cette petite manipulation en amont, histoire de ne pas réparer les sources de données sur chaque projet ArcMap de mes dossiers (une centaine).

Merci

Dernière modification par Loutre (Fri 25 April 2014 10:35)

Hors ligne

 

#2 Fri 25 April 2014 11:39

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: Script Chemin relatif

Bonjour,

Code:

mxd.relativePaths = True

Code:

import arcpy, os

#workspace to search for MXDs
Workspace = r"c:\Temp\MXDs"
arcpy.env.workspace = Workspace

#list map documents in folder
mxdList = arcpy.ListFiles("*.mxd")

#set relative path setting for each MXD in list.
for file in mxdList:
    #set map document to change
    filePath = os.path.join(Workspace, file)
    mxd = arcpy.mapping.MapDocument(filePath)
    #set relative paths property
    mxd.relativePaths = True
    #save map doucment change
    mxd.save()

=>http://support.esri.com/en/knowledgebas … tail/40656

Martin

Hors ligne

 

#3 Fri 25 April 2014 11:47

Loutre
Participant actif
Lieu: Montpellier
Date d'inscription: 12 Jan 2008
Messages: 146

Re: Script Chemin relatif

Salut,

Oui, j'ai vu il y a quelques instants ce script dans l'aide ESRI et j'étais en train de regarder. Seulement, j'aimerai paramétrer une ToolBox afin de créer un outil sur la base de ce script.

Merci de votre aide

Hors ligne

 

#4 Fri 25 April 2014 12:00

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: Script Chemin relatif

Ajout d'un outil de script => http://resources.arcgis.com/fr/help/mai … 01r000000/

Vous pouvez ajouter des paramètres à renseigner lors de l’exécution de l'outil (boîte de dialogue)
Définition des paramètres des outils de script => http://resources.arcgis.com/fr/help/mai … 00n000000/


Par exemple, choisir le dossier à traiter : Workspace = arcpy.GetParameterAsText(0) à renseigner dans votre outil de script comme paramètre de type répertoire.

Code:

import arcpy, os 

#workspace to search for MXDs
Workspace = arcpy.GetParameterAsText(0)
arcpy.env.workspace = Workspace

#list map documents in folder
mxdList = arcpy.ListFiles("*.mxd")

#set relative path setting for each MXD in list.
for file in mxdList:
    #set map document to change
    filePath = os.path.join(Workspace, file)
    mxd = arcpy.mapping.MapDocument(filePath)
    #set relative paths property
    mxd.relativePaths = True
    #save map doucment change
    mxd.save()

Hors ligne

 

#5 Fri 25 April 2014 12:30

Loutre
Participant actif
Lieu: Montpellier
Date d'inscription: 12 Jan 2008
Messages: 146

Re: Script Chemin relatif

Oui j'avais trouvé ce lien et créer une boite à outil permettant l'exécution du script. En revanche je ne trouve pas le type "répertoire" dans la liste des types de paramètres.

Mon script fonctionne seulement pour le moment si je renseigne au préalable le chemin du répertoire contenant les mxd : Workspace = r"c:\Temp\MXDs"

Dans ma boîte à outil, le type de document en paramètre est "Document ArcMap" avec "valeurs multiples" pour pouvoir traiter plusieurs fichiers en une seule fois.

Hors ligne

 

#6 Mon 28 April 2014 14:18

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: Script Chemin relatif

Bonjour,

Loutre a écrit:

je ne trouve pas le type "répertoire" dans la liste des types de paramètres


=> en effet, peut-être "dossier" ou "workspace"

Hors ligne

 

Pied de page des forums

Powered by FluxBB