Resumen
Agrega adjuntos de archivos a los registros de una tabla o clase de entidad de geodatabase. Los adjuntos se almacenan internamente en la geodatabase en una tabla de adjuntos separada que mantiene vínculo con el dataset objetivo. Los adjuntos se agregan al dataset de destino usando una tabla de coincidencia que dicta para cada registro de entrada (o un grupo de registros de atributo) la ruta a un archivo para agregarlo como adjunto a ese registro.
Más información sobre los adjuntos de geodatabase
Obtenga más información sobre cómo trabajar con las herramientas de geoprocesamiento de adjuntos
Ilustración
Uso
Antes de que se pueda agregar adjuntos usando esta herramienta, primero se deben habilitar usando la herramienta Habilitar los adjuntos.
Los adjuntos que se agregan usando esta herramienta se copiarán internamente en la geodatabase. Los archivos de adjuntos originales no se verán afectados de ninguna manera. Si se modifican los archivos originales, estos cambios no se aplicarán automáticamente al adjunto de la geodatabase; para sincronizar los cambios efectuados en la geodatabase, elimine los adjuntos afectados usando la herramienta Quitar adjuntos y, a continuación, vuelva a agregar los archivos modificados como adjuntos nuevos.
Si su Dataset de entrada ya incluye un campo que es la ruta para los adjuntos a agregar y no desea utilizar una Tabla de coincidencias por separado, especifique el mismo dataset para ambos, el Dataset de entrada y la Tabla de coincidencias. La herramienta seleccionará automáticamente el campo de la ID del objeto para ambos campos de unión, y usted puede especificar qué campo de la entrada contiene las rutas a los archivos de adjuntos.
Se pueden adjuntar varios archivos a un registro de tabla o clase de entidad único. Para lograrlo, la Tabla de coincidencias debe incluir varios registros para la ID de esa entrada (por ejemplo, el registro 1 tiene una ID de entrada de 1 y el nombre de la ruta es pic1a.jpg, y el registro 2 tiene una ID de entrada de 1 y el nombre de la ruta es pic1b.jpg).
Sintaxis
AddAttachments_management (in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
Parámetro | Explicación | Tipo de datos |
in_dataset | Tabla de geodatabase o clase de entidad a la cual agregar adjuntos. Los adjuntos no se agregan directamente a esta tabla, sino más bien a una tabla de adjuntos relacionada que mantiene un vínculo con el dataset de entrada. El Dataset de entrada se debe guardar en una geodatabase versión 10.0 o más reciente, y la tabla debe tener habilitados los adjuntos. | Table View |
in_join_field | Campo de Dataset de entrada que tiene valores que coinciden con los valores en el Campo de unión de coincidencias. A los registros que tienen valores de campos de unión que coinciden entre el Dataset de entrada y la Tabla de coincidencias se les agregarán los adjuntos. Este campo puede ser un campo de ID de objeto o cualquier otro atributo de identificación. | Field |
in_match_table | Tabla que identifica a qué registros de entrada se les agregarán adjuntos y las rutas a esos adjuntos. | Table View |
in_match_join_field | Campo de la tabla de coincidencias que indica a qué registros en el Dataset de entrada se le agregarán adjuntos específicos. Este campo puede tener valores que coinciden con las ID de los objetos del Dataset de entrada u otro atributo que los identifique. | Field |
in_match_path_field | Campo de la tabla de coincidencias que contiene rutas a los adjuntos para agregar a los registros del Dataset de entrada. | Field |
in_working_folder (Opcional) | Carpeta o espacio de trabajo en donde se centralizan los archivos de adjuntos. Al especificar una carpeta de trabajo, las rutas en el Campo Ruta de coincidencias pueden ser nombres cortos de archivos relacionados con la carpeta de trabajo. Por ejemplo, si al cargar adjuntos con rutas como C:\MyPictures\image1.jpg, C:\MyPictures\image2.jpg, se establece la Carpeta de trabajo en C:\MyPictures, entonces las rutas en el campo Ruta de coincidencia pueden ser los nombres cortos como image1.jpg y image2.jpg, en vez de rutas completas más largas. | Folder |
Ejemplo de código
Ejemplo de AddAttachments (ventana de Python)
El siguiente fragmento de código ilustra la forma en que se debe usar la herramienta AddAttachments en la ventana de Python.
import arcpy
arcpy.AddAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture" , r"C:\Pictures")
Ejemplo de AddAttachments (secuencia de comandos Python independiente)
La siguiente secuencia de comandos ilustra la forma en que se debe usar la herramienta AddAttachments en una secuencia de comandos independiente.
"""
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])
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: No
- ArcGIS for Desktop Standard: Sí
- ArcGIS for Desktop Advanced: Sí