Codificação usando entidades IFC

Da wiki WIQI GEQUALTEC
Revisão em 20h53min de 30 de setembro 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].


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.png [3]


Exemplos Práticos

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


(under construction)


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.