Ifd:IFD for Innovative Sustainable Housing

By Håvard.Bell and Lars Bjørkhaug - SINTEF building and infrastructure.

Introduction
The IFD Library is an international initiative, fully compliant with ISO 12006-3, and currently run by four nations: Canada, Netherlands, Norway and USA. The purpose of the library is to provide semantic knowledge to the construction industry in a global and uniform way. The home of IFD Library is at http://www.ifd-library.org.

Currently such semantic information is only available through different standards for different domains within sustainable housing. For example, 'ISO 15686-1 Service life planning – General principles' is an international standard, while 'Ecoprofile' is a Norwegian tool, two very different forms of knowledge providers, but both contain relevant semantic knowledge for sustainable housing in the construction industry.

Through a published Application Programming Interface (API), a means for computer programs to access data in the IFD database, it is possible to gather all relevant semantic knowledge in the library and have computer programs act on information in a context sensitive way. Allowing for local needs, allowing for different cultures and languages, but still able to standardize in a way understandable for computers.

The library contains knowledge on several levels:
 * Concepts
 * With one or more names in several languages
 * With one or more definitions in several languages
 * Relations between concepts
 * Relations between a product type and its properties
 * Relations between a concept and where it is documented
 * Grouping of different concepts into natural groups
 * Etc.
 * Filtering on knowledge based on context
 * See taxonomy specific for Standards Norway
 * See specification tree specific for Omniclass
 * Etc.

From a sustainable housing point of view, this will allow for different local needs, for example climate differences, and different political emphasis in various parts of the world, as well as utilizing different forms of energy deemed the most sustainable depending on local availability.

Usage
"How to reference from IFC model, what can be found?"

The usage of the IFD Library will vary depending on the scenario and what challenges to solve. For innovative sustainable housing there will generally be three ways to use the IFD Library:


 * Looking up information in the library through the IFD API
 * Manipulating IFD related information in the IFC file or database
 * Add relevant content to the IFD Library

For example, it might be interesting for a project to translate sustainable related information in an IFC file to a different language. To accomplish this, it is necessary to locate the relevant information in the IFC file, which will be both the text to be translated, and its related IFD ID. Then, it will be necessary to use the API to look up the relevant translation into the preferred language. Finally, the textual information in the IFC file must be replaced with the new language.

Or, it might be important for a project to add sustainable related content, for example a property on a product type in the IFD Library, in order to facilitate interoperability between suppliers and constructors. To accomplish this, the domain expert in need for the new property must use an appropriate tool, for example the Propertylizer, add the relevant property in English and his native language, including definitions, and upload the new content to the library. Instantly, this is now available for use in the project by all vendors.

Finally, in the early phases of a project, while planning the FM stages of the building, it might be necessary to explore the relevant information for sustainability, regarding various building components. For example, a standard part of a certain wall type might be a gypsum board, but a different type of product, not a gypsum board, might satisfy the FM requirements for the wall. Browsing the taxonomy relevant to the project in the IFD Library might provide useful insight into other alternatives than the standard gypsum board, and perhaps reduce the total cost of the project. To add this change to the project, the user must both use the IFD API to browse the taxonomy (not directly, but through some specialized IFD Library browsing application), and also update the existing gypsum board reference to reflect the new generic product type being used.

Using the API to access data in the IFD Library
The API of the IFD Library is published as a standard Web Service, based on the SOAP protocol. A WSDL file, an XML file defining the API is part of this standard and also published. Many tools available, both open source and proprietary, will automatically generate client code to facilitate usage of the API.

This client code can be used to build end user friendly applications to access data in the IFD Library. For example, the open source project, Axis, contains many tools to help build applications using Web Services.

Using Axis to generate a jar file with proper classes to access the library, simple code to get all languages from the IFD library in java, including error handling mechanism, may look like this:

IfdWebServicesImpl ifdws; IfdWebServicesImplServiceLocator locator = new IfdWebServicesImplServiceLocator; try { ifdws_ = locator.getIfdRPC20; } catch (Exception e) { e.printStackTrace; } try { String session_id = ifdws.login("demo_editor@ifd-library.org", "xxx"); // Get all languages from the IFD Library: IfdLanguage[] languages = ifdws.getLanguages(session_id); ifdws.logout(session_id); } catch (IfdServerException e) { int error_code = Integer.parseInt(e.toString.substring(0, 5)); String error_message = ifdws.getErrorMessage(error_code); System.out.println(error_message); } catch (RemoteException e) { e.printStackTrace; }

Adding references to content in the IFD Library from IFC
See Ifd support in Ifc2x3g.

How to Support IFD in Software
There are two ways to support IFD in software:
 * Implementing support for the API
 * Implementing support for IFC:
 * Supporting version 2x3g of IFC
 * Supporting the IFD related facilities in version 2x3 of IFC

Implementing support for the IFD API
As described above, the API is published using standard SOAP, as a Web Service. Tools are generally available to facilitate easy consuming of the API methods, as shown in the example above.

Implementing support for IFC
Ifd support in Ifc2x3g shows in detail how to do this with IFC version 2x3g. It is also possible to partially support IFD information using IFC version 2x3, however, to fully support IFD data, and use the full potential of the power of IFD, implementing the two additional entities in IFC 2x3g required, compared to IFC 2x3, generates an enormous benefit.

Content Structure and Typical Content for Sustainable Housing in the IFD Library
The conceptual organization of the IFD Library, relevant to sustainable housing, is as follows:
 * Definitions of properties and concepts relevant for sustainable housing
 * Ontologies capturing knowledge for sustainable housing
 * Specification trees relevant for sustainable housing

This will also make up the typical content expected to be of use in sustainable housing projects.

As for generating content to add to the IFD Library, several processes are already in place. However, it is important to keep in mind that we are early in the history of the IFD Library and content will be a major ongoing activity going forward.

Norway has initiated several expert groups to generate data to add to the IFD Library, the first of these groups have already completed their dataset, and several will soon follow. USA are preparing several large datasets for input to the Library, as is Canada and Netherlands.

In a sustainable housing project, the project team must evaluate the existing content, and possibly set up a task force to add missing content in the library themselves. As soon as the content is in the library, it will be of immediate use to the project team themselves and all other users of the IFD Library.

Technical
The database is based on a complete product and is ready. The API has been through preliminary and rough testing and based on that deemed ready for official publishing.

A website, http://dev.ifd-library.org is set up to support developers implementing the API. Thorough documentation of the API is in place on a Wiki, and a forum, http://dev.ifd-library.org/forum, is also enabled for developers to help each other.

Content
At the time of writing, the following content, in terms of numbers, exists in the IFD Library: The content covers various domains, and has no particular bias on certain expert domains.
 * 20 languages
 * 15500 concepts
 * 67700 names
 * 4100 relations

Technical
To ensure a stable API in its current form, real and systematic testing of the API, plus performance tuning is necessary. It is known that a set of normal performance enhancing configurations are not yet applied, and typical performance enhancing refactoring of the code base still remains to be done.

Furthermore, as the API is used, experience gained, and perhaps new and innovative uses for the API is discovered, new versions of the API will be required. This development must also be an ongoing effort to ensure speedy and useful access to the data in the library.

Ongoing support for developers using the API must also be ensured.

The development site, http://dev.ifd-library.org, should also contain a issue system for bug tracking, and a source code management part for the projects source code. These efforts are currently being put in place.

Content
As mentioned above, several initiatives are already underway to increase the content of the IFD Library. The initiatives have different motivations and different approaches to the content generation, which will ensure the broadest usage base for IFD.

The consortium in charge of the IFD Library is working on policies for who can gain access to the library and upload content, and the general view is "as open as possible". All the parties involved is working for a quick resolve of these issues.

Contributors to IFD Library Enhancement
The consortium responsible for the IFD Library will be in charge of the technical development, and also for the content enhancement in the beginning. However, as soon as possible, it is the intention of the IFD Library to open up and allow content input and enhancement to as many parties as possible.

In particular, for sustainable housing projects, the project team members is expected to add content to the IFD Library as necessary for the projects progress. This will be the case in the starting phase of the IFD Library, until content gains a critical mass for typical sustainable housing projects.