Résumé
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
Utilisation
Avant d'ajouter des pièces jointes à l'aide de cet outil, celles-ci doivent être autorisées à l'aide de l'outil Activer les pièces jointes.
Les pièces jointes ajoutées à l'aide de cet outil seront copiées en interne vers la géodatabase. Les fichiers de pièce jointe d'origine ne seront en aucune façon affectés. Si les fichiers d'origine sont modifiés, ces changements ne seront pas apportés automatiquement à la pièce jointe à la géodatabase. Pour synchroniser les modifications apportées à la géodatabase, supprimez les pièces jointes concernées à l'aide de l'outil Supprimer des pièces jointes, puis rajoutez les fichiers modifiés en tant que nouvelles pièces jointes.
Si votre Jeu de données en entrée contient déjà un champ qui est le chemin d'accès aux pièces jointes à ajouter, et que vous ne souhaitez pas utiliser une Table de correspondances séparée, spécifiez le même jeu de données pour le Jeu de données en entrée et la Table de correspondances. L'outil sélectionnera automatiquement le champ d'identifiant d'objet pour les deux champs de jointure, et vous pouvez spécifier le champ de l'entrée qui contient les chemins d'accès aux fichiers de pièce jointe.
Il est possible de joindre plusieurs fichiers à une seule classe d'entités ou à un seul enregistrement de table. Pour cela, la Table de correspondances doit contenir plusieurs enregistrements pour cet identifiant d'entrée (par exemple, l'enregistrement 1 possède un InputID de 1 et un nom de chemin d'accès pic1a.jpget l'enregistrement 2 possède un InputID de 1 et un nom de chemin d'accès pic1b.jpg).
Syntaxe
AddAttachments_management (in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
Paramètre | Explication | Type 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 Exception as err:
print(err.args[0])
Environnements
Informations de licence
- ArcGIS Desktop Basic: Non
- ArcGIS Desktop Standard: Oui
- ArcGIS Desktop Advanced: Oui