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 datase de entrada, no se harán cambios a esa tabla o clase de entidad, sino más bien 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 a qué registros de entrada (o grupos de registros de atributos) se les eliminarán los adjuntos.
Ilustración
Uso
Una alternativa para utilizar esta herramienta es eliminar los registros seleccionados de la tabla InputDataset__ATTACH en la misma geodatabase que el Dataset de entrada, que almacena los adjuntos y mantiene vínculos con el Dataset de entrada.
Sintaxis
arcpy.management.RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
Parámetro | Explicación | Tipo de datos |
in_dataset | Clase de entidad o tabla de geodatabase de la cual eliminar 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 de entrada debe estar en una geodatabase versión 10 o más reciente y la tabla debe tener habilitados adjuntos. | Table View |
in_join_field | El campo del 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 quitará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 eliminarán los adjuntos. | Table View |
in_match_join_field | Al campo de la tabla de coincidencias que indica a qué registros en el Dataset de entrada se le quitará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_name_field (Opcional) | Campo de la tabla de coincidencias que tiene los nombres de los adjuntos que deben quitarse de los registros del Dataset de entrada. Si no se especifica un campo de nombre, se quitarán todos los adjuntos de cada registro especificado en el Campo de unión de coincidencias. 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 nombres cortos del adjunto a eliminar, no las rutas completas de estos archivos que se usan para crear los adjuntos originales. | Field |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_dataset | El dataset de entrada actualizado. | Vista de tabla |
Muestra de código
El siguiente fragmento de código ilustra la forma en que se debe usar la herramienta RemoveAttachments en la ventana de Python.
import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID",
r"C:\Data\matchtable.csv", "ParcelID",
"Picture")
El siguiente script ilustra la forma en que se debe usar la herramienta RemoveAttachments en una secuencia de comandos independiente.
# Delete unnecessary attachments from a feature class
import arcpy
import csv
input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
nameField = "Picture"
# Create a new Match Table csv file that will tell the RemoveAttachments tool
# which attachments to delete
writer = csv.writer(open(matchTable, "wb"), delimiter=",")
# write a header row (the table will have two columns: ParcelID and Picture)
writer.writerow([matchField, nameField])
# create a list of the attachments to delete
# removes attachments pic1a.jpg and pic1b.jpg from feature 1, pic3.jpg from
# feature 3, and pic4.jpg from feature 4.
deleteList = [[1, "pic1a.jpg"], [1, "pic1b.jpg"], [3, "pic3.jpg"], [4, "pic4.jpg"]]
# iterate through the delete list and write it to the Match Table csv
for row in deleteList:
writer.writerow(row)
del writer
# use the match table with the Remove Attachments tool
arcpy.RemoveAttachments_management(input, inputField, matchTable, matchField,
nameField)
Entornos
Información de licenciamiento
- Basic: No
- Standard: Sí
- Advanced: Sí