アタッチメントの削除 (Remove Attachments) (データ管理)

概要

ジオデータベース フィーチャクラスまたはテーブルのレコードからアタッチメントを削除します。アタッチメントは実際には入力データセットに格納されていないため、フィーチャクラスまたはテーブルに対する変更は発生しません。変更は、アタッチメントを格納して入力データセットとのリンクを管理している関連ジオデータベース テーブルに対して行われます。アタッチメントが削除される入力レコード (またはレコードの属性グループ) を識別するには、照合テーブルを使用します。

[アタッチメントの削除 (Remove Attachments)] の図

使用法

  • このツールを使用する以外の方法として、[入力データセット] と同じジオデータベースにある InputDataset__ATTACH テーブルから選択したレコードを削除する方法があります。このテーブルはアタッチメントを格納し、[入力データセット] へのリンクを管理しています。

構文

arcpy.management.RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
パラメーター説明データ タイプ
in_dataset

アタッチメントを削除するジオデータベース テーブルまたはフィーチャクラス。アタッチメントは直接このテーブルから削除されるのではなく、アタッチメントを格納している関連アタッチメント テーブルから削除されます。[入力データセット] はバージョン 10 以降のジオデータベースに格納されている必要があります。また、テーブルでアタッチメントが有効になっている必要もあります。

Table View
in_join_field

[照合結合フィールド] の値に一致する値を含む入力データセットのフィールド。[入力データセット][照合テーブル] の間で一致する結合フィールド値を持つレコードからアタッチメントが削除されます。このフィールドには、Object ID フィールドまたはその他の個別属性を指定できます。

Field
in_match_table

アタッチメントを削除する入力レコードを識別するテーブル。

Table View
in_match_join_field

指定したアタッチメントを削除する [入力データセット] 内のレコードを識別する照合テーブルのフィールド。このフィールドには、[入力データセット] の Object ID やその他の個別属性に一致する値を指定できます。

Field
in_match_name_field
(オプション)

[入力データセット] のレコードから削除するアタッチメントの名前を保持する照合テーブルのフィールド。名前フィールドを指定しない場合は、[照合結合フィールド] で指定した各レコードからすべてのアタッチメントが削除されます。名前フィールドが指定されていても、レコードの名前フィールドに NULL または空の値が含まれている場合は、そのレコードからすべてのアタッチメントが削除されます。このフィールドの値には、元のアタッチメントを作成するために使用したファイルの絶対パスではなく、削除するアタッチメントの短い名前を指定します。

Field

派生した出力

名前説明データ タイプ
out_dataset

更新された入力データセット。

テーブル ビュー

コードのサンプル

RemoveAttachments (アタッチメントの削除) の例 1 (Python ウィンドウ)

次のコード スニペットは、Python ウィンドウで RemoveAttachments (アタッチメントの削除) ツールを使用する方法を示しています。

import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", 
                                   r"C:\Data\matchtable.csv", "ParcelID", 
                                   "Picture")
RemoveAttachments (アタッチメントの削除) の例 2 (スタンドアロン スクリプト)

次のスクリプトは、スタンドアロン スクリプトで RemoveAttachments ツールを使用する方法を示しています。

# 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)

ライセンス情報

  • Basic: いいえ
  • Standard: はい
  • Advanced: はい

関連トピック