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.
Abbildung
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
RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
Parameter | Erklärung | 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 |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_dataset | Das aktualisierte Eingabe-Dataset. | Tabellensicht |
Codebeispiel
Der folgende Codeausschnitt veranschaulicht, 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")
Mit dem folgenden Skript wird die Verwendung des Werkzeugs RemoveAttachments in einem eigenständigen Skript veranschaulicht.
# 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)
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Ja
- Advanced: Ja