Ausdrücke
Attribute oder Eigenschaften kombiniert mit Operatoren werden als Ausdrücke bezeichnet. Diese können in Form von Abfragen auf Haltungen, Schächte,Wasserleitungen, Wasserknoten, und Gebiete angewendet werden. Ein wichtiger Grund ist das Finden von Objekten, die über die Abfrage definierte Eigenschaften haben müssen. Ausdrücke können aber auch für die Ansichtskonfiguration & Farbkonfiguration verwendet werden, um Informationen bestmöglich darzustellen.
Möglichkeit zur Verwendung von Ausdrücken:
- Abfragen: Die gefundenen Elemente werden in einem Meldungsfenster aufgelistet. Darüber lassen sich die gefundenen Elemente markieren und folglich Eigenschaften ändern oder setzen.
- Ansichtskonfigurationen: In den Ansichtskonfigurationen können Informationen gezielt dargestellt werden, um komplexe Sachverhalte zu erklären.
- Farbkonfiguration: Einfärbung der Objekte nach der Anwendung von Ausdrücken.
- Eigenschaftslisten: Das Erstellen von Listen kann auch mit zuvor definierten Ausdrücken durchgeführt werden. Oder es können eigene Ausdrücke angefertigt werden und für jedes Objekt ausgegeben werden.
Neuen Ausdruck erstellen.
Sie können projektübergreifend Ausdrücke über das Clipboard kopieren und mit dieser Funktion in das bestehende Projekt einfügen.
Löscht alle vorhandenen Ausdrücke.
Legt ein Unterverzeichnis „Unterverzeichnis_1“ an, um bei vielen Ausdrücken eine Ordnungsstruktur anlegen zu können. Die einzelnen Ausdrucksobjekte können per Drag&Drop zwischen den Verzeichnissen verschoben werden.
Inhaltsverzeichnis
Objektebene
Ein Dialog zum Erstellen eines neuen Ausdrucks wird geöffnet.
Ein vorhandener Ausdruck wird zum Ändern geöffnet.
Löscht den ausgewählten Ausdruck.
Ausdruck in die Zwischenablage kopieren um ihn in ein anderes Projekt zu kopieren.
Neuer Ausdruck wird mit „Name_Kopie“ angelegt.
Starten der Abfrage auf Schächte/Abschnitte Haltungen/Wasserknoten/Wasserleitungen/Gebiete/Schäden.
Starten der Abfrage auf eine markierte Menge von ausgewählten Objekten
Typzuweisung
Typzuweisung beim Setzen von Feldern. Mit diesem Anhang können Sie bei der Ausgabe der Werte die Dezimalstelle und den Typ der Ausgabe festlegen.
.f0 -.fx | Floating point |
---|---|
i. | integer |
s. | string |
Beispiel für die begrenzung der Dezimalstelle bei der Ausgabe in der Ansichtskonfiguration des Maximalen Überstauvolumen:
(Maximales Überstauvolumen).f2
Sichtbares Ergebnis:
Weiteres Beispiel bei markierte Ändern von mehreren Flächen. Hier wird der Anteil der undurchlässigen Flächen mit dem Faktor 1,5 multipliziert un dann auf eine Nachkommastelle gerundet!
Syntax der Ausdrücken
Operator | Name | Beschreibung | Beispiel |
---|---|---|---|
() | Klammern | Attribute welche sich in der Klammer befinden | |
" | Anführungszeichen | Texte/Strings werden unter Anführungszeichen gestellt, der Abstand zwischen Text und Feldwert gehört noch zum Text. | „Text1 “ |
. | Pointer | Zugriff auf verknüpfte Daten über Pointer | Deckel.Radius |
* | Multiplikation | Multipliziert die Werte seiner Operanden und gibt das Ergebnis zurück. | |
/ | Division | Dividiert die Werte seiner Operanden und gibt das Ergebnis zurück. Bei der Division von Ganzzahlen fällt ein eventueller Rest weg, es wird also nicht gerundet. | |
% | Modulo | Dividiert die Werte seiner Operanden und gibt den Divisionsrest zurück. Kann nur auf ganzzahlige Operanden angewendet werden. Ist mindestens ein Operand negativ, so ist das Vorzeichen des Resultats implementationsabhängig. | |
< | kleiner | Ergibt den boolschen Wert WAHR, wenn der linke Operand kleiner als der rechte ist, sonst FALSCH. | |
<= | kleiner oder gleich | Ergibt den boolschen Wert WAHR, wenn der linke Operand kleiner oder gleich dem rechten ist, sonst FALSCH. | |
= | gleich | Ergibt den boolschen Wert WAHR, wenn die beiden Operanden gleich sind, sonst FALSCH. | |
<> | Drei-Wege Vergleich | kleiner 0 ist, falls der linke Operand kleiner als der rechte ist gleich 0 ist, falls der linke Operand gleich dem rechten ist größer 0 ist, falls der linke Operand größer als der rechte ist |
|
>= | größer oder gleich | Ergibt den boolschen Wert true, wenn der linke Operand größer oder gleich dem rechten ist, sonst false. | |
> | größer | Ergibt den boolschen Wert WAHR, wenn der linke Operand größer als der rechte ist, sonst FALSCH. | |
! | Negierung | Invertiert den Wert seiner Operanden. Aus WAHR wird FALSCH und umgekehrt. | |
& | Und-Verknüpfung | Verknüpft die beiden Operanden und gibt WAHR zurück, wenn beide Operanden den Wert WAHR haben, sonst FALSCH. | |
| | Oder-Verknüpfung | Verknüpft die beiden Operanden und gibt WAHR zurück, wenn mindestens einer der beiden Operanden den Wert WAHR hat, sonst FALSCH. | |
.exists | Abfrage-Vorhanden | Abfrage nach dem gesuchten Attribut und gibt WAHR zurück (Objekt wird ausgegeben) | |
.size | Abfrage-Größe | Liefert die Anzahl der Elemente für das ausgwählte Attribut | |
.len | Abfrage-Länge | Liefert die Länge des Elements für das ausgewählte Attribut | |
.max | Abfrage-Maximalwert | Liefert den Maximalwert des Elements für das ausgewählte Attribut | |
.min | Abfrage-Minimalwert | Liefert den Minimalwert des Elements für das ausgewählte Attribut | |
.sum | Abfrage-Summation | Summiert die Werte der Elemente eine ausgewählten Attributs | (Überstau Volumen).sum |
.eq | Vergleichsfunktion Strings | Vergleicht das angegebene Attribut darauf ob es ein String ist und gibt den Wert WAHR zurück. | |
.neq | Vergleichsfunktion Strings | Vergleicht das angegebene Attribut darauf ob es kein String ist und gibt den Wert WAHR zurück. | |
WENN ? DANN : SONST | Wenn-Dann Abfrage | Soll die Beschriftung variabel, je nach bestimmten Eigenschaften eines Objektes erfolgen kann diese vorher abgefragt werden | ((Maximales Überstauvolumen) > 0) ?(Name) :"" |
# | Raute | Eine Folge von Texten (Strings) und Feldnamen verbunden mit # | „Text1 “#Feldname.f2#“ Text“ |
</br> | Neue Zeile | Über den Ausdruch kann eine neue Zeile eingefügt werden | „Text1 “#Feldname.f2#“ Text“ |
Abfragen mit Ausdrücke
Ein wichtiger Grund ist das Finden von Objekten, die über die Abfrage definierte Eigenschaften haben müssen. Diese Funktion wird häufig genutzt um die Konsistenz der importierten Daten zu überprüfen. Mit dem Ausführen der jeweiligen Ausdrücke können sehr schnell Fehler detektiert und angepasst werden.
Eine Auflistung der gängisten Abfragen zur Netz- und Einzugsgebietskontrolle.
Abschnitte
Name | Ausdruck | Beschreibung |
---|---|---|
Sohlhöhe fehlt |
Knoten
Name | Ausdruck | Beschreibung |
---|---|---|
Sohlhöhe fehlt |
Einzugsgebiete
Anwendung von Ausdrücken in Ansichtsknonfiguration
Beschriftung
In den Ansichtskonfigurationen können auch komplexe Abfragen für die Informationsausgabe im Bearbeitungsfenster oder Plan erfolgen. Im Folgenden ein Beispiel, wird die Knotenbeschriftung als Block mit einer Abfrage ausgeführt. Hier kommen sowohl Stammattribute in der Abfrage vor, als auch freie Attribute, z.B. "Sonderbauwere".
- Ausdruck 1: Index_Deckel_Gelände#"= "#Deckelhöhe.f2
- Ausdruck 2: Sonderbauwerke="Außengebiet"?("Einleitung von:"#"<br>"#GEP_Auslauf_Art):(Sonderbauwerke="Auslauf"|Sonderbauwerke="Anschluss"?(Sonderbauwerke_Name#"<br>Einleitung von:"#"<br>"#GEP_Auslauf_Art#"<br>X="#Rechtswert.f0#"<br>Y="#Hochwert.f0):(Sonderbauwerke="RÜ"?(Sonderbauwerke_Name#"<br>Schwellenlänge= "#(Beckenüberlauf Länge).f2#" m"#"<br>Überfallbeiwert= "#(Beckenüberlauf Überfallbeiwert).f2#"<br>X="#Rechtswert.f0#"<br>Y="#Hochwert.f0):((Sonderbauwerke="DBw mit NÜ"|Sonderbauwerke="RRR mit NÜ")?(Sonderbauwerke#" "#Sonderbauwerk Kurzname#"<br>Schwellenlänge= "#(Beckenüberlauf Länge).f2#" m"#"<br>Überfallbeiwert= "#(Beckenüberlauf Überfallbeiwert).f2#"<br>X="#Rechtswert.f0#"<br>Y="#Hochwert.f0):((Sonderbauwerke="DBw"|Sonderbauwerke="Schieber"|Sonderbauwerke="RRR")?(Sonderbauwerke_Name #"<br>Q d= "#(Ablauf Maximaler Abfluss).f2#" l/s"#"<br>X="#Rechtswert.f0#"<br>Y="#Hochwert.f0):))))
- Ausdruck 3: (Entwässerungssystem<3&((Ein).Summierte Einzugsgebietsfläche.sum)>0)?"Ab,ges.= "#((Ein).Summierte Einzugsgebietsfläche.sum.f2)#"<br>Au,ges.= "#((Ein).Summe undurchlässige Einzugsgebietsfläche.sum.f2):
Das Ergebnis dieser komplexen Abfrage schaut dann wie folgt aus:
Darstellung
Auch die Darstellung der angezeigten Knoten, kann über Ausdrücke und Attribute angepasst werden. In diesem Beispiel wird der Knotenradius an das anfallende Überstauvolumen angepasst. Hierfür wird der Mindestradius von 2m mit dem Wert der Division des anfallenden Maximalen Überstauvolumen durch 5 addiert.
Ausdruck: 2+((Maximales Überstauvolumen)/5)
Da hier auf ein hydraulisches Attribut zurückgegriffen wird, ist eine Veränderung der Anzeige erst nach erfolgreicher Berechnung der Hydraulik möglich. Das Ergebnis schaut wie folgt aus:
Ausdruck zum Ausblenden der Knoten
In der Ansichtskonfiguration können Sie auch über Ausdrücke und Attribute Knoten explizit ausblenden.
Als Beispiel werden alle Knoten mit Überstau über 40 m³ über den folgenden Ausdruck ausgeblendet: