====== Felder durchnummerieren ====== Dieses Skript funktioniert nur mit ArcGIS 9.3. Eine [[mikeurban:arcgis:berechnungen_durchnummerieren|neuere Version]] funktioniert mit ArcGIS 10.0 und höher Das Skript {{:mikeurban:downloads:rec_number_constantlengthstring4.zip|rec_Number_ConstantLengthString4.cal}} nummeriert Elemente nach dem Schema: S_030\\ S_031\\ S_032\\ etc. Damit können in ArcMap zum Beispiel ausgwählte Elemente mit einer benutzerdefinierten, fortlaufenden ID versehend werden. Das Skript basiert auf der exzellenten Sammlung [[http://www.ian-ko.com|Easy Calculate 5.0]] von Ianko Tchoukanski. ===== Schritt für Schritt ===== 1. Markieren Sie die Elemente, in denen Sie eine neue Bezeichnung einführen wollen. 2. Wechseln Sie mit "Werkzeuge|Layout" und ArcGIS 3. Öffnen Sie die Attributtabelle. 4. Stellen Sie sicher, dass der "Editor Toolbar" sichtbar ist (unter Tools|Editor Toolbar), und starten Sie die Bearbeitung im Dropdown-Menü "Editor". 5. Klicken Sie auf die Spalte, die Sie bearbeiten möchten und öffnen Sie den "Field Calculator". 6. Laden Sie das beiliegende Skript mit "Load...". 7. Im Kopf des Skripts müssen Sie einige Konstanten mit Werten belegen: ^Konstante ^Erklärung ^ |sPrefix |Zeichenfolge, die an den Anfang gestellt wird\\ z.B. "S_" | |IStringLength| Anzahl der Stellen der Ziffernfolge\\ z.B. 3, um S_001, S_002, S_003 etc. zu erzeugen | |IStart |Startwert\\ z.B. 30, um mit S_030 zu beginnen | |IInterval |Intervall von einem Element zu nächsten\\ z.B 2, um S_030, S_032, S_034 zu erzeugen | |sSuffix |Zeichenfolge, die ans Ende gestellt wird\\ z.B. "a" um S_030a, S_031a, S_032a zu erzeugen | 8. Mit "OK" starten Sie die Berechnung. 9. Beenden Sie die Bearbeitung im Dropdown-Menü des Editor Toolbars. 10. Wechseln Sie zurück nach MIKE URBAN. Eventuell müssen Sie zum Visualisieren von geänderten Beschriftungen den Bildschirm neu aufbauen. ===== 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_Number_ConstantLengthString4.cal 'idea from Bill Huber's post on ArcView Forum 'Author: Ianko Tchoukanski 'http://www.ian-ko.com 'Prefix and Suffix added by Thomas Telegdy '========================= Static rec As Long Static j As Long Dim lStart As Long Dim lInterval As Long Dim sFill As String Dim lStringLength As Long Dim sID As String Dim sPrefix As String Dim sSuffix As String '============================ 'set the variables below sPrefix = "Knoten_" lStringLength = 3 lStart = 1 lInterval = 1 sSuffix = "" '============================ sFill = "00000000000000000000" sID = "" If (j = 0) Then rec = lStart Else rec = rec + lInterval End If sID = sPrefix & Right(sFill & CStr(rec), lStringLength) & sSuffix j = j + 1 __esri_field_calculator_splitter__ sID ===== Changelog ===== ^Datum ^Änderung ^ |14.12.2006 |Prefix und Suffix eingefügt (=Version 4) |