faq ifc implementation
- Which other software supports already IFC? Is there any IFC related freeware?
- Are there any development kits available to implement IFC?
- Which IFC version should I implement?
- IFC does not (quite) support a specific need that I have. What can I do about it?
- Where can I find some sample code implementing IFC?
- I'd like to learn from existing IFC examples. Where do I find IFC example files, possibly with explanations?
- How do I understand the notation of an IFC file?
Q: Which other software supports already IFC? Is there any IFC related freeware?
A: There is free software available for IFC, several viewers but also several tools to help you implement are freely available or even as open source. An online database is provided that includes all IFC compatible software that had been registered by the software vendors. See also:
Q: Are there any development kits available to implement IFC?
A: Yes, they are often called toolkits. These toolkit usually compile the IFC schema and provide different computer language support (C++, C#, Java, VB, etc.) to read and write *.ifc files. Most developers offer a test version including some examples on request. Further links can be found:
Q: Which IFC version should I implement?
A: At this moment IFC version 2x3 is the best choice to implement, it has the broadest coverage of support of all published IFC releases. In case you expect a really very long period before going to market contact a specialist to decide if it is beneficial to start directly with version 2x4
Q: IFC does not (quite) support a specific need that I have. What can I do about it?
A: Consider if the specific need is for an object (with representations and relationships to other objects in the model) or is the need for some further properties.
For example, an airflow application models spaces and cracks. Spaces are already part of the IFC schema, but there is no representation of a ‘crack’. However any crack is in reality associated to a physical object, a wall, door or window. Hence a property set can be defined to hold the properties of the crack, such the length, average width, and perhaps also the airflow rate expected for a given pressure.
As another example, perhaps your building proposal includes an artistic sculpture in the courtyard. This is clearly not a simple property of the courtyard, and the IFC model supports proxy objects. These function as objects but make no assertion as to their function or role. The application should offer the user the facility to classify or describe the object in detail. See IfcBuildingElementProxy as the extensible proxy definition of the IFC specification.
Q: Where can I find some sample code implementing IFC?
A: There is an example how to write an IFC file from scratch available via: http://www.iai-tech.org/services/get-started/hello-world. Most developers of toolboxes offer a test version including some examples on request. The following links give a set of examples:
Q: I'd like to learn from existing IFC examples. Where do I find IFC example files, possibly with explanations?
A: There are several sources of IFC sample files. This website includes examples, see “Hello Wall”. More links to examples can be found at ifcWiki page. If you decide to participate in the IFC certification program, see the information about the certification process where you can get access to numerous unit test cases and several complete test buildings.
Q: How do I understand the notation of an IFC file?
A: An *.ifc file follows the notation of ISO10303-21, the STEP physical file format. It is an ASCII encoding of the EXPRESS data model of the IFC specification. There is typically one record per line, and each record represents one instance of an entity. ISO documents are copyrighted and published by the member organisations of ISO. An overview of the STEP physical file format can be found at http://en.wikipedia.org/wiki/ISO_10303-21.