Wyrażenia służące do mapowania danych IFCKaż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. |
~~~~~~~~~~~~~~~~~~~~~~~~~