Dzięki zastosowaniu wyrażeń regularnych konwersja wielu obiektów – na przykład całej serii profili IPE – jest możliwa za pomocą jednego wpisu.
Przykład
Konwersja np. IPE120 w Tekla na IPE 120 | Euronorm 19-57; ... | SZS w RFEM 6 powinna działać także dla wszystkich innych przekrojów serii profili IPE.
Aby utworzyć konwersję dla całej serii profili IPE, wyrażenie regularne buduje się w następujący sposób:
| Konwersja z Tekla do RFEM 6 | Tekla | RFEM 6 |
| wyrażenie regularne | IPE(\d+) | IPE $1 | Euronorm 19-57; ... | SZS |
| nazwa przekroju | IPE120 | IPE 120 | Euronorm 19-57; ... | SZS |
| nazwa przekroju | IPE300 | IPE 300 | Euronorm 19-57; ... | SZS |
Dla wyrażenia (\d+) można wstawić dowolną liczbę całkowitą (IPE200, IPE300,...).
Za pomocą wyrażenia $1 odwołuje się do wstawionej liczby. Na poniższym obrazie uzupełniono tabelę konwersji w Tekla o wyrażenie regularne.
Jeżeli używane są dwie liczby, to za pomocą wyrażenia $1 odwołuje się do pierwszej liczby, a za pomocą $2 do drugiej liczby. W poniższej tabeli pokazano to na przykładzie konwersji materiału.
| Konwersja z Tekla do RFEM 6 | Tekla | RFEM 6 |
| wyrażenie regularne | C(\d+)/(\d+) | C$1/$2 | EN 1992-1-1:2004/A1:2014 |
| nazwa materiału | C20/25 | C20/25 | EN 1992-1-1:2004/A1:2014 |
| nazwa materiału | C30/37 | C30/37 | EN 1992-1-1:2004/A1:2014 |
Poniżej przedstawiono i objaśniono możliwe problemy przy definiowaniu wyrażeń regularnych.
Nazwa profilu 400*400 nie jest konwertowana za pomocą wyrażenia (\d+)*(\d+).
Gwiazdkа * ma specjalne znaczenie w wyrażeniach regularnych i dlatego nie jest interpretowana jako zwykły znak. Aby użyć gwiazdki jako pojedynczego znaku w wyrażeniu regularnym, można ją zapisać z backslashem \, aby znieść jej specjalne znaczenie.
| Konwersja z Tekla do RFEM 6 | Tekla | RFEM 6 |
| wyrażenie regularne | (\d+)\*(\d+) | R_M1 $2/$1 |
| nazwa przekroju | 400*400 | R_M1 400/400 |
| nazwa przekroju | 150*200 | R_M1 150/200 |
Nazwa profilu RHS200*100*5 nie jest konwertowana za pomocą wyrażenia RHS(\d+)\*(\d+)\*(\d+).
Jeżeli używane są kilka podobnych wyrażeń regularnych, może to prowadzić do zastosowania niewłaściwego wyrażenia regularnego (przykład na obrazie).
Za pomocą znaku daszka ^ można określić, że wyrażenie regularne ma być używane tylko wtedy, gdy odpowiada początkowi nazwy materiału lub przekroju. Wyrażenie ^(\d+)\*(\d+) nie jest zatem już prawidłowe dla przekroju RHS, ponieważ nazwa przekroju RHS nie zaczyna się od liczby (np. 400x400).
| Konwersja z Tekla do RFEM 6 | Tekla | RFEM 6 |
| wyrażenie regularne | ^(\d+)\*(\d+) | R_M1 $2/$1 |
| nazwa przekroju | 400*400 | R_M1 400/400 |
| nazwa przekroju | 300*300 | R_M1 300/300 |
| wyrażenie regularne | RHS(\d+)\*(\d+)\*(\d+) | RRO $1x$2x$3 | EN 10219-2 | ALUKÖNIGSTAHL |
| nazwa przekroju | RHS200*100*5 | RRO 200x100x5 | EN 10219-2 | ALUKÖNIGSTAHL |
| nazwa przekroju | RHS180*140*8 | RRO 180x140x8 | EN 10219-2 | ALUKÖNIGSTAHL |
Jak mogę konwertować materiał/przekrój z RFEM 6 niezależnie od oznaczenia normy?
W porównaniu z RFEM 6 Revit i Tekla nadają nazwy materiałów i przekrojów niezależnie od norm. Aby np. przekrój HEA 300 w RFEM 6 z różnych norm został przekształcony na HEA 300 bez przypisania normy w Revit lub Tekla, można za pomocą wyrażenia regularnego .*$ zignorować oznaczenie normy w nazwie.
| Konwersja z RFEM 6 do Tekla | RFEM 6 | Tekla |
| wyrażenie regularne | HEA (\d+).*$ | HEA$1 |
| nazwa przekroju | HEA 300 | DIN 1025-3:1994-03 | Ferona | HEA300 |
| nazwa przekroju | HEA 300 | Euronorm 53-62; ... | SZS | HEA300 |
| nazwa przekroju | HEA 300 | GB/T 11263-2017 | -- | HEA300 |
Wyrażenia regularne dla równoramiennych i nierównoramiennych profili L nie działają jednocześnie.
Jeśli używane są podobne wyrażenia regularne, może to prowadzić do tego, że zawsze odczytywane jest tylko pierwsze wyrażenie w tabeli (przykład na obrazie). Dla nierównoramiennego profilu L (czerwony) błędnie używane jest wyrażenie regularne profilu L równoramiennego (żółty), ponieważ od początku do końca ma on dokładnie taką samą strukturę.
Aby odróżnić takie wyrażenia od siebie, błędnie używane wyrażenie musi zaczynać się od ^ i kończyć na $. W ten sposób określa się, że wyrażenie regularne jest używane tylko wtedy, gdy nazwa profilu od początku do końca dokładnie odpowiada temu wzorcowi. W poniższej tabeli pokazano to na przykładzie:
| Konwersja z Tekla do RFEM 6 | Tekla | RFEM 6 |
| wyrażenie regularne | ^L(\d+)\*(\d+)$ | L $1x$1x$2 | DIN EN 10056-1:1998-10 | -- |
| nazwa przekroju | L40*4 | L 40x40x4 | | DIN EN 10056-1:1998-10 | -- |
| wyrażenie regularne | L(\d+)\*(\d+)\*(\d+) | L $1x$2x$3 | EN 10056-1:2017 | ArcelorMittal (2018) |
| nazwa przekroju | L100*65*10 | L 100x65x10 | EN 10056-1:2017 | ArcelorMittal (2018) |
W RFEM profile L równoramienne i nierównoramienne są definiowane z trzema wartościami w nazwie przekroju. Tekla używa dla profili równoramiennych tylko dwóch wartości w nazwie przekroju. Jak mogę uwzględnić oba przypadki jednocześnie?
Najpierw można dla profili nierównoramiennych utworzyć wyrażenie regularne z trzema wartościami:
| Konwersja z RFEM 6 do Tekla | RFEM 6 | Tekla |
| wyrażenie regularne | L (\d+)x(\d+)x(\d+).*$ | L$1*$2*$3 |
| nazwa przekroju | L 100x75x8 | L100*75*8 |
Dla profili równoramiennych wyrażenie regularne definiuje się w następujący sposób:
| Konwersja z RFEM 6 do Tekla | RFEM 6 | Tekla |
| wyrażenie regularne | L (\d+)x(\1)x(\d+).*$ | L$1*$3 |
| nazwa przekroju | L 100x100x8 | L100*8 |
(\d+) przechwytuje pierwszą liczbę.
(\1) sprawdza, czy druga liczba jest identyczna z pierwszą. (Jeśli tak, to to wyrażenie regularne jest używane)
(\d+) przechwytuje trzecią liczbę.
Jak konwertowane są nazwy przekrojów z liczbami dziesiętnymi?
W RFEM istnieją serie przekrojów, w których wymiary przekrojów są zawarte w nazwie przekroju jako liczby dziesiętne (np. profile zamknięte CHS). W poniższym przykładzie następujące przekroje mają zostać skonwertowane za pomocą jednego wyrażenia:
- CHS 25x2 | EN 10219-2 | Condesa (nazwy przekrojów z dwiema liczbami całkowitymi)
- CHS 26.9x2 | EN 10219-2 | Condesa (nazwy przekrojów z liczbą dziesiętną i całkowitą)
- CHS 32x2.9 | EN 10219-2 | Condesa (nazwy przekrojów z liczbą całkowitą i dziesiętną)
- CHS 37.5x2.9 | EN 10219-2 | Condesa (nazwy przekrojów z dwiema liczbami dziesiętnymi)
Każda liczba może zatem opcjonalnie posiadać część dziesiętną. Wyrażenie regularne dla tej reguły jest budowane w następujący sposób:
CHS (\d*\.?\d*)x(\d*\.?\d*).*$
\d* przechwytuje zero lub jedną cyfrę.
\.? opcjonalnie przechwytuje kropkę dziesiętną (uwzględniane są więc liczby całkowite bez kropki dziesiętnej)
\d*przechwytuje zero lub jedną cyfrę po kropce dziesiętnej.
.*$ oznaczenie normy w nazwie jest ignorowane.
| Konwersja z RFEM 6 do Tekla | RFEM 6 | Tekla |
| wyrażenie regularne | CHS (\d*\.?\d*)x(\d*\.?\d*).*$ | RO$1*$2 |
| nazwa przekroju | CHS 25x2 | EN 10219-2 | Condesa | RO25*2 |
| nazwa przekroju | CHS 26.9x2 | EN 10219-2 | Condesa | RO26.9*2 |
| nazwa przekroju | CHS 32x2.9 | EN 10219-2 | Condesa | RO32*2.9 |
| nazwa przekroju | CHS 37.5x2.9 | EN 10219-2 | Condesa | RO37.5*2.9 |
Dlaczego przekrój KREIS_M1 500 nie jest konwertowany?
Dla niewielu przekrojów oznaczenie do konwersji różni się, ze względu na usługi internetowe, od przedstawionego oznaczenia w języku niemieckim. Konwersję dla KREIS_M1 500 należy zdefiniować jako CIRCLE_M1 500. Dotyczy to również następujących oznaczeń przekrojów:
- KREIS→CIRCLE
- RRO→RHS
- QRO→SHS
- KHP→CHS
- Kabel→Cable