Quitar adjuntos (Administración de datos)

Resumen

Elimina los adjuntos de la clase de entidad de geodatabase o de los registros de tabla.

Debido a que los adjuntos en realidad no se almacenan en el dataset de entrada, no se harán cambios en esa tabla o clase de entidad. Los cambios se realizarán en la tabla de geodatabase relacionada que almacena los adjuntos y mantiene el vínculo con el dataset de entrada. Se usa una tabla de coincidencia para identificar los registros de entrada (o grupos de registros de atributos) cuyos adjuntos se eiminarán.

Más información sobre cómo trabajar con las herramientas del conjunto de herramientas Adjuntos

Ilustración

Ilustración de la herramienta Eliminar adjuntos

Uso

  • Esta herramienta no respeta las selecciones realizadas.

  • Una alternativa para utilizar esta herramienta es eliminar los registros seleccionados de la tabla InputDataset__ATTACH en la misma geodatabase que el valor Dataset de entrada, que almacena los adjuntos y mantiene el vínculo con el valor Dataset de entrada.

  • Esta herramienta admite una capa de entidades alojada de ArcGIS Enterprise como entrada.

Parámetros

EtiquetaExplicaciónTipo de datos
Dataset de entrada

Una clase de entidad o tabla de geodatabase de la que se eliminarán los adjuntos. Los adjuntos no se eliminan directamente de esta tabla, sino más bien de la tabla de adjuntos relacionada que almacena los adjuntos. El dataset debe tener habilitados los adjuntos.

Table View
Campo de unión de entrada

Un campo del valor del parámetro Dataset de entrada que contiene valores que coinciden con los valores del valor del parámetro Campo de unión de concordancias. Se eliminarán los adjuntos de los registros que tengan valores de campo de unión que coincidan con el valor del parámetro Dataset de entrada y el valor del parámetro Tabla de concordancias. Este campo puede ser un campo de ID de objeto o cualquier otro atributo de identificación.

Field
Tabla de concordancias

Una tabla que identifica de qué registros de entrada se eliminarán adjuntos.

Table View
Campo de unión de concordancias

Un campo de la tabla de concordancias que indica de qué registros del valor del parámetro Dataset de entrada se eliminarán adjuntos específicos. Este campo tiene valores que coinciden con el campo de Id. de objeto de Dataset de entrada o algún otro atributo identificador.

Field
Campo de nombre de concordancias
(Opcional)

Un campo de la tabla de concordancias que contiene los nombres de los adjuntos que se eliminarán de los registros del valor del parámetro Dataset de entrada. Si no se especifica un campo de nombre, todos los adjuntos se eliminarán de cada registro especificado en el valor del parámetro Campo de unión de concordancias. Si se especifica un campo de nombre, pero un registro tiene un valor nulo o vacío en el campo de nombre, se eliminarán todos los adjuntos de ese registro. Los valores de este campo deben ser los nombres cortos de los adjuntos a eliminar, no las rutas completas a los archivos utilizados para crear los adjuntos originales.

Field

Salida derivada

EtiquetaExplicaciónTipo de datos
Dataset de entrada actualizado

El dataset de entrada actualizado.

Table View

arcpy.management.RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
NombreExplicaciónTipo de datos
in_dataset

Una clase de entidad o tabla de geodatabase de la que se eliminarán los adjuntos. Los adjuntos no se eliminan directamente de esta tabla, sino más bien de la tabla de adjuntos relacionada que almacena los adjuntos. El dataset debe tener habilitados los adjuntos.

Table View
in_join_field

Un campo del valor del parámetro in_dataset que contiene valores que coinciden con los valores del valor del parámetro in_match_join_field. Se eliminarán los adjuntos de los registros que tengan valores de campo de unión que coincidan con el valor del parámetro in_dataset y el valor del parámetro in_match_table. Este campo puede ser un campo de ID de objeto o cualquier otro atributo de identificación.

Field
in_match_table

Una tabla que identifica de qué registros de entrada se eliminarán adjuntos.

Table View
in_match_join_field

Un campo de la tabla de concordancias que indica de qué registros del valor del parámetro in_dataset se eliminarán adjuntos específicos. Este campo tiene valores que coinciden con el campo de Id. de objeto de in_dataset o algún otro atributo identificador.

Field
in_match_name_field
(Opcional)

Un campo de la tabla de concordancias que contiene los nombres de los adjuntos que se eliminarán de los registros del valor del parámetro in_dataset. Si no se especifica un campo de nombre, todos los adjuntos se eliminarán de cada registro especificado en el valor del parámetro in_match_join_field. Si se especifica un campo de nombre, pero un registro tiene un valor nulo o vacío en el campo de nombre, se eliminarán todos los adjuntos de ese registro. Los valores de este campo deben ser los nombres cortos de los adjuntos a eliminar, no las rutas completas a los archivos utilizados para crear los adjuntos originales.

Field

Salida derivada

NombreExplicaciónTipo de datos
out_dataset

El dataset de entrada actualizado.

Table View

Muestra de código

Ejemplo 1 RemoveAttachments (ventana de Python)

El siguiente fragmento de código demuestra cómo utilizar la función RemoveAttachments en la ventana de Python.

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

El siguiente script muestra cómo utilizar la función RemoveAttachments en un script independiente.

# Delete unnecessary attachments from a feature class using a match table
import arcpy

input = r"C:\Data\City.gdb\Parcels"
input_field = "OBJECTID"
match_field = "MatchID"
name_field = "Filename"
workspace = arcpy.Describe(input).path

# Create a new geodatabase Match Table for the RemoveAttachments tool
# to delete the designated attachments for the associated ObjectID and file name.
match_table = arcpy.management.CreateTable(workspace, "remove_matchtable")
arcpy.management.AddFields(match_table, [['MatchID', 'LONG'], ['Filename', 'TEXT']])

# Create a list to remove attachments pic1a.jpg and pic1b.jpg from feature 1,
# pic3.jpg from feature 3, and pic4.jpg from feature 4.
delete_list = [[1, "pic1a.jpg"], [1, "pic1b.jpg"], [3, "pic3.jpg"], [4, "pic4.jpg"]]

# Iterate through the delete list and write it to the Match Table.
with arcpy.da.InsertCursor(match_table, ['MatchID', 'FileName']) as match_cursor:
    for row in delete_list:
        new_row = row[0], row[1]
        match_cursor.insertRow(new_row)

del match_cursor

# Use the match table with the Remove Attachments tool.
arcpy.management.RemoveAttachments(input, input_field, match_table, match_field, name_field)

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados