Kapitel 9 (Teil 2)

NEUE ARCHITEKTURSOFTWARE JETZT KOSTENLOS 30-TAGE TESTEN

30-Tage Testversion downloaden (Weiterleitung zur neuen Webseite)
kostenlose ArCADia-Vollversion inkl. allen BIM-Erweiterungen herunterladen.ArCADia BIM - Building Information Modeling 2D 3D CAD- DEMO DVD>> unverbindlich testen

9.1.6 Verwenden von Variablen innerhalb von Schleifen

9.1.7 Formatangaben für Variablen

9.1.8 Schlüsselwörter mit beliebiger Position

9.2 PFADE UND INI-DATEI FÜR RAUMINFOS

9.3 STEUERUNG DER AUSGABE, KOMMENTARE

9.3.1 Rauminfovorlagen und Tabellen

9.3.2 Sprachdefinition von Rauminfovorlagen

9.3.3 Reservierte Wörter bei Rauminfovorlagen

 

9.1.6 Verwenden von Variablen innerhalb von Schleifen

„Variablen“ eines bestimmten Typs dürfen nur dann benutzt werden, wenn sie sich innerhalb einer Schleife desselben Typs befinden. So darf z. B. die „Variable“ @Raum.Name nur innerhalb einer Schleife @FürXXX.Räume @EndeFürXXX.Räume benutzt werden. Dabei ist es unerheblich, ob innerhalb dieser Schleife noch eine andere Schleife geöffnet ist. So könnte z. B. @Raum.Name auch in einer Schleife über alle Wandseiten verwendet werden, wenn um diese Schleife eine Schleife für die Räume definiert ist.

Bei der Expansion von Schleifen achtet VA - Virtual Architecture prof. darauf, dass Mehrfachzählungen „sinnvoll“ vorgenommen werden. Werden z. B. alle Türen eines Geschosses Raumweise ausgegeben, so taucht jede Tür (bis auf die Haustüren) zweimal auf; einmal für den einen, einmal für den anderen Raum. Werden alle Türen Geschoßweise ausgegeben, so werden sie nur einmal gezählt. Gleiches gilt für Fenster.

9.1.7 Formatangaben für Variablen

Für die im vorigen Abschnitt eingeführten „Variablen“ ist es möglich, eine For­matangabe hinter die Spezialisierer anzuhängen, um zu bestimmen, in welchem Zahlenformat und in welcher Genauigkeit die ersetzten Werte ausgegeben werden. Diese Formatierung ist optional. Wenn sie allerdings angegeben wird, muss sie direkt hinter die „Variablen“ geschrieben werden. Sie beginnt immer mit einem Prozentzeichen %, gefolgt von einigen Steuerzeichen.

Die Formatanweisung ist kompatibel zu der Formatanweisung der Pro­grammiersprache C, wie sie z. B. bei printf benutzt wird. So bedeutet z.B.@Raum.Umfang%2f, dass der Umfang des Raumes mit zwei Nachkomma-stellen ausgegeben wird. Eine Formatierung der Form @Raum.Umfang%10.2e hätte eine Ausgabe in Exponentialdarstellung mit einer Zeichenbreite von 10 und einer Anzahl der Nachkommastellen von 2 zur Folge. Die Syntax für Formatangaben lautet: % [flag] [width] [.prec] type

Der Formatparameter für [flag] steuert die Ausrichtung des Formates und das Auffüllen mit Leerzeichen bzw. Nullen.

[flag]                 Bedeutung

(keines)             Rechts ausrichten; mit 0 oder Leerzeichen links auffüllen

-                          Links ausrichten; mit Leerzeichen rechts auffüllen

Der Formatparameter für [width] steuert die Länge des ausgegebenen Strings.

[width]              Wirkung

Mindestens n Zeichen

0n                      Mindestens n Zeichen, links Nullen

Der Formatparameter für [.prec] beschreibt die Genauigkeit der Darstellung in Anzahl der Ziffern.

[.prec]               Wirkung

(nichts)              Voreingestellte Präzision

.0                        type = d, i, o oder x: voreingestellte Präzision type = e, E oder f: ohne Dezimalpunkt

.n                        Höchstens n Zeichen

Der wichtigste Formatparameter type, beschreibt den Typ der auszugebenden Information.

Typ                   Ausgabeformat

d                         ganze Zahl

i                          wie d

ganze Zahl in Oktaldarstellung

x                         ganze Zahl in Hexadezimaldarstellung

X                        wie x

f                         Gleitkommazahl, Format [-]dddd.ddd

Gleitkommazahl, Format [-]d.ddd e [+/-]ddd

g abhängig von der Genauigkeit .prec wie e oder f. e wird verwendet, wenn der Exponent kleiner -4 oder nicht kleiner als die Genauigkeit ist

                E                         wie e, "E" als Exponentzeichen

                G                         wie g, "E" als Exponentzeichen

                S                         Zeichenkette

Bei den Formatangaben für „Variablen“ muss der Typ der Formatangabe zum Typ dessen, was formatiert werden soll, passen. So muss der Typ der Formatan­gabe für „Variablen“, die durch Fließkommazahlen ersetzt werden, der Typ f, e oder E sein; der für ganze Zahlen d, x oder o (wobei x und o wenig Sinn ma­chen) und der für Zeichenketten s. Beachten Sie, dass bei der Verwendung von Zeichenketten keine Angaben für [flag], [width] und [.prec] möglich sind. Die einzig mögliche (und daher redundante) Angabe für Zeichenketten ist %s.

Beispiele für Formatierungen (Ein „-“ entspricht einem Leerzeichen):

%10.2f                  ----123.45

%-10.2f                123.45---‑

%10d                    -----12345

%08x                    00003039

In der folgenden Aufstellung ist für die verschiedenen Spezialisierer von Schlüsselwörtern angegeben, durch welchen Typ sie in der zu erzeugenden Rauminfo ersetzt werden.

Spezialisierer, die durch Fließkommawert ersetzt werden (type=e,E,g,G oder f): Breite, Länge, Höhe, Brüstungshöhe, Niveau, Bodenfläche, Deckenfläche, Fensterfläche, Fläche, Türfläche, Wandfläche, Umfang, Volumen, Bruttogrundfläche, Bruttorauminhalt, Konstruktionsfläche, Preis, Stückpreis, FormelBodenfläche, FormelDeckenfläche, FormelVolumen, FormelFensterfläche, FormelTürfläche, FormelUmfang, FormelWandfläche, FormelBruttoGrundfläche, FormelBruttorauminhalt, Menge, Min, Mid, Max, MinKosten, MidKosten, MaxKosten

Spezialisierer, die durch ganze Zahlen ersetzt werden (type=i,d,x oder o): AnzahlGrundstücke, AnzahlWohneinheiten, AnzahlUmschließungen, AnzahlFenster,

AnzahlObjekte, AnzahlSchornsteine, AnzahlStützen, AnzahlTüren, AnzahlWände, Nummer

Spezialisierer, die durch Zeichenketten ersetzt werden (type=s):

Name, Anrede, Adresse1, Adresse2, Adresse3, Zusatz1, Zusatz2, Zusatz3, Bemerkung, Datum, Material, Dateiname, Hersteller, Bestellnummer EinheitMenge, EinheitMinMidMax, EinheitKosten

ZURÜCK NACH OBEN oder ZURÜCK ZUM KOMPLETTEN INHALTSVERZEICHNIS (Startseite des VA Software Online Handbuches)

9.1.8 Schlüsselwörter mit beliebiger Position

Im Gegensatz zu „Variablen“, die sich nur innerhalb von Schleifenkörpern be­finden dürfen, können Sie folgende Schlüsselwörter auch außerhalb von Schlei­fen, also z. B. ganz am Anfang oder am Ende eines Textes, aber auch in Kopf- und Fußzeilen verwenden:

@Projekt

@Architekt

@Bauherr

@Kostenschätzung

@EinheitInMeter

@EinheitInZentimeter

@EinheitInMillimeter

@EinheitInInch

@EinheitInYard

Dabei müssen @Projekt, @Architekt, @Bauherr und @Kostenschätzung noch mit folgenden Spezialisierern (durch „.“ getrennt) versehen werden:

„Variable“       Mögliche Spezialisierer

@Architekt, @Bauherr    Name, Anrede, Adresse1, Adresse2, Adresse3, Zusatz1, Zusatz2, Zusatz3, Bemerkung

@Projekt                Name, Dateiname, Datum, Adresse1, Adresse2, Adresse3, Zusatz1, Zusatz2, Zusatz3, Be­merkung, GESCHOSSWERTE, [ART]RAUMWERTE, [ART]ANZAHL

@Kostenschätzung        Bemerkung, MinimaleGesamtkosten, MittlereGesamtkosten, MaximaleGesamtkosten, EinheitGesamtkosten, EINZELKOSTEN

Die möglichen Varianten für GESCHOSSWERTE, [ART]RAUMWERTE und [ART]ANZAHL sowie die Bedeutung von [ART] wurden bereits auf beschrieben.

Die Varianten für EINZELKOSTEN sind 100, 200, 300, 400, 500, 600 oder 700, durch einen Punkt getrennt, erweitert durch eine der folgenden Alternativen: Menge, EinheitMenge, Min, Mid, Max, EinheitMinMidMax, MinKosten, MidKosten, MaxKosten, EinheitKosten. Diese Angaben entsprechen den verschiedenen Kostengruppen der DIN277 für Tiefst-, Mittel- und Höchstwerte.

Besondere Bedeutung kommt den Schlüsselwörtern @EinheitInMetern bis @EinheitInYard zu. Sie können beliebig häufig an beliebigen Stellen im Text stehen. Ab ihrem Vorkommen bis zum nächsten Vorkommen erfolgt dann die Ausgabe in der angegebenen Einheit bzw. in Potenzen von dieser. Auf diese Art kann z. B. zwischen Ausgaben in Metern und Ausgaben in Millimetern innerhalb einer Rauminfo umgeschaltet werden. Voreingestellt ist Meter.

9.2 PFADE UND INI-DATEI FÜR RAUMINFOS

Die Rauminfovorlagen müssen sich im Verzeichnis Standard/Rauminfo (Unterverzeichnis des VA - Virtual Architecture Stammverzeichnisses) befinden. Sämtliche dort befindliche Dateien mit der Endung .RTF werden in das Menü zur Laufzeit mit aufgenommen. Dabei erscheint der Dateiname als Menüeintrag, es sei denn, dass sich in der Datei Rauminfo.INI (ebenfalls im Verzeichnis Standard/Rauminfo) ein Abschnitt mit dem Namen der Rauminfodatei befindet.

Ist z. B. RI1.RTF eine Datei, die sich im Verzeichnis Rauminfo befindet, so bewirkt ein Eintrag in der Datei Rauminfo.INI der Form

[RI1.RTF]

Beschreibung = Eine Rauminfovorlage (Beispiel)

dass nicht RI1 im Menü, sondern Eine Rauminfovorlage (Beispiel) erscheint.

9.3 STEUERUNG DER AUSGABE, KOMMENTARE

Mit Hilfe einer speziellen Konstruktion innerhalb der Rauminfovorlage ist es möglich, bestimmte Teile dieser Vorlage durch den Anwender bei der Erzeugung ein- und ausschalten zu lassen. Hierzu dient der Befehl @Frage. Der Text, der hinter diesem Befehl kommt, bis zu dem nächsten allein stehenden @ wird als Frage ausgegeben, während die Rauminfo erzeugt wird. Antwortet der Anwender auf diese Frage mit „Ja“, wird der folgende Text der Rauminfovorlage bis zum Schlüsselwort @Ende Frage verwendet, andernfalls wird er komplett ignoriert.

Damit eine Rauminfovorlage syntaktisch korrekt bleibt, auch wenn der Anwen­der mit „Nein“ antwortet, dürfen in einem von der Frage abhängigen Teil keine Schleifen geöffnet bzw. geschlossen werden, die nach bzw. vor dem abhängigen Teil geschlossen bzw. geöffnet werden.

Wird eine Frage innerhalb einer Schleife verwendet, wird ggf. für jeden Schleifendurchlauf einzeln nachgefragt.

Beispiel 1:

@Frage Sollen alle Geschosse aufgelistet werden?@

  @FürAlle.Geschosse

    @FürAlle.Räume

      ....

    @EndeFürAlle.Räume

  @EndeFürAlle.Geschosse

@Ende.Frage

Beispiel 2:

@FürAlle.Geschosse

  @Frage Sollen alle Räume aufgelistet werden?@

    @FürAlle.Räume

      ....

    @EndeFürAlle.Räume

   @Ende.Frage

@EndeFürAlle.Geschosse

Im ersten Beispiel wird ein einziges Mal gefragt, ob die Geschosse ausgegeben werden sollen. Wenn nicht, werden beide Schleifen, also die für die Räume und die Geschosse, ignoriert. Im zweiten Fall wird für jedes Geschoß erneut gefragt, ob die Räume ausgegeben werden sollen.

Inhaltlich für ganz andere Zwecke eingesetzt, syntaktisch aber dem Frageteil von Fragen sehr ähnlich sind Kommentare in Rauminfovorlagen. Diese Kommentare dienen lediglich in der Vorlage zur Übersicht, sie werden aber nie in die aus der Vorlage erzeugten Rauminfos bzw. Raumbücher aufgenommen.

Kommentare beginnen mit einer @[ Zeichenfolge und gehen bis zum nächsten allein stehenden (also nicht von einem Schlüsselwort gefolgten) @. Die folgende Zeile wäre also ein Kommentar (das ]-Zeichen vor dem letzten @ dient nur der Optik, es könnte auch entfallen):

@[ So könnte ein Kommentar in einer VA - Virtual Architecture prof. Rauminfovorlage aussehen! ]@

ZURÜCK NACH OBEN oder ZURÜCK ZUM KOMPLETTEN INHALTSVERZEICHNIS (Startseite des VA Software Online Handbuches)

9.3.1 Rauminfovorlagen und Tabellen

Wegen diverser „Eigenheiten“ von RTF - Dateien muss bei der Verwendung von Schleifen, wie oben beschrieben, in Zusammenhang mit Word-Tabellen auf folgendes geachtet werden:

Es ist nicht möglich, eine Schleife in einer Zelle einer Tabelle zu beginnen und sie in einer anderen Zelle der Tabelle zu beenden. Entweder muss die komplette Schleife einschließlich Anfang und Ende in einer einzigen Zelle stehen, oder die Schleife beginnt über einer Spalte und endet unter einer Spalte. Die folgenden drei Beispiele zeigen mögliche (Beispiel 1 und 2) sowie unmögliche (Beispiel 3) Konstruktionen.

                Zelle 1:                                                 Zelle 2   

1. OK     @FürErstes .Objekt  Objekte:         @FürErstes .Objekt

                                                                                              @Objekt.Name

@EndeFürErstes.Objekt                   @EndeFürErstes .Objekt

2. OK     @FürAlleOhneErstes .Objekt

@Objekt.Name

@EndeFürAlleOhneErstes.Objekt

falsch     @FürAlle.Objekte                              @Objekt.Name

                @EndeFürAlle .Objekte

Die letzte, unmögliche Konstruktion wird von VA - Virtual Architecture prof. beim Interpretieren nicht erkannt und es erfolgt auch keine Fehlermeldung. Es wird eine RTF-Datei erzeugt. Konfrontieren Sie allerdings Word oder auch Word Viewer mit dem Ergebnis, „verabschieden“ sich beide Programme beim Laden einer solchen RTF-Datei.

Um trotzdem zusammenhängende Tabellen zu erzeugen, definiert man einfach eine Zeile der Tabelle und schreibt in die der Tabelle vorangehenden Zeile als verborgenen Text den Schleifenanfang, in die der Tabelle folgenden Zeile als verborgenen Text das Schleifenende. In Tabelle 2 wären also die Zeilen „@FürAlle.Objekte“ und „@EndeFürAlle.Objekte“ als verborgener Text zu setzen.

Eine weitere „Besonderheit“ von Tabellen in Word muss dann beachtet werden, wenn gleiche Tabellen mehrfach hintereinander verwendet werden, wobei alle als Kopie der ersten Tabelle entstanden sind und dann aufgrund von leeren Schleifen die erste Tabelle der Vorlage wegfällt. Word speichert das Format solcher Tabellen in RTF-Dateien nur einmal, nämlich für die erste Tabelle. Entfällt diese dann aufgrund einer leeren Schleife, fehlt u.U. auch die Formatierung, so dass die weiteren Tabellen „formatlos“ sind. Der Effekt ist der gleiche wie im vorigen Abschnitt beschrieben: Word „hängt“. I.a. werden Sie solche Tabellen nicht erzeugen. Falls dies aber doch einmal nötig ist (wie in einigen Vorlagen auf der CD), so können Sie das „Verschwinden“ der ersten Tabelle durch eine Tabelle vor der Schleife, die als verborgener Text formatiert ist, verhindern.

9.3.2 Sprachdefinition von Rauminfovorlagen

PROJEKTDATEN ::=

{" .Name" | ".Dateiname" | ".Datum" | ".Adresse1" | ".Adresse2" | ".Adresse3" | ".Zusatz1" | ".Zusatz2" | ".Zusatz3"| ".Bemerkung" | ".AnzahlGrundstücke" | GESCHOSSWERTE |

[ART] RAUMWERTE | [ART] ANZAHL}

PERSONENDATEN ::=

{" .Name" | ".Anrede" | ".Adresse1" | ".Adresse2" | ".Adresse3" | ".Zusatz1" | ".Zusatz2" | ".Zusatz3" | ".Bemerkung"}

INFO ::=

{" .Name" | ".Bemerkung" | ".Nummer"}

ART ::=

{".A" | ".B" | ".C" | ".HNF" | ".HNF1" | ".HNF2" | ".HNF3" | ".HNF4" | ".HNF5" | ".HNF6" | ".NNF" | ".FF" | ".VF" | " .X" | ".K150" } [ART]

ANZAHL ::=

{".AnzahlGebäude" | ".AnzahlWohneinheiten" | ".AnzahlUmschließungsarten" | ".AnzahlGeschosse" | ".AnzahlRäume" }

WANDWERTE::=

{".Wandfläche" | ".FormelWandfläche" | ".Fensterfläche" | ".FormelFensterfläche" | ".Türfläche" | ".FormelTürfläche" | ".AnzahlFenster" | " .AnzahlTüren" }

RAUMWERTE ::=

{".Bodenfläche" | ".FormelBodenfläche" | ".Deckenfläche" | ".FormelDeckenfläche" | ".Umfang" | ".FormelUmfang" | ".Volumen" | ".FormelVolumen" | ".AnzahlSchornsteine" | ".AnzahlStützen" | ".AnzahlObjekte" | ".AnzahlWandseiten" | WANDWERTE}

GESCHOSSWERTE ::=

{".Bruttorauminhalt" | ".FormelBruttoRauminhalt" | ".Bruttogrundfläche" | ".FormelBruttoGrundfläche" | ".Konstruktionsfläche" }

BODENWERTE ::=

{ ".Umfang" | ".FormelUmfang" | ".Fläche" | ".FormelFläche" }

KOSTENEINTRAG ::=

{".Menge" | ".EinheitMenge" | ".Min" | ".Mid" | ".Max" | " .EinheitMinMidMax" | ".MinKosten" | ".MidKosten" | ".MaxKosten" | ".EinheitKosten"}

EINZELKOSTEN ::=

".100" KOSTENEINTRAG | ".200" KOSTENEINTRAG | ".300" KOSTENEINTRAG | ".400" KOSTENEINTRAG |".500" KOSTENEINTRAG | ".600" KOSTENEINTRAG |".700" KOSTENEINTRAG

NUMERIERER ::=

{".Grundstück" | ".Grundstücksbereich" | ".Wohnung" | " .Umschließungsart" [ART] | ".Gebäude" | ".Geschoß" | ".Raum" | ".Wandseite" | ".Fenster" | ".Tür" | ".Stütze" | " .Schornstein" | ".Objekt"}

Einheit ::=

"@EinheitInMeter" |

"@EinheitInZentimeter" |

"@EinheitInMillimeter" |

"@EinheitInInch"  |

"@EinheitInYard"

Frage ::=

"@Frage"

EndeFrage ::=

"@Ende Frage"

Kommentar ::=

"@["

FürAlle ::=;bis Bauherr ::= 

"@FürAlle" NUMERIERER

"@FürAktuelles" NUMERIERER

Direktlinks zu den einzelnen Kapiteln: Kapitel 1: 1, 2, 3; Kapitel 2: 1, 2, 3, 4, 5, 6; Kapitel 3: 1, 2, 3, 4; Kapitel 4: 1, 2; Kapitel 5: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14; Kapitel 6: 1, 2, 3, 4, 5, 6; Kapitel 7: 1, 2; Kapitel 8: 1; Kapitel 9: 1, 2, 3; Kapitel 10: 1; Kapitel 11: 1; Kapitel 12: 1, 2; Glossar; Kapitel 13: VA -Tools; Glossar

Zurück