Краткая информация
Удаляет вложения из класса пространственных объектов или записей таблицы базы геоданных. Поскольку вложения не хранятся в входном наборе данных, класс пространственных объектов или таблица не подвергается изменениям в отличие от связанной базы геоданных, которая хранит вложения и поддерживает ссылки на входной набор данных. Таблица соответствия используется для определения, у которых из входных записей (или атрибутивных групп записей) будут удалены вложения.
Рисунок
Использование
Альтернативой использования этого инструмента является удаление выбранных записей из таблицы InputDataset__ATTACH в той же базе геоданных, что и Входной набор данных (Input Dataset), который сохраняет вложения и поддерживает ссылки на Входной набор данных (Input Dataset).
Синтаксис
RemoveAttachments_management (in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
Параметр | Объяснение | Тип данных |
in_dataset | Таблица или класс объектов базы геоданных, из которых следует удалить вложения. Вложения не удаляются напрямую из этой таблицы, а скорее из связанной таблицы, в которой хранятся вложения. Входной набор данных (Input Dataset) должен храниться в базе геоданных 10.0 или более поздней версии, и вложения для таблицы должны быть разрешены. | Table View |
in_join_field | Поле из входного набора данных, которое имеет значения, соответствующие значениям в Поле соединения соответствий (Match Join Field). Вложения будут удалены в записях, которые имеют значения поля соединения соответствий между Входным набором данных (Target Dataset) и Таблицей соответствия (Match Table). Это поле может быть полем Идентификатор объекта (Object ID) или каким-либо другим идентифицирующим атрибутом. | Field |
in_match_table | Таблица, которая определяет, из каких входных записей будут удалены вложения. | Table View |
in_match_join_field | Поле из таблицы соответствий, которое указывает, к каким записям Входного набора данных (Target Dataset) будут добавлены выбранные вложения. Это поле может иметь значения, соответствующие идентификаторам объекта Входного набора данных (Input Dataset) или какому-либо другому идентифицирующему атрибуту. | Field |
in_match_name_field (дополнительно) | Поле из таблицы соответствий, которое содержит имена вложений для удаления из записей Входного набора данных (Target Dataset). Если не указано поле имени, все вложения будут удалены из каждой записи, указанной в Поле соединения соответствий (Match Join Field). Если указано поле имени, но запись имеет значение NULL или пустое значение в поле имени, все вложения будут удалены из этой записи. Значения этого поля должны иметь короткие имена вложений для удаления, а не полные пути к файлам вложений. | Field |
Пример кода
Удалить вложения (RemoveAttachments). Пример (окно Python)
Следующий фрагмент кода демонстрирует, как использовать инструмент Удалить вложения (RemoveAttachments) в окне Python.
import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture")
Удалить вложения (RemoveAttachments). Пример (автономный скрипт Python)
Следующий скрипт демонстрирует, как использовать инструмент Удалить вложения (RemoveAttachments) в автономном скрипте.
## Some of the attachments we added to a feature class are unnecessary, let's remove them.
import csv, arcpy, os, sys
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)