Każda formuła składa się z co najmniej jednego wyrażenia z następującej listy. Bardziej szczegółowy opis poszczególnych wyrażeń znajduje się w dalszej części tego zagadnienia.
Wyrażenie |
Opis |
Stałe |
Typy danych, takie jak liczby całkowite, stałe boolowskie, liczby i stałe tekstowe |
Niezmienne wartości |
Ciągi znaków, wartości numeryczne, logiczne itd. |
Operatory |
Dodanie, odjęcie, porównanie itd. |
Zmienne |
Źródła danych z Vectorworks, takie jak parametry obiektów, informacje o stylu, nazwa klasy |
Funkcje |
Funkcje matematyczne, operacje na ciągach znaków, funkcje warunkowe itd. |
ELSE |
Metoda dodawania alternatywnego mapowania danych, jeśli poprzednia zwraca pustą wartość. |
Stała |
Opis |
Przykłady |
Typ boolowski |
Parametry boolowskie korzystają z wartości Prawda lub Fałsz, zapisywanych jako stałe tekstowe, między apostrofami. |
'PRAWDA' 'FAŁSZ' |
Liczba całkowita |
Stała może być liczbą dodatnią lub ujemną i 0, zapisywaną liczbowo, bez przecinka dziesiętnego ani apostrofów. |
4 125 |
Liczba wymierna |
Stała jest liczbą wymierną, zapisywaną liczbowo z przecinkiem dziesiętnym i bez apostrofów. |
3,14 -12,0 248,141539 |
Tekst |
Stała składająca się z ciągu znaków, umieszczonych między apostrofami. |
'Ściana bez stylu' ‘Strona wewnętrzna’ ‘Niezdefiniowany’ |
Operator |
Opis |
+ |
Plus jednoargumentowy |
- |
Minus jednoargumentowy |
+ |
Plus dwuargumentowy, dodanie, łączenie |
- |
Minus dwuargumentowy, odjęcie |
* |
Mnożenie |
/ |
Dzielenie |
= |
Wartość logiczna EQUALS |
! |
Wartość logiczna NOT |
| |
Wartość logiczna OR |
& |
Wartość logiczna AND |
!= |
Wartość logiczna NOT EQUAL |
> |
Większy od |
< |
Mniejszy od |
>= |
Większy lub równy |
<= |
Mniejszy lub równy |
Zmienne przedstawiają źródła danych z Vectorworks. Można je łączyć ze stałymi, wynikami funkcji i innymi zmiennym za pomocą operatorów. Typ (nazwa) zmiennej jest taka sama jak typ źródła danych. Zmienne zapisywane są w nawiasach kwadratowych, jako że w nazwach dozwolone są spacje.
Zmienna |
Format |
Przykład |
Parametry z obiektu |
[Object.NameOfTheParameter] Jeśli parametr występuje w formie listy rozwijanej, zmienna zwróci zlokalizowaną wartość. Jeśli zamiast tego potrzebna jest uniwersalna wartość, dodaj do nazwy pola asterysk (*). |
[Object.Config] [Object.Column ID] [Object.Struct Type] [Object.structuralUse*] |
Nazwa Vectorworks |
[Object.VW_Name] |
[Object.VW_Name] |
Dane z pola rekordu |
[Record.NameOfTheRecord.NameOfTheField] Jeśli rekord o tej nazwie nie został dołączony do obiektu, wtedy domyślna wartość pola rekordu zostania przyjęta jako wartość zmiennej. |
[Record.MyRecord.Price] [Record.Plant Record.Latin Name] |
Dane ze stylu |
[Style.NameOfTheField] Obecnie obsługiwane są następujące pola danych: Name (nazwa stylu), Mark (oznaczenie), Function (funkcja), Description (opis), Exterior (zewnętrzna, typ boolowski), Load-Bearing (nośna, typ boolowski), Fire Rating (ognioodporność), Combustible Construction (łatwopalna, typ boolowski), Compartmentation (przegroda ogniowa, typ boolowski), U-Value (współczynnik U), Acoustic Rating (izolacyjność akustyczna), Cost Index System (system kosztów), Cost Index Code (kategoria cenowa), Model (model), Manufacturer (producent). |
[Style.Function] [Style.Name] [Style.Fire Rating] |
Komponent |
[Component.NameOfTheField] Obecnie obsługiwane są następujące pola danych: Name (nazwa komponentu), Function, Class, Thickness, Lambda, U-Value. Jeśli funkcja eksportowania z podziałem na komponenty nie jest włączona, te zmienne będą odpowiadały głównemu komponentowi. |
[Component.Function] [Component.Thickness] |
Nazwa klasy |
[ClassName] |
[ClassName] |
Nazwa warstwy |
[LayerName] |
[LayerName] |
Nazwa kondygnacji |
[StoryName] |
[StoryName] |
Funkcja |
Opis |
PI ( ) |
Zwraca liczbę |
SIN (radiany) |
Zwraca sinus |
COS (radiany) |
Zwraca cosinus |
ABS (liczba) |
Zwraca wartość absolutną |
SQRT (liczba) |
Zwraca pierwiastek |
INT (liczba) |
Zwraca liczbę całkowitą po konwersji |
REAL (liczba) |
Zwraca liczbę rzeczywistą po konwersji |
IF (wyrażenie_logiczne, wyrażenie_wartości1, wyrażenie_wartości2) |
Oblicza wyrażenie_logiczne i zwraca obliczoną wartość wyrażenia_wartości1, jeśli równa się PRAWDA; w przeciwnym razie zwraca wartość wyrażenia_wartości2. |
SELECT1 (wyrażenie_liczbowe, wyrażenie_wartości1, wyrażenie_wartości2, ..., wyrażenie_wartościN) |
Oblicza wyrażenie_liczbowe i zwraca obliczoną wartość wyrażenia_wartości1 - jeśli wynik wynosi 0, wartość wyrażenia_wartości2 - jeśli wynik wynosi 1 itd. Zwraca wartość ostatniego wyrażenia, jeśli wynik wynosi więcej niż N-1. Funkcja musi posiadać co najmniej 3 parametry. |
SELECT2 (wyrażenie_logiczne1, wyrażenie_wartości1, wyrażenie_logiczne2, wyrażenie_wartości2, wyrażenie_logiczneN, wyrażenie_wartościN) |
Oblicza pierwsze wyrażenie logiczne i zwraca obliczoną wartość wyrażenia_wartości1, jeśli otrzymanym wynikiem jest PRAWDA; w przeciwnym razie przechodzi do kolejnej pary wyrażeń. Funkcja musi posiadać parzystą liczbę parametrów, większą niż 2. |
COUNTER (“nazwa”) |
Zwraca wartości uzyskane w procesie autoinkrementacji, czyli automatycznie zwiększone o jeden (w celu wygenerowania jednoznacznych wartości) |
BOUNDS (“nazwa”) |
Zwraca współrzędne X, Y i Z lub wymiary Szerokość/Wysokość/Głębokość obiektu. |
LEFT (tekst, liczba) |
Zwraca lewą część łańcucha, posiadającą określoną liczbę znaków. Zwraca pusty ciąg znaków, jeśli liczba jest nieprawidłowa. |
RIGHT (tekst, liczba) |
Zwraca prawą część łańcucha, posiadającą określoną liczbę znaków. Zwraca pusty ciąg znaków, jeśli liczba jest nieprawidłowa. |
MID (tekst, indeks, liczba) |
Zwraca prawą część ciągu znaków, rozdzieloną indeksem pozycyjnym (gdzie 0 to położenie pierwszego znaku), wykorzystując określoną liczbę znaków. Zwraca pusty ciąg znaków, jeśli indeks lub liczba jest nieprawidłowy(-a). |
FIND (subtekst, tekst) |
Zwraca rozpoczynające się od zera położenie subtekstu w tekście, jeśli takie zostanie znalezione; w przeciwnym razie zwraca -1. Na przykład: przykład FIND (‘fo’, ‘foo’) zwraca 0, a FIND(‘oo’, ‘foo’) zwraca 1. |
LEN (ciąg_znaków) |
Zwraca długość ciągu znaków. |
INSERT (ciąg_znaków1, indeks, ciąg_znaków2) |
Wstawia ciąg_znaków2 w określonym indeksie pozycyjnym w ciągu_znaków1. |
DELETE (ciąg_znaków1, indeks, liczba) |
Usuwa prawą część ciągu znaków, rozdzieloną indeksem pozycyjnym (gdzie 0 to położenie pierwszego znaku), posiadającą określoną liczbę znaków. |
REPLACE (ciąg_znaków1, ciąg_znaków2, ciąg_znaków3) |
Zastępuje wszystkie wystąpienia ciągu_znaków2 napotkane w ciągu_znaków1 ciągiem_znaków3. |
TRIMLEFT (ciąg_znaków) |
Zwraca lewą część łańcucha, pozbawioną białych znaków (czyli znaków odstępu, tabulacji itp.). |
TRIMRIGHT (ciąg_znaków) |
Zwraca prawą część łańcucha, pozbawioną białych znaków (czyli znaków odstępu, tabulacji itp.). |
MAKEUPPER (ciąg_znaków) |
Zwraca ciąg znaków napisany wersalikami. |
MAKELOWER (ciąg_znaków) |
Zwraca ciąg znaków napisany małymi literami. |
GETCOMPONENTINFO (indeks, selektor) |
Zwraca informacje o zaznaczonym komponencie (ścianie lub płycie), gdzie indeks to numer komponentu, a selektor to jedna z następujących opcji: 1 (nazwa komponentu) 2 (funkcja komponentu) 3 (klasa komponentu) 4 (grubość komponentu) |
~~~~~~~~~~~~~~~~~~~~~~~~~