====== Datensätze durchnummerieren ====== //Funktioniert ab ArcGIS 10 bzw. MIKE URBAN 2011.\\ Letzte Änderung mit MIKE URBAN Version 2012 SP2.// Das Skript {{:mikeurban:arcgis:datensaetze-nummerieren5.zip|datensaetze-nummerieren5.cal}} nummeriert Elemente nach dem Schema: S_030\\ S_031\\ S_032\\ etc. Damit können in ArcMap zum Beispiel ausgewählte((In ArcGIS 10.0 SP1 nicht mehr als 250 Datensätze, siehe [[http://downloads.esri.com/support/downloads/other_/ArcGIS-10sp2-issues.htm|Service Pack 2]])) Elemente mit einer benutzerdefinierten, fortlaufenden ID versehend werden. Das Skript basiert auf einer Idee von Bill Huber im ArcView Forum, und auf der Online-Hilfe zu ArcMap. ===== Schritt für Schritt ===== **(1)** Klicken Sie in der Attributtabelle mit der rechten Maustaste auf den Spaltenkopf und öffnen Sie die Feldberechnung. Das Feld muss vom Typ her ein Textfeld sein! **(2)** Wechseln Sie den Parser auf "Python" **(3)** Laden Sie das Skript {{:mikeurban:arcgis:datensaetze-nummerieren5.zip|datensaetze-nummerieren5.cal}}. **(4)** Passen Sie die folgenden Parameter an: ^Konstante ^Erklärung ^ |Prefix |Zeichenfolge, die an den Anfang gestellt wird\\ z.B. "S_" | |Length| Anzahl der Stellen der Ziffernfolge\\ z.B. 3, um S_001, S_002, S_003 etc. zu erzeugen | |Start |Startwert\\ z.B. 30, um mit S_030 zu beginnen | |Interval |Schrittweite von einem Element zu nächsten\\ z.B 2, um S_030, S_032, S_034 zu erzeugen | |Suffix |Zeichenfolge, die ans Ende gestellt wird\\ z.B. "a" um S_030a, S_031a, S_032a zu erzeugen | **(5)** Führen Sie das Skript mit "OK" aus. ===== Technische Details ===== ==== Reihenfolge der Nummerierung ==== Die Datensätze werden in der Reihenfolge abgearbeitet, in der Sie in der Datenbank aufscheinen. Dies sollten Sie beim Digitalisieren neuer Schächte beachten. Üblicherweise wird in Hauptfließrichtung nummeriert. ==== Doppelte Bezeichnungen ==== Falls Sie einen Namen erzeugen, der als MUID bereits vorhanden ist, stoppt das Skript mit einer Fehlermeldung "Failed to apply changes after the row with ObjectID=22 with the calulated value. Das kann passieren, wenn Sie a) an einer anderen Stelle im Netz einen gleich lautenden Namen vergeben haben b) die Ziffernfolge zu kurz ist für die Anzahl der ausgewählten Elemente. In der Zeile 22 wurde eine doppelte ID erzeugt, danach kam die Fehlermeldung der MIKE URBAN Datenbank. Machen Sie den letzten Schritt rückgängig (dabei werden *alle* Zeilen wieder zurückgesetzt betroffen), und modifizieren Sie Ihren Rechenausdruck entsprechend. ===== Listing ===== rec = 0 def autoIncrement(): global rec ### Die folgenden Werte sind anzupassen: Prefix = 'Knoten_' # Zeichenfolge, die an den Anfang gestellt wird Length = 3 # Anzahl der Stellen der Ziffernfolge Start = 1 # Startwert Interval = 1 # Schrittweite Suffix = '' # Zeichenfolge, die ans Ende gestellt wird ### Fill = '00000000000000000000' if ( rec == 0 ): rec = Start else: rec = rec + Interval ID = Prefix + (Fill + str(rec))[-Length:] + Suffix return ID ===== Changelog ===== ^Datum ^Änderung ^ |27.11.2013 |auf Python umgeschrieben (= Version 5) | |14.12.2006 |Prefix und Suffix eingefügt (= [[mikeurban:arcgis:berechnungen_durchnummerieren_93|Version 4]]) |