Agregar adjuntos (Administración de datos)

Resumen

Agrega adjuntos de archivos a los registros de una tabla o clase de entidad de geodatabase. Los adjuntos se almacenan 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 indica para cada registro de entrada (o un grupo de registros de atributo) la ruta a un archivo para agregarlo como adjunto a ese registro.

Obtenga más información sobre cómo trabajar con las herramientas de geoprocesamiento de adjuntos

Ilustración

Ilustración de la herramienta Agregar adjuntos

Uso

  • Antes de poder agregar adjuntos usando esta herramienta se deben habilitar usando la herramienta Habilitar adjuntos.

  • Los archivos adjuntos que se agreguen mediante esta herramienta se copiarán en la geodatabase. Los archivos de adjuntos originales no se verán afectados. Si se modifican los archivos originales, los 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. A continuación, vuelva a agregar los archivos modificados como nuevos adjuntos.

  • Si el valor del parámetro Dataset de entrada contiene un campo existente que es la ruta de acceso a los archivos adjuntos que se van a agregar y no desea utilizar un valor independiente para el parámetro Tabla de coincidencias, especifique el mismo dataset para los parámetros Dataset de entrada y 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 ello, asegúrese de que el valor del parámetro Tabla de coincidencias contiene varios registros para ese Id. de entrada. Por ejemplo, el registro 1 tiene un Id. de entrada de 1 y un nombre de ruta de pic1a.jpg, y el registro 2 tiene un Id. de entrada de 1 y un nombre de ruta de pic1b.jpg.

Parámetros

EtiquetaExplicaciónTipo de datos
Dataset de entrada

La tabla de la geodatabase o clase de entidad donde se agregarán los adjuntos. Los adjuntos no se agregan directamente a esta tabla, sino a una tabla de adjuntos relacionada que mantiene un vínculo con el dataset de entrada.

El dataset se debe guardar en una geodatabase versión 10.0 o más reciente, y la tabla debe tener habilitados los adjuntos.

Table View
Campo de unión de entrada

Un campo del valor del parámetro Dataset de entrada que tiene valores coincidentes en el valor del parámetro Campo de unión de coincidencias. Los registros con valores coincidentes tendrán adjuntos agregados. Este campo puede ser un campo de ID de objeto o cualquier otro atributo de identificación.

Field
Tabla de concordancias

Tabla que identifica a qué registros de entrada se les agregarán adjuntos y las rutas a esos adjuntos.

Table View
Campo de unión de concordancias

Un campo del valor del parámetro Tabla de coincidencias que indica a qué registros del valor del parámetro Dataset de entrada se les agregarán los anexos especificados.

Field
Campo de ruta de coincidencias

Un campo del valor del parámetro Tabla de coincidencias que contiene rutas a los archivos adjuntos que se agregarán a los registros del valor del parámetro Dataset de entrada.

Un campo del valor del parámetro in_match_table que contiene rutas a los archivos adjuntos que se agregarán a los registros del valor del parámetro in_dataset.

Field
Carpeta de trabajo
(Opcional)

Carpeta o espacio de trabajo en donde se centralizan los archivos de adjuntos. Al especificar una carpeta de trabajo, las rutas en el valor del parámetro Campo Ruta de coincidencias pueden ser nombres cortos de archivos relacionados con la carpeta de trabajo.

Por ejemplo, si carga archivos adjuntos con rutas como C:\MyPictures\image1.jpg y C:\MyPictures\image2.jpg, utilice un valor de parámetro de C:\MyPictures. Entonces, las rutas del valor del parámetro Campo Ruta de coincidencias pueden ser los nombres cortos como image1.jpg y image2.jpg en lugar de las rutas completas.

Folder

Salida derivada

EtiquetaExplicaciónTipo de datos
Dataset de entrada actualizado

El dataset de entrada actualizado.

Table View

arcpy.management.AddAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
NombreExplicaciónTipo de datos
in_dataset

La tabla de la geodatabase o clase de entidad donde se agregarán los adjuntos. Los adjuntos no se agregan directamente a esta tabla, sino a una tabla de adjuntos relacionada que mantiene un vínculo con el dataset de entrada.

El dataset 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

Un campo del valor del parámetro in_dataset que tiene valores coincidentes en el valor del parámetro in_match_join_field. Los registros con valores coincidentes tendrán adjuntos agregados. 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

Un campo del valor del parámetro in_match_table que indica a qué registros del valor del parámetro in_dataset se les agregarán los anexos especificados.

Field
in_match_path_field

Un campo del valor del parámetro Tabla de coincidencias que contiene rutas a los archivos adjuntos que se agregarán a los registros del valor del parámetro Dataset de entrada.

Un campo del valor del parámetro in_match_table que contiene rutas a los archivos adjuntos que se agregarán a los registros del valor del parámetro in_dataset.

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 valor del parámetro in_match_path_field pueden ser nombres cortos de archivos relacionados con la carpeta de trabajo.

Por ejemplo, si carga archivos adjuntos con rutas como C:\MyPictures\image1.jpg y C:\MyPictures\image2.jpg, utilice un valor de parámetro de C:\MyPictures. Entonces, las rutas del valor del parámetro in_match_path_field pueden ser los nombres cortos como image1.jpg y image2.jpg en lugar de las rutas completas.

Folder

Salida derivada

NombreExplicaciónTipo de datos
out_dataset

El dataset de entrada actualizado.

Table View

Muestra de código

Ejemplo 1 de AddAttachments (ventana de Python)

El siguiente fragmento de código ilustra la forma en que se debe usar la función AddAttachments en la ventana de Python.

import arcpy
arcpy.management.AddAttachments(
    r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", 
    "ParcelID", "Picture", r"C:\Pictures")
Ejemplo 2 de AddAttachments (script independiente)

El siguiente script ilustra la forma en que se debe usar la función AddAttachments en un script independiente.

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

import arcpy
import os

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

# Create a Match Table csv file
with open(matchTable, "w") as csv:
    # write a header row (the table will have two columns: ParcelID and Picture)
    csv.write(f"{matchField},{pathField}\n")
    
    # Iterate through each picture in the directory and write a row to the table
    for file in os.listdir(picFolder):
        if file.find(".jpg") > -1:
            csv.write(f"{file.replace('.jpg', '')},{file}\n")

# The input feature class must first have GDB attachments enabled
arcpy.management.EnableAttachments(input)

# Use the match table with the Add Attachments tool
arcpy.management.AddAttachments(input, inputField, matchTable, matchField, 
                                pathField, picFolder)