Codificação usando entidades IFC
O recurso à codificação usando Industry Foundation Classes (IFC) poderá constituir um importante meio para a melhoria das condições de interoperabilidade, permitindo também a automação de sistemas entre outras aplicações. O formato IFC usa um arquivo de texto simples, já que este formato é o único formato de dados digital verdadeiramente universal, dando origem a ficheiros com a extensão “*.txt”, “*.ifc” ou “*.ifcXML”
Quando se trabalha directamente com o esquema EXPRESS numa ferramenta de edição de texto, é inevitável falar-se em entidades (ou classes), pois no domínio IFC são as entidades que definem os comandos e acções capazes de criar informação que capta e descreve a indústria AEC/FM (Architecture, Engineering and Construction /Facility Management).
Índice
Descrição Semântica de IFC
Enquanto linguagem, o IFC usa um conjunto de expressões formadas de acordo com um conjunto de regras, o que define a gramática. Conhecendo-se os requisitos gramaticais, o conjunto de regras é inesgotável, permitindo que a partir do conceito teórico uma linguagem tenha a sua própria composição e definição estrutural pelo arranjo dos seus componentes, formando uma sequência de informação inteligível. No domínio da linguagem de programação, a descrição de como a linguagem é composta e quais são os seus constituintes é definida pela sua sintaxe e semântica, isto é, pelas regras de construção de frases e seu significado, que devem ser especificadas com precisão. A sintaxe é vista como uma compilação livre de contexto, sendo a semântica incumbida de optimizar o código e fazer a verificação dos tipos. A semântica de uma linguagem de programação e o seu mapeamento é compilada pelo Homem, criando o que se designa muitas vezes por linguagem de código (ou apenas código), cuja finalidade é a execução computacional, com especial vocação para a repetição e sistematização de acções [1].
No caso da linguagem utilizada pelo padrão IFC, o desenvolvimento e manutenção fica a cargo do “Model Support Group” (MSG), grupo implementado pela BuildingSMART. Para que uma linguagem permita a comunicação entre o emissor e o receptor, ambos devem comunicar da mesma forma, na medida em que o receptor seja capaz de reproduzir com exactidão as informações que lhe foram emitidas. Aplicando estes conceitos ao caso de estudo em causa, poder-se-á dizer que quando o emissor e o receptor não comunicam na mesma linguagem, o IFC funciona como tradutor, permitindo um entendimento entre a fonte e o destino. Esta é a finalidade que fomenta o IFC, a possibilidade de troca de informação por meio de uma linguagem comum [2].
Estrutura Interna de um Ficheiro IFC
Na codificação de um ficheiro IFC em formato de texto, a primeira linha e última linha de todos os arquivos IFC devem identificar a norma ISO 10303 cujo objectivo é estabelecer procedimentos e linguagem padrão para representação, interpretação e troca de informação, sendo que a primeira linha deve conter a referência “ISO-10303-21” e a última a referência “END-ISO-10303-21”. Esta referência evidência o formato de um arquivo STEP definido segundo a ISO 10303-21:2002, onde o formato de troca de dados STEP mais utilizado é o STEP-File, que devido à sua estrutura ASCII é fácil de ler com tipicamente uma instância por linha. Denote-se ainda que a ISO 10303-21 define o mecanismo de codificação na forma de representar os dados de acordo com um determinado esquema EXPRESS, padrão de linguagem para modelação de dados, baseando-se no EXPRESS mas constituindo uma variante [4].
O corpo de um arquivo que segue esta norma é dividido em duas secções, a secção “HEADER” e a secção “DATA”. Para se dar como concluída cada uma destas secções é usada uma string com o comando “ENDSEC;”.
HEADER
A secção HEADER tem uma estrutura fixa, podendo ser constituída por 6 grupos, sendo que todas as estruturas de troca devem conter os grupos “FILE_DESCRIPTION”, “FILE_NAME”, “FILE_SCHEMA” e devem aparecer na ordem pela qual serão abaixo descritos. Instâncias dos grupos “FILE_POPULATION”, “SECTION_LANGUAGE” e “SECTION_CONTEXT” podem aparecer depois do “FILE_SCHEMA” apenas em arquivos de segunda edição. Nesta secção todos os campos podem incluir strings vazias, excepto o grupo “FILE_SCHEMA” e os dados no campo “time_stamp” que está incluído no grupo "FILE_NAME” [4].
FILE_DESCRIPTION - atribui informação acerca da definição de visualização base e também o nível de implementação, que identifica a especificação com a qual a codificação na estrutura de troca conforma (correntemente “2,1” para todos os ficheiros IFC, para mais informações recomenda-se a consulta da ISO 10303-21).
FILE_NAME - regista o nome do ficheiro IFC (podendo corresponder ao nome do arquivo num sistema de arquivos ou retractar os dados nesse arquivo), a data de criação do ficheiro (o tempo é definido no formato internacional segundo a ISO 8601), o nome do autor e organização a que pertence, a aplicação na qual o ficheiro foi criado e autorização (nome e endereço da pessoa que autorizou o arquivo).
FILE_SCHEMA – Especifica um esquema EXPRESS ou vários no caso de arquivos de segunda edição. Um esquema é um modelo de dados legível por um sistema informático, que descreve conjuntos de tipos de dados e suas relações.
FILE_POPULATION – Indica uma população válida (conjunto de instâncias de entidade) em conformidade com o esquema EXPRESS. Isto é feito através de recolha de dados a partir de várias secções de dados.
SECTION_LANGUAGE – Identifica a linguagem predefinida para os valores das strings na secção dos dados. O nome da linguagem deve aparecer codificado segundo a norma ISO 639, no campo de atributo default_language. Isto é necessário para os esquemas EXPRESS que não possuem a capacidade de especificar em que língua estão definidas as entidades e os seus atributos.
SECTION_CONTEXT – Identifica informações que descrevem os contextos nos quais são aplicáveis as instâncias codificadas na estrutura de troca.
DATA
A secção DATA contém dados de aplicativos de acordo com um esquema EXPRESS específico, é nesta secção que as entidades são atribuídas ao ficheiro IFC. A sequência pela qual as entidades aparecem descriminadas na construção de um dado texto em código não corresponde obrigatoriamente à ordem pela qual serão identificadas pelo programa destino, isto significa que, em duas linhas de código consecutivas, a segunda string não tem necessariamente que depender ou ter alguma relação com a primeira. O IFC é um sistema de digitação solto que fornece múltiplos caminhos para introdução de objectos e não segue uma orientação específica, permitindo a criação de vários encadeamentos lógicos, dando assim grande flexibilidade e suporte a múltiplas representações
Definição de Entidade
Entidade (ou classe) define um conjunto de informação definida por atributos e restrições. Uma entidade tem uma estrutura bastante própria. É reconhecida no ficheiro IFC pelo seu identificador único que deve ser um número inteiro positivo (> 0), na forma “#número”. A finalidade e função dessa entidade é identificada pelo seu nome, que é representado por letras maiúsculas no código IFC. Repare-se que o nome dessa entidade é apenas válido dentro desse ficheiro IFC, pois se o conteúdo deste for exportado para um novo sistema, mesmo que não se efectuem quaisquer alterações, ao voltar-se a exportar o ficheiro para o IFC a partir desse sistema, verifica-se que o código do ficheiro é alterado, ou seja, há uma alteração e modificação das entidades para as mesmas instâncias. O nome da instância é usado também para referenciar outras entidades através de valores atribuídos ou membros agregados (atributo inverso), sendo que a instância referenciada poderá ser definida antes ou depois da instância onde é referida. Por fim as definições de atributos atribuem características à entidade IFC em causa. Os valores e definições desses atributos variam de entidade para entidade, pois definem parâmetros próprios para cada uma das diferentes entidades. Como já foi referido, esses parâmetros são definidos a priori pelo MSG (Model Support Group). Uma lista completa das entidades existentes, com links individuais que fazem a respectiva ligação à página que especifica a função, construção e relações de cada entidade pode ser encontrada em: buildingSMART Entities
Exemplo Prático
O modelo proposto para modelação a partir da linguagem de código do IFC é um modelo que constitui na sua essência, informação de definição analítica de pilares, vigas e lajes estruturais e informação de definição geométrica de sapatas, pilares, vigas e lajes. Para além disso contempla também informação mecânica referente à definição de algumas propriedades físicas dos materiais e casos de aplicação de diversos tipos de cargas à estrutura modelada.
A estrutura porticada que se apresenta serve apenas de exemplo genérico para demontração prática da aplicação de algumas entidades da especificação IFC. Por uma questão de compatibilidade, para visualização do "Ficheiro IFC demonstrativo - Modelo Arquitectónico" deve ser usado o visualizador Solibri Model Viewer, enquanto que para visualização do "Ficheiro IFC demonstrativo - Modelo Estrutural" recomenda-se a utilização do Constructivity Model Viewer. A informação contida nos seguintes links internos deve ser copiada para um ficheiro ".txt", alterando-se posteriormente a sua extensão para ".ifc".
Ficheiro IFC demonstrativo - Modelo Arquitectónico
Ficheiro IFC demonstrativo - Modelo Estrutural
Nota: Para melhor identificação dos principais tipos de atributos das entidades (com fins puramente educacionais), o guia abaixo apresentado segue um código de cores. As entidades com um maior avanço na linha são entidades que têm como atributo inverso uma outra entidade que está mais recuada, este princípio serve apenas para melhor demonstrar o encadeamento entre as classes num grupo. Os atributos marcados a sublinhado são atributos cuja atribuição é opcional, poderão ou não ser definidos (um atributo opcional é representado por um “$”, valor indefinido). Os conteúdos apresentados são reforçados com base em exemplo práticos. Para informações mais especificas deve ser consultada a seguinte referência bibliográfica: [5].
Guia para a construção do "Ficheiro IFC demonstrativo"
DATA – Dados do utilizador e da aplicação
DATA – Pontos cartesianos e direcções
DATA – Localização do Projecto
DATA – Representação Geométrica
DATA – Elementos Arquitectónicos
DATA – Materiais e Propriedades
DATA – Modelo de Análise Estrutural
Keywords
BIM, IFC, Interoperability, Information management, Structures.
Referências Bibliográficas
- ↑ Gunter, C.A. Semantics of programming languages: structures and techniques: London (1992).
- ↑ Pazlar, Tomaz, and Ziga Turk. "Interoperability in practice: Geometric data exchange using the IFC standard." Electronic Journal of Information Technology in Construction no. 13:362-380. (2008).
- ↑ 3,0 3,1 Nour, M. Construction Product Data and Building Information Models: VDM Publishing. (2008).
- ↑ 4,0 4,1 ISO. ISO 10303-21:2002. In Part 21: Implementation methods: Clear text encodind of the exchange structure. (2002).
- ↑ 5,0 5,1 S. Pinho, “O Modelo IFC como agente de interoperabilidade: Aplicação ao domínio das estruturas,” Universidade do Porto - Faculdade de Engenharia, 2013.