#0028: Graças a BuidingSMART já existia um exemplo a ser estudado para entender como utilizar o schema para realizar a interoperabilidade de planejamento, o resultado é muito legal, apesar de algumas pequenas alterações no caminho.
#0028: Graças a BuidingSMART já existia um exemplo a ser estudado para entender como utilizar o schema para realizar a interoperabilidade de planejamento, o resultado é muito legal, apesar de algumas pequenas alterações no caminho. | ||||||||||||||||||||||||||
Good example, Bad example (1/7) | ||||||||||||||||||||||||||
Dando sequência a esta série técnica sobre interoperabilidade utilizando IFC para várias coisas, nesta última semana me debrucei para entender como seria a relação das coisas para planejamento, ou simplificando bem mesmo seria para cronograma, afinal, como diria um grande amigo, não é porque você fez um cronograma que você tem um planejamento. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
A primeira vista parecia muito mais fácil de entender as coisas uma vez que a própria BuildingSMART tinha um exemplo de como utilizar o schema para tal feito, você pode acessar este exemplo aqui, mas o que seria uma simples lida se tornou uma dor de cabeça sem tamanho porque a gente não acredita muito que um exemplo no site oficial poderia ter inconsistências... mas tinha e veremos mais para frente quais eram os pontos de atenção. | ||||||||||||||||||||||||||
Eu diria que o IFC é muito mais eficiente em fazer a interoperabilidade entre softwares de cronograma do que os malditos .CSV disponíveis atualmente como solução para isto, quem nunca teve retrabalho importando/exportando um cronograma do Primavera/MS Project entre as diversas soluções de 4D do mercado? | ||||||||||||||||||||||||||
O que eu acho mais produtivo desta história é poder viabilizar uma exportação de cronograma entre um Navisworks & Vico ou um Synchro & Fuzor ou tudo com tudo, é um cenário que muitas e muitas empresas tem problemas quando uma gerenciadora / construtora faz um cronograma de obra e precisa compartilhar com o time de projeto / obra. | ||||||||||||||||||||||||||
Outro fluxo que acho bem contraproducente, mas já superprodutivo perto do jeito que é feito um planejamento de obra sem BIM, é a utilização do ERP mais famoso do mundo como ponte entre as diversas soluções - estou falando do Excel. | ||||||||||||||||||||||||||
Enfim, são vários os cenários que se pode aplicar esta brincadeira, mas para brincar precisamos entender as regras, vamos a elas. | ||||||||||||||||||||||||||
IfcProject (2/7) | ||||||||||||||||||||||||||
Nas aulas de pós-graduação ou cursos livres da vida sempre gosto de provocar os alunos com a pergunta “o que é um projeto?”. | ||||||||||||||||||||||||||
Isto tem muito a ver com a formação de arquiteto e engenheiro que passam anos na faculdade e depois no mercado fazendo projetos, mas não sabem definir o que de fato é um projeto, vamos lá: | ||||||||||||||||||||||||||
“um projeto é um conjunto de atividades temporárias, realizadas em grupo, destinadas a produzir um produto, serviço ou resultado únicos” | ||||||||||||||||||||||||||
O que isso tem a ver com o tema? Bom, não tem muito a ver, mas gosto de trazer essa definição. Dito isto, a primeira coisa que temos que fazer para incluir um cronograma no IFC é uma relação entre a mãe de todas as tarefas do projeto (a famosa primeira linha do cronograma) com o projeto em si. | ||||||||||||||||||||||||||
A BuildingSMART diz “A top-level task is declared within the IfcProject using the IfcRelDeclares relationship.” Sendo assim, pelo exemplo da BuildingSMART, temos o seguinte código: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
O que está sendo feito nestas linhas? Basicamente o exemplo está criando um relacionamento entre a tarefa mãe do projeto (#598) e o projeto (#200) através do #599 e criando outro relacionamento entre a tarefa mãe (#598) e o pavimento térreo (#265) através do #611. | ||||||||||||||||||||||||||
IfcTask (3/7) | ||||||||||||||||||||||||||
Quem já fez um cronograma no MS Project, GanttProject ou Primavera não vai ter muita dificuldade de entender alguns jargões que acabam aparecendo também no IFC. | ||||||||||||||||||||||||||
No final do dia, o IfcTask vai acabar trabalhando como as linhas de tarefas dos softwares de cronograma da vida e dá para ir bem fundo no detalhamento do planejamento criando procedimentos, eventos, tarefas recorrentes etc., mas aqui vamos nos ater ao simples fato de querer bater um radier e subir quatro paredes como no exemplo dado pela BuildingSMART. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Sendo assim, a partir do momento em que se criou o relacionamento “declarando” o cronograma ao projeto é preciso criar as tarefas em si e aí que a coisa fica bem legal. 😊 | ||||||||||||||||||||||||||
A princípio, até pelas informações contidas depois no IfcTaskTime, a coisa caminha para uma estrutura de tarefas em um esquema waterfall (cascatinha hierárquica engenheiristica padrão), mas a beleza do negócio é que por ser um schema orientado a objeto é possível pensar em um planejamento por fluxo para encaixar em metodologia mais flexíveis como Lean & Agile. | ||||||||||||||||||||||||||
O como fazer isto ainda há de ser pensado para bater na pedra desta possibilidade, mas eu consigo replicar na minha cabeça um backlog de projeto, mas talvez faltem algumas informações. A mesma coisa se pensarmos em look ahead, linha de balanço e afins... mas tenho a pessoa certa para discutir este tema e trazer esta visão futuramente. | ||||||||||||||||||||||||||
Eu acho importante esta flexibilidade porque os métodos de planejamento vêm mudando muito nos últimos tempos, na indústria tech waterfall não faz sentido há anos e eu tive algumas experiências muito fortes com Agile no último ano com resultados bem legais, então vale a pena pesquisar sobre. | ||||||||||||||||||||||||||
Enfim, voltando a vaca fria do IFC, segue como ficam as tarefas do cronograma: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Basicamente o que estamos fazendo aqui é criando as tarefas e os relacionamentos entre estas tarefas e os elementos do modelo. Um ponto importantíssimo no exercício é a linha #639 e o relacionado IfcRelNests #645, mas falemos disso no próximo capítulo. | ||||||||||||||||||||||||||
IfcTaskTime (4/7) | ||||||||||||||||||||||||||
Perceberam que o IfcTask praticamente não tem nenhuma informação de duração, início, final das coisas? Pois é, quem concentra essa informação é o IfcTaskTime. | ||||||||||||||||||||||||||
No IfcTaskTime a coisa fica bem interessante, vou reduzir as informações para não complicar muito, mas no geral o IfcTaskTime possui 20 campos de informações com possibilidade de cálculo de folgas perante o caminho crítico e afins: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Diante disso e sabendo quais os campos importantes para o exemplo da BuildingSMART, chamo atenção aqui para uma inconsistência do exemplo: os campos utilizados para as datas de início e final são os campos calculados o Early Start (8) e Early finish (9) calculados com base no caminho crítico do cronograma. | ||||||||||||||||||||||||||
Para mim não faz o menor sentido e construindo o cronograma no BlenderBIM tão pouco é possível fazer a lógica de sequenciamento construtivo proposto no exemplo. | ||||||||||||||||||||||||||
Desta forma, o que fiz foi alterar o IFC do exemplo alterando as datas que estavam no Early Start (8) e Early Finish (9) para os campos de Início Planejado (6) e Final Planejado (7), aí a coisa funcionou, olhem como ficou no BlenderBIM: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Alterei também as datas para algo mais perto de hoje em dia. O código alterado esta aqui: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
A partir disso a lista de tarefas esta criada e a as informações de duração destas tarefas também esta feito, o que falta fazer é definir uma sequência lógica de construção. | ||||||||||||||||||||||||||
IfcRelSequence (5/7) | ||||||||||||||||||||||||||
A primeira coisa que me chamou muita a atenção no exemplo da BuildingSMART foi a própria definição que o IfcRelSequence acaba trazendo em seu uso, a saber: IfcRelSequence is defined as one-to-one relationship; therefore it assigns one predecessor to one successor, ou seja, o IfcRelSequence é uma classe de relação um para um, você tem que definir um predecessor e um sucessor. | ||||||||||||||||||||||||||
Nos vários cronogramas que já fiz na vida é muito comum ter uma relação de um-para-muitos, no qual temos um predecessor para vários sucessores, particularmente não entendi por que não criar um relacionamento que agrupa vários elementos de uma vez, fico curioso para entender o porquê. | ||||||||||||||||||||||||||
Não contente com essa situação, aqui novamente me forcei a alterar o exemplo da BuildingSMART, pois acho muito burro você ter que criar um IfcRelSequence para cada elemento que é executado depois do radier, olha como é o código original: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Isto porque são só quatro paredes que estão sendo executadas depois do radier, imagina se tenho um prédio completo depois disso, não faz o menor sentido. | ||||||||||||||||||||||||||
Sendo assim, o que fiz no sequenciamento construtivo foi apontar diretamente para a mãe das paredes, lembram do ponto importantíssimo no item 3/7 do IfcTask? a linha #639 e o relacionado IfcRelNests #645? Então: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Acabou? Nope, ainda falta a definição das jornadas de trabalho. | ||||||||||||||||||||||||||
IfcWorkPlan/Calendar/Schedule (6/7) | ||||||||||||||||||||||||||
Uma coisa legal no IFC é que é possível definir quais os horários de trabalho, quando tem feriado, turnos e afins. | ||||||||||||||||||||||||||
Essa é a função do IfcWorkPlan (plano de trabalho, se é uma baseline, planejado, realizado, etc), IfcWorkCalendar (calendário com feriados e etc) e IfcWorkSchedule (turnos de trabalho). | ||||||||||||||||||||||||||
O exemplo termina com este código: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Uma jornada e tanto para fazer um radier e quatro paredes, mas é isto. | ||||||||||||||||||||||||||
Aprendizado (7/7) | ||||||||||||||||||||||||||
Toda a brincadeira que comentamos neste artigo esta escrita no esquema abaixo, caso não consiga acessar ou esteja muito pequeno é só clicar aqui e ver a imagem em alta resolução. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Óbvio que muito do que estou falando aqui só é possível não parecer grego por conta dos ensinamos do curso de IFC do Carlos Dias, não me preocupo muito em explicar algumas coisas porque quero justamente atiçar sua curiosidade para ir fazer o curso dele e entender mais as entranhas desse universo. | ||||||||||||||||||||||||||
Não pense que estas explicações são fluídas, tem algumas horas de estudo para entender bem e não escrever besteira (o que tenho certeza que acaba saindo no processo haha). | ||||||||||||||||||||||||||
Tem muita coisa para explorar e várias ideias na cabeça, se você gostou deste conteúdo se inscreva no canal e compartilhe com seus pares, assim fortalecemos a comunidade aqui da AEC Experience 😊 | ||||||||||||||||||||||||||
Compartilhar conteúdo | ||||||||||||||||||||||||||
Seguir meu Canal | ||||||||||||||||||||||||||
Obrigado, | ||||||||||||||||||||||||||
Abs. | ||||||||||||||||||||||||||
Tiago Ricotta | ||||||||||||||||||||||||||
Publicado em 27 de Outubro de 2021 às 19:02 |