Anlagen entfernen (Data Management)
Zusammenfassung
Entfernt Anlagen aus den Datensätzen einer Geodatabase-Feature-Class oder -Tabelle. Da Anlagen eigentlich nicht im Eingabe-Dataset gespeichert werden, werden keine Änderungen an dieser Feature-Class oder Tabelle vorgenommen, sondern an der in Beziehung stehenden Geodatabase-Tabelle, in der die Anlagen gespeichert und Verknüpfungen zum Eingabe-Dataset verwaltet werden. Eine Zuordnungstabelle wird verwendet, um zu bestimmen, aus welchen Eingabedatensätzen (bzw. Attributgruppen von Datensätzen) Anlagen entfernt werden.
Bild
![Abbildung "Anlagen entfernen" Abbildung "Anlagen entfernen"](0017/GUID-858B2375-7FA1-4EE0-95A6-AD4FD9A30BEA-web.png)
Verwendung
-
Eine Alternative zum Verwenden dieses Werkzeugs besteht im Löschen ausgewählter Datensätze aus der Tabelle InputDataset__ATTACH in der gleichen Geodatabase wie das Eingabe-Dataset, in dem Anlagen gespeichert und Verknüpfungen zum Eingabe-Dataset verwaltet werden.
Syntax
Parameter | Erläuterung | Datentyp |
in_dataset |
Geodatabase-Tabelle oder -Feature-Class, aus der Anlagen entfernt werden sollen. Anlagen werden nicht direkt aus dieser Tabelle entfernt, sondern aus der in Beziehung stehenden Anlagetabelle, in der die Anlagen gespeichert werden. Das Eingabe-Dataset muss in einer Geodatabase der Version 10 oder höher enthalten sein, und für die Tabelle müssen Anlagen aktiviert sein. | Table View |
in_join_field |
Feld im Eingabe-Dataset, das über Werte verfügt, die zu den Werten im Zuordnungs-Join-Feld passen. Aus Datensätzen, die über Join-Feld-Werte verfügen, die im Eingabe-Dataset und der Zuordnungstabelle übereinstimmen, werden Anlagen entfernt. Dieses Feld kann ein Objekt-ID-Feld oder irgendein anderes identifizierendes Attribut sein. | Field |
in_match_table |
Tabelle, die bestimmt, aus welchen Eingabedatensätzen Anhänge entfernt werden. | Table View |
in_match_join_field |
Feld aus der Zuordnungstabelle, das angibt, aus welchen Datensätzen im Eingabe-Dataset angegebene Anlagen entfernt werden. Dieses Feld kann Werte enthalten, die den Objekt-IDs des Eingabe-Datasets oder einem anderen identifizierenden Attribut entsprechen. | Field |
in_match_name_field (optional) |
Feld aus der Zuordnungstabelle, das Namen der Anlagen enthält, die aus Eingabe-Dataset-Datensätzen entfernt werden sollen. Wenn kein Namensfeld angegeben wird, werden alle Anlagen aus jedem im Zuordnungs-Join-Feld angegebenen Datensatz entfernt. Wenn ein Namensfeld angegeben wird, aber ein Datensatz über einen NULL- oder leeren Wert im Namensfeld verfügt, werden alle Anlagen aus diesem Datensatz entfernt. Die Werte dieses Feldes sollten die Kurznamen der zu entfernenden Anlage sein, nicht die vollständigen Pfade zu den Dateien, die für die ursprünglichen Anlagen verwendet wurden. | Field |
Codebeispiel
Der folgende Codeausschnitt zeigt, wie das Werkzeug "RemoveAttachments" im Python-Fenster verwendet wird.
import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture")
Das folgende Skript veranschaulicht, wie das Werkzeug "RemoveAttachments" in einem eigenständigen Skript verwendet wird.
## 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)