1126x
005435
27.2.2024

Chybná konverze materiálu nebo průřezu v Revitu či Tekle (regex)

Obdržuji chybnou konverzi v Tekla/Revit, když v tabulce konverze používám regulární výrazy (regex).


Odpověď:

Použitím regulárních výrazů je možné převést více objektů – například celou řadu profilů IPE – pomocí jediného záznamu.

Příklad

Převod např. IPE120 v Tekle na IPE 120 | Euronorm 19-57; ... | SZS v RFEM 6 by měl fungovat i pro všechny ostatní průřezy řady profilů IPE.

Pro vytvoření převodu pro celou řadu profilů IPE se regulární výraz sestaví následovně:

Převod z Tekla do RFEM 6 Tekla RFEM 6
regulární výraz IPE(\d+) IPE $1 | Euronorm 19-57; ... | SZS
název průřezu IPE120 IPE 120 | Euronorm 19-57; ... | SZS
název průřezu IPE300 IPE 300 | Euronorm 19-57; ... | SZS

Pro výraz (\d+) lze dosadit libovolné celé číslo (IPE200, IPE300,...).

Pomocí výrazu $1 se odkazuje na dosazené číslo. Na následujícím obrázku byl regulární výraz doplněn do tabulky převodů v Tekle.

Pokud jsou použita dvě čísla, odkazuje se výrazem $1 na první číslo a výrazem $2 na druhé číslo. V následující tabulce je to znázorněno na příkladu převodu materiálu.

Převod z Tekla do RFEM 6 Tekla RFEM 6
regulární výraz C(\d+)/(\d+) C$1/$2 | EN 1992-1-1:2004/A1:2014
název materiálu C20/25 C20/25 | EN 1992-1-1:2004/A1:2014
název materiálu C30/37 C30/37 | EN 1992-1-1:2004/A1:2014

Níže jsou uvedeny a vysvětleny možné problémy při definici regulárních výrazů.

Název profilu 400*400 není převáděn pomocí výrazu (\d+)*(\d+).

Hvězdička * má v regulárních výrazech zvláštní význam, a proto není interpretována jako běžný znak. Chcete-li hvězdičku použít jako samostatný znak v regulárním výrazu, lze ji zapsat pomocí zpětného lomítka \, čímž se její zvláštní význam potlačí.

Převod z Tekla do RFEM 6 Tekla RFEM 6
regulární výraz (\d+)\*(\d+) R_M1 $2/$1
název průřezu 400*400 R_M1 400/400
název průřezu 150*200 R_M1 150/200

Název profilu RHS200*100*5 není převáděn pomocí výrazu RHS(\d+)\*(\d+)\*(\d+).

Při použití několika podobných regulárních výrazů může dojít k tomu, že je použit nesprávný regulární výraz (příklad na obrázku).

Pomocí stříšky ^ lze určit, že regulární výraz bude použit pouze tehdy, pokud odpovídá začátku názvu materiálu nebo průřezu. Výraz ^(\d+)\*(\d+) proto již není pro průřez RHS platný, protože název průřezu RHS nezačíná číslem (např. 400x400).

Převod z Tekla do RFEM 6 Tekla RFEM 6
regulární výraz ^(\d+)\*(\d+) R_M1 $2/$1
název průřezu 400*400 R_M1 400/400
název průřezu 300*300 R_M1 300/300
regulární výraz RHS(\d+)\*(\d+)\*(\d+) RRO $1x$2x$3 | EN 10219-2 | ALUKÖNIGSTAHL
název průřezu RHS200*100*5 RRO 200x100x5 | EN 10219-2 | ALUKÖNIGSTAHL
název průřezu RHS180*140*8 RRO 180x140x8 | EN 10219-2 | ALUKÖNIGSTAHL

Jak mohu převést materiál/průřez z RFEM 6 nezávisle na označení normy.

Ve srovnání s RFEM 6 přiřazují Revit a Tekla svým materiálům a průřezům názvy nezávisle na normách. Aby se například průřez HEA 300 v RFEM 6 z různých norem v Revitu, resp. Tekle převedl na HEA 300 bez přiřazení normy, lze pomocí regulárního výrazu .*$ označení normy v názvu ignorovat.

Převod z RFEM 6 do Tekla RFEM 6 Tekla
regulární výraz HEA (\d+).*$ HEA$1
název průřezu HEA 300 | DIN 1025-3:1994-03 | Ferona HEA300
název průřezu HEA 300 | Euronorm 53-62; ... | SZS HEA300
název průřezu HEA 300 | GB/T 11263-2017 | -- HEA300

Regulární výrazy pro rovnoramenné a nerovnoramenné L-profily nefungují současně.

Při použití podobných regulárních výrazů může dojít k tomu, že se z tabulky vždy načte pouze první výraz (příklad na obrázku). U nerovnoramenného L-profilu (červený) je nesprávně použit regulární výraz pro rovnoramenný L-profil (žlutý), protože je od začátku do konce vytvořen zcela stejně.

Aby bylo možné tyto výrazy od sebe odlišit, musí nesprávně použitý výraz začínat znakem ^ a končit znakem $.
Tím se stanoví, že regulární výraz bude použit pouze tehdy, když název profilu od začátku do konce přesně odpovídá tomuto vzoru. V následující tabulce je to znázorněno na příkladu:

Převod z Tekla do RFEM 6 Tekla RFEM 6
regulární výraz ^L(\d+)\*(\d+)$ L $1x$1x$2 | DIN EN 10056-1:1998-10 | --
název průřezu L40*4 L 40x40x4 | | DIN EN 10056-1:1998-10 | --
regulární výraz L(\d+)\*(\d+)\*(\d+) L $1x$2x$3 | EN 10056-1:2017 | ArcelorMittal (2018)
název průřezu L100*65*10 L 100x65x10 | EN 10056-1:2017 | ArcelorMittal (2018)

V RFEM jsou rovnoramenné a nerovnoramenné L-profily definovány ve názvu průřezu pomocí tří hodnot. Tekla používá pro rovnoramenné profily pouze dvě hodnoty v názvu průřezu. Jak mohu zohlednit oba případy současně?

Nejprve lze pro nerovnoramenné profily vytvořit regulární výraz se třemi hodnotami:

Převod z RFEM 6 do Tekla RFEM 6 Tekla
regulární výraz L (\d+)x(\d+)x(\d+).*$ L$1*$2*$3
název průřezu L 100x75x8 L100*75*8

Pro rovnoramenné profily je regulární výraz definován následovně:

Převod z RFEM 6 do Tekla RFEM 6 Tekla
regulární výraz L (\d+)x(\1)x(\d+).*$ L$1*$3
název průřezu L 100x100x8 L100*8

(\d+) zachytí první číslo.

(\1) ověří, zda je druhé číslo shodné s prvním. (Pokud ano, tento regulární výraz se použije)

(\d+) zachytí třetí číslo.

Jak se převádějí názvy průřezů s desetinnými čísly?

V RFEM existují řady průřezů, u nichž jsou rozměry průřezů v názvu průřezu uvedeny jako desetinné číslo (např. duté profily CHS). Pro následující příklad mají být pomocí jednoho výrazu převedeny tyto průřezy:

  • CHS 25x2 | EN 10219-2 | Condesa (názvy průřezů se dvěma celými čísly)
  • CHS 26.9x2 | EN 10219-2 | Condesa (názvy průřezů s desetinným a celým číslem)
  • CHS 32x2.9 | EN 10219-2 | Condesa (názvy průřezů s celým a desetinným číslem)
  • CHS 37.5x2.9 | EN 10219-2 | Condesa (názvy průřezů se dvěma desetinnými čísly)

Každé číslo tedy může volitelně obsahovat desetinnou tečku. Regulární výraz pro toto pravidlo se sestaví následovně:

CHS (\d*\.?\d*)x(\d*\.?\d*).*$

\d* zachytí žádné nebo jedno číslo.

\.? zachytí volitelně desetinnou tečku (tím jsou zohledněna i celá čísla bez desetinné tečky)

\d*zachytí žádné nebo jedno číslo za desetinnou tečkou.

.*$ označení normy v názvu se ignoruje.

Převod z RFEM 6 do Tekla RFEM 6 Tekla
regulární výraz CHS (\d*\.?\d*)x(\d*\.?\d*).*$ RO$1*$2
název průřezu CHS 25x2 | EN 10219-2 | Condesa RO25*2
název průřezu CHS 26.9x2 | EN 10219-2 | Condesa RO26.9*2
název průřezu CHS 32x2.9 | EN 10219-2 | Condesa RO32*2.9
název průřezu CHS 37.5x2.9 | EN 10219-2 | Condesa RO37.5*2.9

Proč se průřez KREIS_M1 500 nepřevádí?

U několika málo průřezů se označení pro převod kvůli webovým službám liší od zobrazeného označení v německém jazyce.
Převod pro KREIS_M1 500 musí být definován jako CIRCLE_M1 500.
Totéž platí i pro následující označení průřezů:

  • KREIS→CIRCLE
  • RRO→RHS
  • QRO→SHS
  • KHP→CHS
  • Kabel→Cable

Autor

Pan Sivolgin podporuje vývoj produktů v oblasti rozhraní.



;