1558x
005435
2024-02-27

Conversão incorreta de material ou secção transversal no Revit ou Tekla (regex)

Recebo uma conversão incorreta no Tekla/Revit ao utilizar expressões regulares na tabela de conversão.


Resposta:

Ao usar expressões regulares, é possível converter vários objetos – por exemplo, uma série completa de perfis IPE – com uma única entrada.

Exemplo

A conversão de, por exemplo, IPE120 no Tekla para IPE 120 | Euronorm 19-57; ... | SZS no RFEM 6 deve funcionar também para todas as outras secções transversais da série de perfis IPE.

Para criar uma conversão para toda a série de perfis IPE, a expressão regular é construída da seguinte forma:

Conversão de Tekla para RFEM 6 Tekla RFEM 6
expressão regular IPE(\d+) IPE $1 | Euronorm 19-57; ... | SZS
nome da secção transversal IPE120 IPE 120 | Euronorm 19-57; ... | SZS
nome da secção transversal IPE300 IPE 300 | Euronorm 19-57; ... | SZS

Para a expressão (\d+) pode ser inserido qualquer número inteiro (IPE200, IPE300,...).

Com a expressão $1 é feita referência ao número inserido. Na imagem seguinte, a expressão regular foi adicionada à tabela de conversão do Tekla.

Se forem usados dois números, a expressão $1 refere-se ao primeiro número e $2 ao segundo número. A tabela seguinte mostra isso com o exemplo de uma conversão de material.

Conversão de Tekla para RFEM 6 Tekla RFEM 6
expressão regular C(\d+)/(\d+) C$1/$2 | EN 1992-1-1:2004/A1:2014
nome do material C20/25 C20/25 | EN 1992-1-1:2004/A1:2014
nome do material C30/37 C30/37 | EN 1992-1-1:2004/A1:2014

A seguir, são apresentados e explicados possíveis problemas na definição de expressões regulares.

O nome de perfil 400*400 não é convertido com a expressão (\d+)*(\d+).

O asterisco * tem um significado especial em expressões regulares e, por isso, não é interpretado como um caractere simples. Para usar o asterisco como um caractere individual numa expressão regular, ele pode ser escrito com uma barra invertida \ para anular o seu significado especial.

Conversão de Tekla para RFEM 6 Tekla RFEM 6
expressão regular (\d+)\*(\d+) R_M1 $2/$1
nome da secção transversal 400*400 R_M1 400/400
nome da secção transversal 150*200 R_M1 150/200

O nome de perfil RHS200*100*5 não é convertido com a expressão RHS(\d+)\*(\d+)\*(\d+).

Se forem usadas várias expressões regulares semelhantes, pode acontecer que a expressão regular errada seja aplicada (exemplo na imagem).

Com um acento circunflexo ^ pode ser definido que uma expressão regular só é usada se corresponder ao início do nome do material ou da secção transversal. Assim, a expressão ^(\d+)\*(\d+) já não é válida para a secção RHS, pois o nome da secção RHS não começa com um número (como, por exemplo, 400x400).

Conversão de Tekla para RFEM 6 Tekla RFEM 6
expressão regular ^(\d+)\*(\d+) R_M1 $2/$1
nome da secção transversal 400*400 R_M1 400/400
nome da secção transversal 300*300 R_M1 300/300
expressão regular RHS(\d+)\*(\d+)\*(\d+) RRO $1x$2x$3 | EN 10219-2 | ALUKÖNIGSTAHL
nome da secção transversal RHS200*100*5 RRO 200x100x5 | EN 10219-2 | ALUKÖNIGSTAHL
nome da secção transversal RHS180*140*8 RRO 180x140x8 | EN 10219-2 | ALUKÖNIGSTAHL

Como posso converter um material/secção transversal do RFEM 6 independentemente da designação da norma.

Em comparação com o RFEM 6, o Revit e o Tekla atribuem os seus nomes de materiais e secções transversais independentemente das normas. Para que, por exemplo, uma secção HEA 300 no RFEM 6 proveniente de diferentes normas seja convertida num HEA 300 sem atribuição de norma no Revit ou no Tekla, pode ser ignorada a designação da norma no nome com a expressão regular .*$.

Conversão de RFEM 6 para Tekla RFEM 6 Tekla
expressão regular HEA (\d+).*$ HEA$1
nome da secção transversal HEA 300 | DIN 1025-3:1994-03 | Ferona HEA300
nome da secção transversal HEA 300 | Euronorm 53-62; ... | SZS HEA300
nome da secção transversal HEA 300 | GB/T 11263-2017 | -- HEA300

As expressões regulares para secções em L de lados iguais e de lados desiguais não funcionam simultaneamente.

Se forem usadas expressões regulares semelhantes, pode acontecer que apenas a primeira expressão da tabela seja lida (exemplo na imagem). Para a secção em L de lados desiguais (vermelho), é usada incorretamente a expressão regular da secção em L de lados iguais (amarelo), pois esta é construída exatamente igual do início ao fim.

Para distinguir tais expressões umas das outras, a expressão usada incorretamente deve começar com ^ e terminar com $. Com isso, define-se que a expressão regular só é usada se o nome do perfil corresponder exatamente a este padrão do início ao fim. A tabela seguinte mostra isso com o exemplo:

Conversão de Tekla para RFEM 6 Tekla RFEM 6
expressão regular ^L(\d+)\*(\d+)$ L $1x$1x$2 | DIN EN 10056-1:1998-10 | --
nome da secção transversal L40*4 L 40x40x4 | | DIN EN 10056-1:1998-10 | --
expressão regular L(\d+)\*(\d+)\*(\d+) L $1x$2x$3 | EN 10056-1:2017 | ArcelorMittal (2018)
nome da secção transversal L100*65*10 L 100x65x10 | EN 10056-1:2017 | ArcelorMittal (2018)

No RFEM, as secções em L de lados iguais e de lados desiguais são definidas com três valores no nome da secção transversal. O Tekla usa apenas dois valores para o nome da secção nos perfis de lados iguais. Como posso considerar ambos os casos simultaneamente?

Primeiro, pode ser criada uma expressão regular com três valores para os perfis de lados desiguais:

Conversão de RFEM 6 para Tekla RFEM 6 Tekla
expressão regular L (\d+)x(\d+)x(\d+).*$ L$1*$2*$3
nome da secção transversal L 100x75x8 L100*75*8

Para os perfis de lados iguais, a expressão regular é definida da seguinte forma:

Conversão de RFEM 6 para Tekla RFEM 6 Tekla
expressão regular L (\d+)x(\1)x(\d+).*$ L$1*$3
nome da secção transversal L 100x100x8 L100*8

(\d+) captura o primeiro número.

(\1) verifica se o segundo número é idêntico ao primeiro. (Se sim, esta expressão regular é usada)

(\d+) captura o terceiro número.

Como são convertidos nomes de secções transversais com números decimais?

No RFEM existem séries de secções transversais em que as dimensões das secções estão contidas como números decimais no nome da secção (por exemplo, secções ocas CHS). Para o exemplo seguinte, as secções seguintes devem ser convertidas com uma expressão:

  • CHS 25x2 | EN 10219-2 | Condesa (nomes de secção com dois números inteiros)
  • CHS 26.9x2 | EN 10219-2 | Condesa (nomes de secção com número decimal e número inteiro)
  • CHS 32x2.9 | EN 10219-2 | Condesa (nomes de secção com número inteiro e número decimal)
  • CHS 37.5x2.9 | EN 10219-2 | Condesa (nomes de secção com dois números decimais)

Assim, cada número pode opcionalmente ter uma casa decimal. A expressão regular para esta regra é construída da seguinte forma:

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

\d* captura nenhum ou um número.

\.? captura opcionalmente o ponto decimal (números inteiros sem ponto decimal são assim considerados)

\d* captura nenhum ou um número após o ponto decimal.

.*$ a designação da norma no nome é ignorada.

Conversão de RFEM 6 para Tekla RFEM 6 Tekla
expressão regular CHS (\d*\.?\d*)x(\d*\.?\d*).*$ RO$1*$2
nome da secção transversal CHS 25x2 | EN 10219-2 | Condesa RO25*2
nome da secção transversal CHS 26.9x2 | EN 10219-2 | Condesa RO26.9*2
nome da secção transversal CHS 32x2.9 | EN 10219-2 | Condesa RO32*2.9
nome da secção transversal CHS 37.5x2.9 | EN 10219-2 | Condesa RO37.5*2.9

Por que razão a secção transversal KREIS_M1 500 não é convertida?

Para poucas secções transversais, a designação para a conversão difere da designação apresentada em alemão devido aos serviços web. A conversão para KREIS_M1 500 deve ser definida como CIRCLE_M1 500. Isto aplica-se igualmente às seguintes designações de secções transversais:

  • KREIS→CIRCLE
  • RRO→RHS
  • QRO→SHS
  • Cabo→Cable

Autor

Paul desenvolve soluções de interfaces na Product Engineering e apoia adicionalmente no Customer Support. Nesse processo, ele mantém sempre em vista a integração contínua do sistema.



;