Nebenattributsauswertung mit CardScript
Die Funktionen zur Bearbeitung von Nebenattributen der Topografieelemente haben Sie sicher schon in Ihrem Topografie-Menü gefunden. Wie man solche Nebenattribute anlegt und in der Zeichnungserzeugung nutzt, haben wir in einem vorangegangenen Artikel bereits erläutert. Auch der Import von Nebenattributen über die Shape-Schnittstelle wurde schon einmal beschrieben. In diesem Artikel sollen zusätzlich die vielfältigen Möglichkeiten der Auswertung der Nebenattribute über CardScript anhand von Beispielen aufgezeigt werden. Die hier beschriebenen Funktionen für Nebenattribute sind in einen Skript zusammengefasst und können allen zur Verfügung gestellt werden, die das Modul CardScript lizenziert haben.
Start der Nebenattributsauswertung
Über das Menü „Projekt“ starten Sie die Funktion „CardScript ausführen“. Dort können Sie das Skript „Topo_Nebeattribute.CSC“ auswählen.
Wenn Sie diese Funktion in allen Projekten zur Verfügung stellen wollen, können Sie die Datei auch in das zentrale Projekt kopieren. Des weiteren können Sie diese Datei über das Favoritenmenü starten, wenn Sie das im Vorfeld unter „Einstellungen“-“Eigene Programme einbinden“ vereinbaren.
Zeigen von Nebenattributen
Wenn man ein Projekt mit Nebenattributen bekommt oder mit einer Schnittstelle Nebenattribute importiert, ist es oftmals so, dass man nicht weiß, welche Topografieelemente Nebenattribute besitzen. Diese Information kann man sich mit Hilfe der Nebenattributsauswertung anzeigen lassen. Dazu gibt es die Funktion:
Hiermit kann man beispielsweise Antworten auf folgende Fragen bekommen:
- Welche der ausgewählten Punkte besitzen Nebenattribute?
- Welche der ausgewählten Punkte besitzen das Nebenattribut „Sohlhöhe“?
- Welche Werte haben die ausgewählten Punkte im Nebenattribut „Sohlhöhe“?
Die Auswahl der zu untersuchenden Punkte erfolgt dabei über die Punktmarkierung oder über den Punktkode.

Abbildung: Nebenattribute zu Punkten auflisten
Die Ergebnisse der Abfrage werden entweder im Arbeitsprotokoll und/oder in einer Textdatei oder CSV-Datei ausgegeben.
Nebenatttribut "05--Sohlhöhe" Typ "_Text" —————————————————————————————————————————— Punkt S_336524 10,448 Punkt S_336525 10,436 Punkt S_336522 10,654 Punkt S_336523 9,487 Punkt S_336521 10,356
Die gleiche Abfrage gibt es auch für die Nebenattribute von Linien.
- Welche der ausgewählten Linien besitzen Nebenattribute?
- Welche der ausgewählten Linien mit dem Kode Gebäude besitzen beispielsweise das Nebenattribut „02_Geschosse“?
Die Auswahl der zu untersuchenden Linien wird hier zusätzlich über die Schicht gesteuert.

Abbildung: Nebenattribute zu Linien auflisten
Wertebereich eines Nebenattributes
Sind die Attribute von Linien und Punkten bekannt, so möchte man für die weiteren Auswertungen wissen, welche Werte diese Attribute besitzen. So könnte man zum Beispiel die Frage stellen:
- Welche Geschosszahlen kommen bei den untersuchten Gebäudelinien vor?
Die Frage wird mit Hilfe der Funktion zur Einzelauswertung beantwortet. Diese Auswertung gibt es für Punkte und für Linien.
Dazu muss zunächst das Nebenattribut gewählt werden, das gesucht werden soll. Die Auswahl der zu untersuchenden Punkte erfolgt dabei über die Punktmarkierung oder über den Punktkode.

Abbildung: Namentlich bekanntes Nebenattribut auswerten (Punkte)
Die Auswahl der zu untersuchenden Linien wird hier zusätzlich über die Schicht gesteuert.

Abbildung: Namentlich bekanntes Nebenattribut auswerten (Linien)
Das Ergebnis dieser Auswertung wird im Arbeitsprotokoll ausgegeben. Die Attribute vom Datentyp „_Number“ werden nach größten und kleinsten Wert untersucht, beim Datentyp „_Text“ wird der kürzeste und längste Wert ausgegeben.
-------- Zwischen-Ergebnis ------------------- Linien werden untersucht ... 7 Linien untersucht, 6 davon haben das Attribut "02_Geschosse" kleinster Wert: 1 größter Wert: 4
Darstellen von Nebenattributen
Bei den bisher beschriebenen Funktionen erfolgte die Ausgabe der Ergebnisse in einer Liste. Oftmals ist es aber wichtig, die Ergebnisse der Untersuchung grafisch zu visualisieren. Dazu gibt es für die Linien folgende Funktion.
Man könnte hierbei beispielsweise folgende Frage/Aufgabe stellen.
- Welche Gebäudelinien haben eine Geschosszahl von „2“. Kennzeichne diese Linien am Bildschirm mit einer roten dicken Linie.
Die Auswahl der zu untersuchenden Linien wird dabei über die Markierung, über den Linienkode und die Schicht gesteuert. Die Art der Darstellung, wie Linienfarbe und Liniendicke kann ebenfalls in der Maske dieser Funktion vereinbart werden.

Abbildung: Linien-Nebenattribute definieren
Um diese Darstellung am Bildschirm zu zeigen, müssen unter „Daten darstellen“ die Grafikpakete angeschaltet werden.

Abbildung: Grafikpakete einschalten unter „Daten darstellen“
Markieren über Nebenattribute
Eine wichtige Funktion bei der Nebenattributsauswertung ist die Markierung von Punkten und Linien.
Beispielsweise könnte man folgende Aufgabe formulieren:
- Markiere alle Linien, die eine Geschosszahl größer 1 haben.
Die Auswahl der zu untersuchenden Punkte und Linien erfolgt auch hier über die Markierung, den Kode oder die Schicht.

Abbildung: Linien markieren nach Nebenattributen
Linienkode verändern
Manchmal besteht die Aufgabe darin, aus vorhandenen Nebenattributen neue Linienkodes abzuleiten, damit diese in der weiteren Bearbeitung von CARD/1 z.B. bei der Zeichnungserzeugung ausgewertet werden können.
So könnte man beispielsweise folgende Festlegung für eine Kodekonvertierung treffen:
- Gebe allen Gebäudelinien mit einer Geschosszahl 1 den Kode 7001. Gebe allen Gebäudelinien mit einer Geschosszahl 2 den Kode 7002. Gebe allen Gebäudelinien mit einer Geschosszahl 3 den Kode 7003. Usw.
Bei der Wahl der Funktion „editieren“ öffnet sich die Datei „Nebenattr_Kodes.zws“. Hier kann man die Zuordnung von Wert zu Linienkode folgendermaßen treffen:

Abbildung: Zuweisung Kode aus Nebenattribut in der Datei NebenAttr_Kode.zws
Über die Funktion „ausführen“ erfolgt eine Schichtauswahl und die Kodekonvertierung wird gestartet. Die dadurch vorgenommenen Änderungen im Topografiebestand können jederzeit zurückgenommen werden.
Übertragen von Punktattributen
Mit der Funktion „Punktattribute aus Nebenattributen“ ist es möglich, Werte von Nebenattributen den Punkteigenschaften zuzuordnen.
So können beispielsweise Punkthöhen mit Werten aus Nebenattributen belegt werden, wie in folgender Aufgabe:
- Nimm den Wert aus dem Attribut „Sohlhöhe“ eines Schachtpunktes und trage diesen Wert als Punkthöhe ein.
Auf diese Weise können die Punktnummer, die Höhe, der Kode und die Bemerkung eines Punktes verändert werden. Die Auswahl der zu verändernden Punkte kann hier über die Markierung oder den Kode erfolgen.

Abbildung: Punktattribute aus Nebenattributen ableiten
Übertragen von Linienattributen auf Punktattribute
Die Funktion „Punktnebenattribute aus Linienattributen“ überträgt die Nebenattribute von Linien auf ausgewählte Punkte.
Als Beispiel könnte man hier folgende Aufgabenstellung formulieren:
- Übertrage den Wert des Nebenattributes „02_Geschosse“ von jeder Gebäudelinie auf die dazugehörigen Gebäudepunkte.
Hierbei sollen allerdings nur Punkte verändert werden, die in der Gebäudelinie enthalten sind. Es ist aber auch möglich, die Attribute geschlossener Linien (Flächen) auf alle eingeschlossenen Punkte (Punkte in der Fläche) zu übertragen.

Abbildung: Punkten Nebenattribute von Linien geben
Generieren von Symbolen, Texten und Bäumen
Mit Hilfe der Funktionen zur Datengenerierung ist es möglich, aus Nebenattributen von Punkten oder Linien neue Topografiedaten, wie Texte, Symbole und Bäume zu erzeugen.
Hier ein Beispiel für die Anwendung:
- Trage die Geschosszahl der Gebäudelinien als Text in die Mitte des Gebäudes.
Beim Erzeugen von Texten aus Linien- oder Punktattributen können die Eigenschaften des neuen Textes, wie Textinhalt, Textkode, Texthöhe und Textwinkel aus Nebenattributen ermittelt oder über Standardwerte festgelegt werden. Des weiteren muss man auswählen, in welche Schicht diese neu erzeugten Texte übernommen werden sollen.
Erzeugt man die Texte aus den Nebenattributen von Punkten, so wird als Textposition die Punktposition übernommen. Werden die Texte aus Linienattributen erzeugt, so muss man wählen, ob der Anfangs-, der Mittel-, der End- oder der Flächeninnenpunkt als Textposition übernommen werden.

Abbildung: Texte aus Linien mit Nebenattributen definieren
Übertragung von Punkteigenschaften in Nebenattribute
Mit der Funktion „Punktattribute zu Nebenattribute“ ist es möglich, die Eigenschaften von Punkten in die Nebenattribute zu übernehmen, um sie weiteren Nebenattributsauswertungen zur Verfügung zu stellen.
Hier eine kurze Beispielaufgabe:
- Trage die Höhe eines Schachtpunktes in das Nebenattribut „Deckelhöhe“ ein.
Mit der Funktion können die Eigenschaften Nummer, Höhe, Kode und Bemerkung eines vorhandenen Punktes als Punktnebenattribut gespeichert werden. Dies ist zum Beispiel dann interessant, wenn der Kode für bestimmte Auswertungen geändert werden soll ( siehe Funktion Attr.-zuweisung → Punktattr. aus NA ), der Originalkode aber gesichert werden soll.

Abbildung: Punktattribute in Nebenattribute schreiben
Markierten Punkten oder Linien Nebenattribute zuweisen
Um die aufwändige einzelne Eingabe von Nebenattributen für Punkte und Linien zu umgehen, ist es möglich, mit den Funktionen zur Vorbelegung markierten Punkten und Linien Werte für Nebenattribute zuzuweisen.
Hier ein Beispiel:
- Gebe allen neu eingegebenen und bereits markierten Gebäudelinien das Nebenattribut „02_Geschosse“ und ordne den Wert „2“ zu.

Abbildung: Inhalte von Nebenattributen markierter Linien ändern
Druck bzw. Ausgabe von Nebenattributen
Oftmals ist es notwendig, Punkt- oder Linienlisten mit Werten aus den Nebenattributen zu versehen.
Beispiel:
- In einer Schachtliste sollen neben der Punktnummer die Deckel- und Sohlhöhen ausgegeben werden.
Mit der Ausgabefunktion ist es möglich selbstdefinierte Listendrucke, Excel- und Datenbanktabellen zu erzeugen.

Abbildung: Tabelle mit ausgewählten Attributen zu Punkten drucken
In der Formatdefinition wird spaltenweise mit Überschrift und Format festgelegt, welches Nebenattribut ausgegeben wird.

Abbildung: Format für die Druckausgabe von Nebenattributen festlegen
Das Ergebnis einer Text-Datei sieht dann folgendermaßen aus:
|Schachtnummer |Deckelhöhe |Sohlhöhe | |S_336521 |12,365 |10,356 | |S_336522 |12,686 |10,654 | |S_336523 |11,357 |9,487 | |S_336524 |12,412 |10,448 | |S_336525 |12,635 |10,436 |
Nebenattributsauswertung anfordern
Die beschriebenen Funktionen des Skriptes zur Nebenattributsauswertung unterliegen einer ständigen Weiterentwicklung. Sie können bei igm den jeweils aktuellen Stand anfordern. Falls Sie Fragen oder Anregungen zur Ergänzung des Skriptes haben, können Sie sich ebenfalls gern bei uns melden.
Sollten Sie eine speziell an Ihr Aufgabengebiet angepasste Nebenattributsauswertung benötigen, so fragen Sie bitte bei uns nach. Wir prüfen die Umsetzbarkeit und erstellen Ihnen dann gern ein Angebot dazu.