#0029: A primeira vez que tive contato com sistemas de classificação aplicado a projetos em BIM foi ainda em 2014, naquela época fomos cobaias na aplicação da ABNT 15.965 no projeto da CCDI, poderia ter dado muito errado, mas deu muito certo.
#0029: A primeira vez que tive contato com sistemas de classificação aplicado a projetos em BIM foi ainda em 2014, naquela época fomos cobaias na aplicação da ABNT 15.965 no projeto da CCDI, poderia ter dado muito errado, mas deu muito certo. | |||||||||||||||||||||||||
Senta que lá vem a história (1/7) | |||||||||||||||||||||||||
Recordando 2014 diria que foi um ótimo ano, estávamos desenvolvendo aquele que veio a ser um dos maiores cases de sucesso BIM em construtoras no Brasil (CCDI - reconhecido internacionalmente), participando de projetos relacionados a Rio 2016, quase morri na Sibéria e com isso Alive do Pearl Jam virou um hino de viagens posteriores, entre vários outros acontecimentos. | |||||||||||||||||||||||||
Lembro que ali por setembro ou outubro de 2014 já tínhamos construído a lógica de extração de dados dos modelos da CCDI, mas que para tudo aquilo funcionar e dar o start nas operações era necessário ter uma codificação unificada que seria utilizada por todos na empresa, seja do projetista até compras. | |||||||||||||||||||||||||
Eu já participava das discussões da ABNT e sabia que a Omniclass estava sendo traduzida, mas setor privado nunca vai esperar uma norma ficar pronta para poder finalizar um projeto, afinal, se tivéssemos esperado estaríamos até hoje esperando (talvez esperando até 2031 pelo andar da carruagem...). | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Enfim, eu lembro que em uma reunião lá na ABCP chegamos a explicar a lógica de extração de dados com mais detalhes e em algumas idas e vindas entre utilizar a própria Omniclass e utilizar a ABNT decidimos que toparíamos ser as cobaias no país para testar a 15.965 (aqui foi puramente cobaia mesmo, não tem essa de pioneirismo não). | |||||||||||||||||||||||||
A gente achava que o problema tinha sido solucionado quando recebemos as tabelas de classificação para terminar de fazer as diretrizes de modelagem, mas foi somente quando fomos aplicar na prática que entendemos que o buraco era infinitamente mais embaixo do que havíamos calculado. | |||||||||||||||||||||||||
Foram longos seis meses de estudo e milhões e milhões de dados extraídos dos modelos pilotos da CCDI para conseguir chegar em um consenso dentro do projeto e posteriormente na empresa. | |||||||||||||||||||||||||
Qual a razão disso? Bem, todas as outras classificações em que havíamos trabalhado anteriormente eram classificações hierárquicas e não facetadas e até entender como, na época, quinze tabelas poderiam se misturar para criar os códigos a coisa já tinha evoluído para uma simplificação do projeto com a utilização de somente uma tabela por objeto. | |||||||||||||||||||||||||
Se você teve que ler duas ou três vezes o último parágrafo para entender o que eu quis dizer, saiba que para escrever isso de maneira fluída tivemos que nos inspirar no Edmund Hillary (Alô Google). | |||||||||||||||||||||||||
Olhando para trás, com certeza a lógica desenvolvida na CCDI era muito foda e muito à frente do seu tempo, tanto que nunca conseguiram replicar aquilo, mas tendo o conhecimento de hoje... | |||||||||||||||||||||||||
Vamos ver então como funciona uma interoperabilidade de classificação. | |||||||||||||||||||||||||
Facetado vs Hierárquico (2/7) | |||||||||||||||||||||||||
Antes de cair nos IFCs da vida, um ponto muito, mas muito importante em classificações é entender se o sistema foi criado para ser hierárquico ou facetado. | |||||||||||||||||||||||||
O exemplo hierárquico mais famoso que temos no país para construção civil talvez seja o SINAPI, basicamente tem lá umas 300 mil linhas de opções e você pega aquela que melhor vai representar o que você quer em termos de custos. | |||||||||||||||||||||||||
Para aplicação manual de gesso desempenado (sem taliscas) em paredes de ambientes o que determina a diferença de valores é a espessura e a metragem quadrada de aplicação do material no ambiente, para isso temos vários códigos como o 87417 (0,5cm e > 10m² de ambiente), o 87418 (0,5cm e entre 5m² e 10m² de ambiente) e o 87419 (0,5cm e menor que 5m²), mas a composição basicamente é sempre a mesma: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Logo, sempre teríamos uma árvore de elementos, uma estrutura que lembraria muito as aulas de biologia: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Se eu tiver que incluir qualquer informação na composição vou ter que criar um código através de uma linha e repetir esta informação em cada um dos códigos 87417, 87418 e 87419, não queria ser o administrador do SINAPI se a composição de aplicação manual de gesso tiver que ser atualizada algum dia acrescentando algum item. | |||||||||||||||||||||||||
Para o usuário final com certeza é mais fácil de entender indo em uma linha hierárquica, it is what is e acabou, mas como funciona isso no modelo facetado? | |||||||||||||||||||||||||
Bom... aí a brincadeira vira uma programação orientada a objeto, pode ser e não ser simples de entender se você já teve contato com programação, mas acho mais fácil explicar isso já explicando como usar uma classificação com o IFC. | |||||||||||||||||||||||||
IfcProjectLibrary (3/7) | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Segundo a definição da BuildingSMART o IfcProjectLibrary pode ser definido em: | |||||||||||||||||||||||||
O IfcprojectLibrary coleta todos os elementos da biblioteca incluídos em um conjunto de dados de projeto referenciado. Exemplos de bibliotecas de projetos incluem: - bibliotecas de tipos (também chamadas de bibliotecas de estilos ou família): uma coleção de subtipos de IfcType Object; - bibliotecas de definição de propriedade: uma coleção de IfcPropertySetTemplate ou IfcPropertyTemplates | |||||||||||||||||||||||||
Alguma coisa falando de classificação? Nope, mas então por que estamos falando dele? Porque quando vamos até o Classification Association lá tem uma nota que nos dá a possibilidade de incluir no IFC uma classificação através do IfcProjectLibrary, a saber: | |||||||||||||||||||||||||
NOTA O sistema de classificação ou dicionário usado no próprio projeto também pode ser indicado no nível de IfcProject ou IfcProjectLibrary como uma fonte externa ou copiado com todos os itens de classificação relevantes nos dados do projeto. Use o conceito Informações de classificação do projeto para utilizar esta funcionalidade. | |||||||||||||||||||||||||
Sendo assim, se quisesse transformar aqueles códigos do SINAPI para IFC poderia fazer o seguinte: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Uma frase importante contida na definição do IfcProjectLibrary me fez usar o IfcRelDeclares: | |||||||||||||||||||||||||
“Instances of IfcProjectLibrary are assigned to the project context using the IfcRelDeclares relationship and accessible through the inverse attribute HasContext. | |||||||||||||||||||||||||
Dito isto, com o código acima estamos criando uma biblioteca chamada SINAPI e relacionando ela com o projeto, a partir daí que começa a inserção do sistema de classificação no IFC. | |||||||||||||||||||||||||
IfcClassification (4/7) | |||||||||||||||||||||||||
A definição de IfcClassification é a seguinte, preste bastante atenção a última frase: | |||||||||||||||||||||||||
Uma IfcClassification é usada para a organização de objetos em uma classe ou categoria de acordo com um propósito comum ou sua posse de características comuns. Uma classificação no sentido de IfcClassification é taxonomia, ou esquema taxonômico, organizado em uma estrutura hierárquica. Uma categoria de objetos se relaciona a outras categorias em uma relação generalização-especialização. Portanto, os itens de classificação em uma classificação são organizados em uma estrutura de árvore. | |||||||||||||||||||||||||
Essa parte da organização da classificação ser feita em um esquema de árvore particularmente me surpreendeu, acreditava que poderíamos fazer algo mais livre o que no final do dia, para a construção da classificação, ela vai seguir a linha estrutural que já estamos acostumados, mas isto não quer dizer que o formato de uso será hierárquico também, da para usar um esquema facetado tranquilamente. | |||||||||||||||||||||||||
O código acaba ficando assim: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Usamos o IfcRelAssociatesClassification para criar o relacionamento entre a base de dados do SINAPI (ainda sem codificação nem nada.. só o título mesmo) e o IfcProjectLibrary que declara o SINAPI ao projeto. A partir daí da pra vomitar toda a estrutura da classificação do SINAPI no IFC. | |||||||||||||||||||||||||
IfcClassificationReference (5/7) | |||||||||||||||||||||||||
Um IfcClassificationReference é quem hospeda as informações da classificação em si, ou seja, todos os códigos e descrições do SINAPI ou da OMNICLASS / ABNT são registrados nele. Por ser uma descrição hierárquica o código é bem chato de fazer, vejam só: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Quando comecei a estudar essa parte da classificação acreditava que seria mais simples transpor um sistema como o SINAPI para o IFC, pois ao invés de criar mil linhas de 3315 - Gesso em pó para revestimentos/molduras/sancas e uso geral eu poderia declarar somente uma vez essa informação 3315 e associá-la aos itens 87417, 87418 e 87419 de uma vez só através de um conjunto. | |||||||||||||||||||||||||
Não sendo assim que a banda toca, como ficaria um sistema facetado como a Omniclass (base para ABNT 15965)? Exemplo abaixo by Dion Moult: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Para fins didáticos, eu acabei utilizando a ABNT no exemplo do próximo capítulo. | |||||||||||||||||||||||||
Facetando dados (6/7) | |||||||||||||||||||||||||
Imagine que você já tem os códigos de classificação que você quer usar dentro do IFC, o que dá para fazer? Bom, basicamente você vai precisar começar a associar estes dados aos objetos, recursos etc. | |||||||||||||||||||||||||
A brincadeira da classificação facetada da ABNT começa agora porque em uma linha de classificação como o SINAPI eu preciso já ter o código de composição pronto para fazer a associação ao objeto, custos e planejamento, ou seja, vai ser o código abaixo e é isso aí: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Na ABNT não é bem assim, uma vez que temos uma tabela de serviço, outra de materiais, outra de produtos, outra de recursos e assim por diante. Se eu quiser dizer com a ABNT que eu preciso fazer a execução do gesso na obra preciso pegar o código de execução na tabela de serviço (1S) e o código do gesso na tabela de recursos (3R), fica assim: | |||||||||||||||||||||||||
1S.60.10.00.3R.06.16.43 (1S.60.10.00 Execução + 3R.06.16.43 Revestimento em Gesso) | |||||||||||||||||||||||||
Pronto, temos a composição de Execução de Revestimento em Gesso do nosso exemplo, mas e se eu quiser executar um deck de madeira? Ou uma escada de madeira? Vamos lá: | |||||||||||||||||||||||||
1S.60.10.00.3R.06.15.33 (1S.60.10.00 Execução + 3R.06.15.33 Revestimento em Tabua de Madeira) | |||||||||||||||||||||||||
1S.60.10.00.3R.06.43.13 (1S.60.10.00 Execução + 3R.06.43.13 Escada de Madeira) | |||||||||||||||||||||||||
Entenderam? Eu não preciso criar uma linha de execução de serviço para cada composição, eu posso simplesmente compor as coisas facetando dados. No IFC ficaria assim: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Agora o que é preciso fazer é associar esta classificação ao objeto: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Agora temos uma parede que pode receber um serviço de execução de revestimento em gesso. Alguém pode levantar a lebre que seria melhor criar um IfcClassificationReference juntando os dois códigos: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Eu consigo imaginar um sistema que consiga fazer essa leitura e identificação das coisas somente pela associação sem precisar juntar os códigos, mas são opções, até onde pesquisei não vi nenhuma restrição para fazer as coisas com base na primeira proposição. | |||||||||||||||||||||||||
O que imaginei foi o seguinte: | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
O que estamos fazendo nos códigos acima? Criamos um IfcCostItem com o valor de 29080 e associamos os códigos 1S.60.10.00 Execução e 3R.06.16.43 Revestimento em Gesso a ele, mas também criamos um IfcCostItem com o valor de 30000 associando os códigos 1S.60.10.00 Execução e 3R.06.15.33 Revestimento em Tabua de Madeira. | |||||||||||||||||||||||||
Basicamente, via um sistema inteligente, seria possível então criar uma lógica em que eu associo o IfcCostItem que corresponda a classificação que também foi dada ao objeto IfcWall, se foi a combinação do 1S.60.10.00 Execução + 3R.06.16.43 Revestimento em Gesso associa-se o IfcCostItem de 29080, caso contrário utiliza-se o IfcCostItem de 30000. | |||||||||||||||||||||||||
Foi exatamente o que fizemos na CCDI, só que utilizando XML/SQL e combinando mil códigos após a extração de dados dos modelos para gerar milhares de ordem de serviço automaticamente. | |||||||||||||||||||||||||
Aprendizado (7/7) | |||||||||||||||||||||||||
Cada dia e semana vamos evoluindo o entendimento das possibilidades e como temos muita memória de projetos já feitos no passado estou em uma vibe de imaginar o que poderia ter sido diferente aplicando tal profundidade. | |||||||||||||||||||||||||
Particularmente tem sido uma experiência prazerosa imaginar alguns cenários e formas de trabalho que possam auxiliar o mercado e principalmente os clientes que já estamos trabalhando hoje em dia. | |||||||||||||||||||||||||
As vezes podemos estar dando um mergulho muito fundo em algumas coisas, mas se tiverem dúvidas, questionamentos e mesmo correções de entendimentos estamos por aqui para conversar, afinal, longe de mim ser o dono da verdade. | |||||||||||||||||||||||||
Se você tem gostado do conteúdo curta, compartilhe e se inscreva no canal da AEC Experience na Pingback 😊 | |||||||||||||||||||||||||
Seguir meu Canal | |||||||||||||||||||||||||
Obrigado, | |||||||||||||||||||||||||
Abs. | |||||||||||||||||||||||||
Tiago Ricotta | |||||||||||||||||||||||||
Publicado em 03 de Novembro de 2021 às 17:45 |