Codificação usando entidades IFC

Da wiki WIQI GEQUALTEC
Revisão em 15h24min de 23 de outubro de 2013 por Sérgio Pinho (discussão | contribs)
Ir para: navegação, pesquisa

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).



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

Estrutura tipo de um ficheiro STEP [3]

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

Organização de uma entidade [3]


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. 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: 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 passo-a-passo para a construção do "Ficheiro IFC demonstrativo".

Simbologia Usada

HEADER

DATA – Dados do utilizador e da aplicação

DATA – Pontos cartesianos e direcções

DATA – Unidades

DATA – Projecto

DATA – Representação Geométrica

DATA – Elementos Estruturais

DATA – Elementos Arquitectónicos

DATA – Materiais e Propriedades

DATA – Modelo de Análise Estrutural

DATA – Cargas Estruturais


Keywords

BIM, IFC, Interoperability, Information management, Structures.

Referências Bibliográficas

  1. Gunter, C.A. Semantics of programming languages: structures and techniques: London (1992).
  2. 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. 3,0 3,1 Nour, M. Construction Product Data and Building Information Models: VDM Publishing. (2008).
  4. 4,0 4,1 ISO. ISO 10303-21:2002. In Part 21: Implementation methods: Clear text encodind of the exchange structure. (2002).
  5. S. Pinho, “O Modelo IFC como agente de interoperabilidade: Aplicação ao domínio das estruturas,” Universidade do Porto - Faculdade de Engenharia, 2013.

Ligações internas

Ligações externas