С помощью использования регулярных выражений возможна конвертация нескольких объектов — например, целого ряда профилей IPE — через одну запись.
Пример
Конвертация, например, IPE120 в Tekla в IPE 120 | Euronorm 19-57; ... | SZS в RFEM 6 должна также работать для всех остальных сечений ряда профилей IPE.
Чтобы создать конвертацию для всего ряда профилей IPE, регулярное выражение создается следующим образом:
| Конвертация из Tekla в RFEM 6 | Tekla | RFEM 6 |
| регулярное выражение | IPE(\d+) | IPE $1 | Euronorm 19-57; ... | SZS |
| Название сечения | IPE120 | IPE 120 | Euronorm 19-57; ... | SZS |
| Название сечения | IPE300 | IPE 300 | Euronorm 19-57; ... | SZS |
Для выражения (\d+) может быть использовано любое целое число. (IPE200, IPE300,...)
С помощью выражения $1 ссылаются на использованное число. На следующем изображении регулярное выражение было дополнено в таблице конвертации Tekla.
При использовании двух чисел, с помощью выражения $1 ссылаются на первое число, а с $2 — на второе. В следующей таблице это показано на примере конвертации материалов.
| Конвертация из Tekla в RFEM 6 | Tekla | RFEM 6 |
| регулярное выражение | C(\d+)/(\d+) | C$1/$2 | EN 1992-1-1:2004/A1:2014 |
| Название материала | C20/25 | C20/25 | EN 1992-1-1:2004/A1:2014 |
| Название материала | C30/37 | C30/37 | EN 1992-1-1:2004/A1:2014 |
Далее будут представлены и объяснены возможные проблемы при определении регулярных выражений.
Название профиля 400*400 не конвертируется с помощью выражения (\d+)*(\d+).
Звездочка * имеет специальное значение в регулярных выражениях и поэтому не интерпретируется как простой символ. Чтобы использовать звездочку как одиночный символ в регулярном выражении, его можно записать с обратным слэшем \, чтобы убрать его специальное значение.
| Конвертация из Tekla в RFEM 6 | Tekla | RFEM 6 |
| регулярное выражение | (\d+)\*(\d+) | R_M1 $2/$1 |
| Название сечения | 400*400 | R_M1 400/400 |
| Название сечения | 150*200 | R_M1 150/200 |
Название профиля RHS200*100*5 не конвертируется с помощью выражения RHS(\d+)\*(\d+)\*(\d+).
При использовании нескольких схожих регулярных выражений это может привести к тому, что будет применено неправильное регулярное выражение (пример на изображении).
С помощью каретки ^ можно установить, что регулярное выражение применяется только в том случае, если оно совпадает с началом названия материала или сечения. Выражение ^(\d+)\*(\d+) теперь не актуально для профиля RHS, так как название профиля RHS не начинается с числа (как, например, 400x400).
| Конвертация из Tekla в RFEM 6 | Tekla | RFEM 6 |
| регулярное выражение | ^(\d+)\*(\d+) | R_M1 $2/$1 |
| Название сечения | 400*400 | R_M1 400/400 |
| Название сечения | 300*300 | R_M1 300/300 |
| регулярное выражение | RHS(\d+)\*(\d+)\*(\d+) | RRO $1x$2x$3 | EN 10219-2 | ALUKÖNIGSTAHL |
| Название сечения | RHS200*100*5 | RRO 200x100x5 | EN 10219-2 | ALUKÖNIGSTAHL |
| Название сечения | RHS180*140*8 | RRO 180x140x8 | EN 10219-2 | ALUKÖNIGSTAHL |
Как я могу конвертировать материал/сечение из RFEM 6 независимо от обозначения стандарта?
По сравнению с RFEM 6, Revit и Tekla присваивают материалам и названиям сечений свои обозначения, независимо от стандартов. Чтобы например профиль HEA 300 в RFEM 6 из различных стандартов конвертировался в HEA 300 без упоминания стандарта в Revit или Tekla, с помощью регулярного выражения .*$ можно игнорировать обозначение стандарта в названии.
| Конвертация из RFEM 6 в Tekla | RFEM 6 | Tekla |
| регулярное выражение | HEA (\d+).*$ | HEA$1 |
| Название сечения | HEA 300 | DIN 1025-3:1994-03 | Ferona | HEA300 |
| Название сечения | HEA 300 | Euronorm 53-62; ... | SZS | HEA300 |
| Название сечения | HEA 300 | GB/T 11263-2017 | -- | HEA300 |
Регулярные выражения для равнополочных и неравнополочных L-профилей не работают одновременно.
При использовании схожих регулярных выражений это может привести к тому, что всегда будет считано только первое выражение в таблице (пример на изображении). Для неравнополочного L-профиля (красного) используется неверное регулярное выражение равнополочного L-профиля (желтого), так как оно построено абсолютно одинаково от начала до конца.
Чтобы различать такие выражения друг от друга, неправомерно использованное выражение должно начинаться с ^ и заканчиваться $. Это позволяет определить, что регулярное выражение применяется только в том случае, если название профиля от начала до конца точно соответствует этому шаблону. Следующая таблица показывает это на примере:
| Конвертация из Tekla в RFEM 6 | Tekla | RFEM 6 |
| регулярное выражение | ^L(\d+)\*(\d+)$ | L $1x$1x$2 | DIN EN 10056-1:1998-10 | -- |
| Название сечения | L40*4 | L 40x40x4 | | DIN EN 10056-1:1998-10 | -- |
| регулярное выражение | L(\d+)\*(\d+)\*(\d+) | L $1x$2x$3 | EN 10056-1:2017 | ArcelorMittal (2018) |
| Название сечения | L100*65*10 | L 100x65x10 | EN 10056-1:2017 | ArcelorMittal (2018) |
В RFEM равнополочные и неравнополочные L-профили определяются тремя числами в названии сечения. Tekla использует для равнополочных профилей только два значения для названия сечения. Как я могу учесть оба случая одновременно?
Сначала для неравнополочных профилей можно создать регулярное выражение с тремя значениями:
| Конвертация из RFEM 6 в Tekla | RFEM 6 | Tekla |
| регулярное выражение | L (\d+)x(\d+)x(\d+).*$ | L$1*$2*$3 |
| Название сечения | L 100x75x8 | L100*75*8 |
Для равнополочных профилей регулярное выражение определяется следующим образом:
| Конвертация из RFEM 6 в Tekla | RFEM 6 | Tekla |
| регулярное выражение | L (\d+)x(\1)x(\d+).*$ | L$1*$3 |
| Название сечения | L 100x100x8 | L100*8 |
(\d+) захватывает первое число.
(\1) проверяет, совпадает ли второе число с первым. (Если да, то используется это регулярное выражение)
(\d+) захватывает третье число.
Как конвертировать названия сечений с десятичными числами?
В RFEM существуют ряды сечений, в которых размеры сечений содержат десятичное число в названии сечения (например, CHS-полые профили). Для следующего примера следующие сечения должны быть конвертированы с помощью одного выражения:
- CHS 25x2 | EN 10219-2 | Condesa (название сечения с двумя целыми числами)
- CHS 26.9x2 | EN 10219-2 | Condesa (название сечения с десятичным и целым числом)
- CHS 32x2.9 | EN 10219-2 | Condesa (название сечения с целым и десятичным числом)
- CHS 37.5x2.9 | EN 10219-2 | Condesa (название сечения с двумя десятичными числами)
Следовательно, любое число может иметь опциональную десятичную часть. Регулярное выражение для этого правила строится следующим образом:
CHS (\d*\.?\d*)x(\d*\.?\d*).*$
\d* захватывает ни одно или одно число.
\.? захватывает опционально десятичную точку (целые числа без десятичной точки, таким образом, учитываются)
\d* захватывает ни одно или одно число после десятичной точки.
.*$ игнорирует обозначение стандарта в названии.
| Конвертация из RFEM 6 в Tekla | RFEM 6 | Tekla |
| регулярное выражение | CHS (\d*\.?\d*)x(\d*\.?\d*).*$ | RO$1*$2 |
| Название сечения | CHS 25x2 | EN 10219-2 | Condesa | RO25*2 |
| Название сечения | CHS 26.9x2 | EN 10219-2 | Condesa | RO26.9*2 |
| Название сечения | CHS 32x2.9 | EN 10219-2 | Condesa | RO32*2.9 |
| Название сечения | CHS 37.5x2.9 | EN 10219-2 | Condesa | RO37.5*2.9 |
Почему сечение KREIS_M1 500 не конвертируется?
Для некоторых сечений обозначения для конвертации из-за веб-сервисов отличаются от представленных обозначений на немецком языке. Конвертация для KREIS_M1 500 должна быть определена как CIRCLE_M1 500. Это также применимо к следующим обозначениям сечений:
- KREIS→CIRCLE
- RRO→RHS
- QRO→SHS
- KHP→CHS
- Kabel→Cable