HOW TO

Automatisches Ausfüllen von Werten basierend auf gemeinsamen Feldern mithilfe von Attributregeln in ArcGIS Pro

Last Published: October 13, 2024

Beschreibung

Beim Erstellen von Features für einen neuen Feature-Layer ist es ungewöhnlich, auf eine vorhandene Tabelle oder eine Attributtabelle eines Feature-Layers zu verweisen, um den Wert des Abgleichfeldes sowohl der Tabelle als auch des Feature-Layers zu füllen. Wenn Sie eine große Anzahl von Features erstellen, kann das erneute Füllen des Feldes mit der vorhandenen Tabelle zeitaufwändig sein oder einen zusätzlichen Schritt zum Ausführen der Berechnung erfordern. Es ist möglich, die Daten automatisch zu füllen, wenn das Feature mithilfe von Attributregeln erstellt wird.

Lösung oder Problemumgehung

  1. Öffnen Sie ein neues Projekt, und fügen Sie sowohl die Tabelle als auch den neuen Feature-Layer hinzu.
  2. Fügen Sie dem neuen Feature-Layer mit dem Werkzeug Global-IDs hinzufügen Global-IDs hinzu.
  3. Klicken Sie im Bereich Inhalt mit der rechten Maustaste auf den Feature-Layer, der dargestellt werden soll, und klicken Sie dann auf Datendesign > Attributregeln.
  4. Klicken Sie auf Regel hinzufügen. Wählen Sie Neue Regel aus, und geben Sie als Regelname den Namen der Regel ein. In diesem Beispiel lautet der Regelname New Rule.
  5. Fügen Sie im Textfeld Ausdruck das folgende Skript ein: Ändern Sie die folgenden Parameter.
    • Feature_Name mit dem Namen des Quell-Feature-Layers, mit dem verglichen werden soll. Dies kann auch der Name der Standalone-Tabelle sein.
    • Matching_Field mit dem Abgleichfeld, mit dem verglichen werden soll. In diesem Beispiel wird das Feld "SHAPE" verwendet.
    • Output_Field mit dem Namen des Feldes, in das die Werte in das neue Feature kopiert werden müssen. In diesem Beispiel wird das Feld "Direction" verwendet.
var sourceTable = FeatureSetByName($datastore,"<Feature_Name>", ["<Matching_Field>", "<Output_Field>"], false)
var matchingAttr = $feature.<Matching_Field>
var matchedFeature = First(Filter(sourceTable, "<Matching_Field> = @matchingAttr"))
If (matchedFeature == null){
    return "not found"}
else{
    return matchedFeature.<Output_Field>}
Der folgende Code umfasst das voll funktionsfähige Skript:
var sourceTable = FeatureSetByName($datastore,"House", ["OBJECTID", "Direction"], false)
var matchingOID = $feature.OBJECTID 
var matchedFeature = First(Filter(sourceTable, "OBJECTID = @matchingOID"))
If (matchedFeature == null){
    return "not found"}
else{
    return matchedFeature.matchedFeature.Direction}
  1. Aktivieren Sie die Kontrollkästchen Einfügen und Aktualisieren im Abschnitt Trigger.
Fenster "Attributregeln" für die neue Regel
  1. Klicken Sie auf dem Menüband Attributregeln auf Speichern.
  2. Zeichnen Sie das Feature. Die folgende Karte zeigt das ausgefüllte Feld "Direction".
Das gewünschte Feld wird automatisch ausgefüllt, wenn ein neues Feature gezeichnet wird.

Artikel-ID: 000030999

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln