Ajouter une pièce jointe (Gestion des données)

Récapitulatif

Ajoute des pièces jointes de fichier aux enregistrements d'une classe d'entités ou de table d'une géodatabase. Les pièces jointes sont stockées en interne dans la géodatabase dans une table de pièce jointe séparée qui conserve un lien avec le jeu de données cible. Les pièces jointes sont ajoutées au jeu de données cible à l'aide d'une table de correspondances qui dicte pour chaque enregistrement en entrée (ou un groupe attributaire d'enregistrements) le chemin d'accès à un fichier à ajouter en tant que pièce jointe à cet enregistrement.

En savoir plus sur les pièces jointes d'une géodatabase

Pour en savoir plus sur l'utilisation des outils de géotraitement des pièces jointes

Illustration

Illustration de l'outil Ajouter une pièce jointe
Illustration de Ajouter une pièce jointe

Utilisation

Syntaxe

AddAttachments_management (in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
ParamètreExplicationType de données
in_dataset

Table de géodatabase ou classe d'entités à laquelle ajouter des pièces jointes. Les pièces jointes ne sont pas ajoutées directement à cette table, mais à une table de pièces jointes associée qui conserve le lien avec le jeu de données en entrée.

Le jeu de données en entrée doit être stocké dans une géodatabase version 10.0 ou ultérieure, et la table doit avoir des pièces jointes activées.

Table View
in_join_field

Champ provenant du Jeu de données en entrée contenant des valeurs qui correspondent aux valeurs du champ Apparier le champ de jointure. Des pièces jointes sont ajoutées aux enregistrements qui ont des valeurs de champs de jointure correspondant entre le Jeu de données en entrée et la Table de correspondances. Ce champ peut être un champ d'identifiant d'objet ou tout autre attribut d'identification.

Field
in_match_table

Table identifiant les enregistrements en entrée auxquels des pièces jointes seront ajoutées, ainsi que les chemins d'accès à ces pièces jointes.

Table View
in_match_join_field

Champ provenant de la table de correspondances qui indique à quels enregistrements du Jeu de données en entrée les pièces jointes spécifiées seront ajoutées. Ce champ peut avoir des valeurs qui correspondent aux identifiants d'objet du Jeu de données en entrée ou à un autre attribut d'identification.

Field
in_match_path_field

Champ provenant de la table de correspondances qui contient les chemins d'accès aux pièces jointes à ajouter aux enregistrements du Jeu de données en entrée.

Field
in_working_folder
(Facultatif)

Dossier ou espace de travail dans lequel les fichiers de pièce jointe sont centralisés. En spécifiant un dossier actif, les chemins d'accès du champ Apparier le champ de tracé peuvent être les noms courts de fichiers relatifs au dossier actif.

Par exemple, si vous chargez des pièces jointes avec des chemins d'accès tels que C:\MyPictures\image1.jpg ou C:\MyPictures\image2.jpg, définissez le dossier actif sur C:\MyPictures. Les chemins d'accès du champ Apparier le champ de tracé peuvent alors êtres des noms courts tels que image1.jpg et image2.jpg, plutôt que des chemins complets plus longs.

Folder

Exemple de code

AddAttachments, exemple (fenêtre Python)

L'extrait de code suivant illustre l'utilisation de l'outil AddAttachments dans la fenêtre Python.

import arcpy
arcpy.AddAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture" , r"C:\Pictures")
Exemple d'utilisation de l'outil AddAttachments (script Python autonome)

Le script suivant illustre l'utilisation de l'outil AddAttachments dans un script autonome.

"""
Example: we have a folder of digital photographs of vacant homes; the photos
are named according to the ParcelID of the house in the picture. Let's add
these photos to a parcel feature class as attachments.
"""

import csv
import arcpy
import os
import sys

input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
pathField = "Picture" 
picFolder = r"C:\Pictures"

try:
    # create a new Match Table csv file
    writer = csv.writer(open(matchTable, "wb"), delimiter=",")

    # write a header row (the table will have two columns: ParcelID and Picture)
    writer.writerow([matchField, pathField])

    # iterate through each picture in the directory and write a row to the table
    for file in os.listdir(picFolder):
        if str(file).find(".jpg") > -1:
            writer.writerow([str(file).replace(".jpg", ""), file])

    del writer

    # the input feature class must first be GDB attachments enabled
    arcpy.EnableAttachments_management(input)

    # use the match table with the Add Attachments tool
    arcpy.AddAttachments_management(input, inputField, matchTable, matchField, pathField, picFolder)
except:
    print arcpy.GetMessages(2)

Environnements

Thèmes connexes

9/12/2013