Благодаря использованию регулярных выражений возможно преобразование нескольких объектов — например, целого ряда профилей 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