Za pomocą wyrażeń regularnych możliwa jest konwersja wielu obiektów – na przykład całej serii profili IPE – poprzez jeden zapis.
Przykład
Konwersja z np. IPE120 w Tekla do IPE 120 | Euronorm 19-57; ... | SZS w RFEM 6 powinna działać również dla wszystkich innych przekrojów z serii profili IPE.
Aby utworzyć konwersję dla całej serii profili IPE, wyrażenie regularne jest skonstruowane 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,...)
Wyrażenie $1 odnosi się do wstawionej liczby. Na poniższym obrazku wyrażenie regularne zostało dodane do tabeli konwersji Tekla.
Jeśli używa się dwóch liczb, wyrażenie $1 odnosi się do pierwszej liczby, a $2 do drugiej liczby. Na 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 omówiono możliwe problemy przy definiowaniu wyrażeń regularnych.
Nazwa profilu 400*400 nie jest konwertowana za pomocą wyrażenia (\d+)*(\d+).
Gwiazdka * 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ą napisać za pomocą ukośnika \, 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+).
Używanie kilku podobnych wyrażeń regularnych może doprowadzić do zastosowania niewłaściwego wyrażenia regularnego (przykład na obrazku).
Za pomocą daszka ^ można określić, że wyrażenie regularne jest używane tylko wtedy, gdy odpowiada początkowi nazwy materiału lub przekroju. Wyrażenie ^(\d+)\*(\d+) nie jest już zatem ważne dla przekroju RHS, ponieważ nazwa przekroju RHS nie zaczyna się liczbą (jak 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 można przekonwertować materiał/przekrój z RFEM 6 niezależnie od nazwy normy.
W porównaniu do RFEM 6, Revit i Tekla przypisują swoje 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 w HEA 300 bez przypisania normy w Revit lub Tekla, można użyć wyrażenia regularnego .*$, aby zignorować nazwę 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 kątowników równoramiennych i nierównoramiennych nie działają jednocześnie.
Używanie podobnych wyrażeń regularnych może doprowadzić do odczytania zawsze tylko pierwszego wyrażenia z tabeli (przykład na obrazku). Dla kątownika nierównoramiennego (czerwony) błędnie używany jest wyrażenie regularne kątownika równoramiennego (żółty), ponieważ są one skonstruowane dokładnie tak samo od początku do końca.
Aby odróżnić takie wyrażenia od siebie, wyrażenie błędnie używane musi rozpoczynać się od ^ i kończyć na $.
Określono w ten sposób, że wyrażenie regularne jest używane tylko wtedy, gdy nazwa profilu dokładnie odpowiada temu wzorcowi od początku do końca. Na 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 kątowniki równoramienne i nierównoramienne są zdefiniowane trzema wartościami w nazwie przekroju. Tekla używa dla profili równoramiennych tylko dwóch wartości w nazwie przekroju. Jak mogę jednocześnie uwzględnić oba przypadki?
Najpierw można utworzyć wyrażenie regularne z trzema wartościami dla profili nierównoramiennych:
| 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 zostanie zdefiniowane 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+ przywraca pierwszą liczbę.
(\1) sprawdza, czy druga liczba jest identyczna z pierwszą. (Jeśli tak, to używane jest to wyrażenie regularne)
\d+ przywraca trzecią liczbę.
Jak są konwertowane nazwy przekrojów z liczbami dziesiętnymi?
W RFEM istnieją serie przekrojów, w których wymiary przekrojów są zawarte jako liczba dziesiętna w nazwie przekroju (np. CHS-hollow profiles). W poniższym przykładzie powinny zostać przekonwertowane następujące przekroje za pomocą wyrażenia:
- CHS 25x2 | EN 10219-2 | Condesa (nazwa przekroju z dwoma liczbami całkowitymi)
- CHS 26.9x2 | EN 10219-2 | Condesa (nazwa przekroju z liczbą dziesiętną i całkowitą)
- CHS 32x2.9 | EN 10219-2 | Condesa (nazwa przekroju z liczbą całkowitą i dziesiętną)
- CHS 37.5x2.9 | EN 10219-2 | Condesa (nazwa przekroju z dwoma liczbami dziesiętnymi)
Każda liczba może opcjonalnie posiadać separator dziesiętny. Wyrażenie regularne dla tej reguły jest skonstruowane w następujący sposób:
CHS (\d*\.?\d*)x(\d*\.?\d*).*$
\d* wychwytuje brak lub jedną liczbę.
\.? wychwytuje opcjonalny punkt dziesiętny (bez punktu dziesiętnego całe liczby są uwzględniane)
\d* wychwytuje brak lub jedną liczbę po punkcie dziesiętnym.
.*$ nazwa normy w nazwie jest ignorowana.
| 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 kilku przekrojów, nazwa dla konwersji różni się od tej w języku niemieckim ze względu na usługi internetowe.
Konwersja dla KREIS_M1 500 musi być zdefiniowana jako CIRCLE_M1 500.
To samo dotyczy następujących nazw przekrojów:
- KREIS→CIRCLE
- RRO→RHS
- QRO→SHS
- KHP→CHS
- Kabel→Cable