Das Darstellungsmodell von Autodesk Topobase basiert auf einem Regelwerk, das die Objekte aufgrund ihrer räumlichen und attributiven Eigenschaften massstabsabhängig darstellt. Um Ergebnisse von Abfragen, Netzverfolgungen oder Ebenenverschneidungen auf einem Plot auszugeben, kann es allerdings von Vorteil sein, ausgewählten Objekten eine individuelle Farbe zu vergeben. Wesentlich dabei ist, dass der Anwender die Farbe nicht die Regeln in der Darstellungsverwaltung anpassen muss, sondern diese direkt in den Sachdaten des Objektes individuell auswählen kann. Genau dieses Vorgehen ermöglicht das Steuerelement ‘Farb-ComboBox’ in den Topobase Formularen. Dessen Konfiguration und Anwendungsmöglichkeiten werden in diesem Beitrag näher vorgestellt.
Ausgangslage:
Topobase Dokument (=Datenmodell) mit den folgenden Objektklassen:
- Fliessgewässer (RIVERS): Linienobjektklasse mit einer logischen Topologie für die Netzverfolgung
- Überschwemmungsgebiete (FLOODZONES): Polygonobjektklasse
Konfiguration:
- Topobase Administrator: Für beide Objektklassen ein Attribut für die Speicherung des hexadezimalen RGB Farbwertes anlegen (z.B. FARBE). Datentyp: Varchar2(10).
. - Formular Designer: Erstellen Sie für die neu erstellten Attribute eine Farb-ComboBox. Verwenden Sie dazu die entsprechende Funktion in der Werkzeugleiste des Formular Designers:
. - Kontrollieren Sie das Ergebnis im Formular:
. - Eigenschaften der ColorBox: Geben Sie beim Farbschema den Wert ‘TB_COLOR_WEB’ ein. Damit werden W3C Farbdefinitionen gespeichert, die auch in Webbrowser zur Verfügung stehen. Weitere Informationen zu den Eigenschaften finden Sie u.a. in der Online Hilfe.
. - Topobase Client: In der Darstellungsverwaltung für beide Objektklassen einen Layer mit erweiterter Stilisierung hinzufügen (“Mit erweiterten Stilen zu Map hinzufügen”)
. - Darstellungsverwaltung: Erstellen Sie für beide Layer eine zusätzliche Spalte ‘Anzeigefarbe’, welche das Ergebnis einer SQL-Abfrage speichert. Verwenden Sie dazu die Funktion: “Berechnung erstellen” im Kontextmenü des Layers:
. - Geben Sie im Berechnungs-Editor einen TB_SQL Befehl nach folgendem Muster ein:
.
Beispiel: Überschwemmungsgebiete:
TB_SQL('SELECT TO_CHAR(TO_NUMBER(''99''||NVL(REPLACE(farbe,''#'',''''),''FFFF00''),''xxxxxxxx'')) FROM floodzones WHERE fid = g.fid')
.
Beispiel: Fliessgewässer:
TB_SQL('SELECT TO_CHAR(TO_NUMBER(''FF''||NVL(REPLACE(farbe,''#'',''''),''0000FF''),''xxxxxxxx'')) FROM rivers WHERE fid = g.fid')
.
. - Stileigenschaften: Geben Sie im Stil- und Labeleditor der beiden Layer für die Linien- und Füllfarbe folgende Funktion ein:
ToInt64 ( Anzeigefarbe )
. -
Et voilà: Überprüfen Sie das Ergebnis in der Grafik. Beachten Sie, dass für Objekte, denen keine individuelle Farbe zugewiesen wurde, der Vorgabewert Gelb (Überschwemmungsgebiete), bzw. Blau (Fliessgewässer) angezeigt wird.
Beispiele:
- Ergebnis einer Einzugsgebietsberechnung von Fliessgewässern:
. - Überschwemmungsgebiete von Gemeinden/Amtsbezirken/etc. hervorheben:
Hinweise:
- Flächen können auch transparent dargestellt werden. Die Transparenz wird durch die ersten zwei Hexadezimalwerte des Farbcodes definiert (FF = 256 = opak, 00 = 0 = transparent). Beim TB_SQL Befehl für die Überschwemmungsgebiete ist die Transparenz beispielsweise auf 99 (= 153 = ca. 60%)
TB_SQL('SELECT TO_CHAR(TO_NUMBER(''99''||NVL...
. - Mit der Oracle Funktion:
TO_NUMBER(<hex_varchar>, ’xxxxxx’)
werden Hexadezimalwerte der Farb-Combobox in Dezimalwerte umgewandelt. Diese werden anschliessend von der Darstellungsverwaltung über die Funktion ToInt64 (Anzeigefarbe) eingelesen.
. - Über die Funktion NVL(farbe,’'FFFF00'') wird eine Vorgabefarbe für Objekte definiert (hier: gelb), denen noch keine Farbe zugewiesen wurde.
Subscribe