Industry Foundation Classes
Encyclopedia
The Industry Foundation Classes (IFC) data model is intended to describe building and construction industry data.
It is a neutral and open specification that is not controlled by a single vendor or group of vendors. It is an object-based file format with a data model
developed by buildingSMART (International Alliance for Interoperability, IAI) to facilitate interoperability
in the building industry, and is a commonly used format for Building Information Modeling
(BIM). The IFC model specification is open and available. It is registered by ISO as ISO/PAS 16739 and is currently in the process of becoming the official International Standard ISO 16739. Because of its focus on ease of interoperability between software platforms the Danish government has made the use of IFC format(s) compulsory for publicly aided building projects. Also Finnish state owned facility management company Senate Properties demands use of IFC compatible software and BIM in all their projects.
consisting of several hundred entities organized into an object-based inheritance hierarchy. Examples of entities include building elements such as IfcWall, geometry such as IfcExtrudedAreaSolid, and basic constructs such as IfcCartesianPoint.
At the most abstract level, IFC divides all entities into rooted and non-rooted entities. Rooted entities derive from IfcRoot and have a concept of identity (having a GUID), along with attributes for name, description, and revision control. Non-rooted entities do not have identity and instances only exist if referenced from a rooted instance directly or indirectly. IfcRoot is subdivided into three abstract concepts: object definitions, relationships, and property sets. IfcObjectDefinition captures tangible object occurrences and types, IfcRelationship captures relationships among objects, and IfcPropertyDefinition captures dynamically extensible properties about objects.
IfcObjectDefinition is split into object occurrences and object types. IfcObject captures object occurrences such as a product installation having serial number and physical placement. IfcTypeObject captures type definitions (or templates) such as a product type having a particular model number and common shape. Occurrences and types are further subdivided into six fundamental concepts: actors ("who"), controls ("why"), groups ("what"), products ("where"), processes ("when"), and resources ("how").
IfcRelationship captures relationships among objects. There are five fundamental relationship types: composition, assignment, connectivity, association, and definition.
IfcPropertyDefinition captures dynamically extensible property sets. A property set contains one or more properties which may be a single value (e.g. string, number, unit measurement), a bounded value (having minimum and maximum), an enumeration, a list of values, a table of values, or a data structure. While IFC defines several hundred property sets for specific types, custom property sets may be defined by application vendors or end users.
, electrical, plumbing
) have a concept of ports where elements may have specific connections for various services, and connected together using cables, pipes, or ducts to form a system. Various connectivity relationships are used for building elements such as walls having openings filled by doors or windows.
Materials may be defined for products as a whole, or as layers, profiles, or constituents for specified parts.
Representations may be defined for explicit 3D shape, and optionally as parametric constraints. Each representation is identified by IfcShapeRepresentation with a well-known name.
Placement may indicate position, vertical angle, and horizontal angle.
Quantities may be defined for take-off purposes such as Gross Area, Gross Volume, Gross Weight, Net Weight, etc. IFC defines various quantities specific to each element type and the method of calculation according to geometry and relationships.
. Processes may be nested into sub-processes for summary roll-up. Processes may be assigned to products indicating the output produced by the work performed.
In addition to project-specific information, an IfcProject may also reference external projects from which shared definitions may be imported such as product types. Each external project is encapsulated using IfcProjectLibrary [IFC2x4] along with IfcRelAssociatesLibrary and IfcLibraryInformation to identify the particular revision of the imported project library.
Projects support revision control
where any IfcRoot-based entity has a unique identifier and may be marked as added, modified, deleted, or having no change. Such capability allows multiple IFC files to be merged deterministically, ensuring data integrity without human intervention.
It is a neutral and open specification that is not controlled by a single vendor or group of vendors. It is an object-based file format with a data model
Data model
A data model in software engineering is an abstract model, that documents and organizes the business data for communication between team members and is used as a plan for developing applications, specifically how data is stored and accessed....
developed by buildingSMART (International Alliance for Interoperability, IAI) to facilitate interoperability
Interoperability
Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to...
in the building industry, and is a commonly used format for Building Information Modeling
Building Information Modeling
Building information modeling is the process of generating and managing building data during its life cycle.BIM involves representing a design as objects – vague and undefined, generic or product-specific, solid shapes or void-space oriented , that carry their geometry, relations and attributes...
(BIM). The IFC model specification is open and available. It is registered by ISO as ISO/PAS 16739 and is currently in the process of becoming the official International Standard ISO 16739. Because of its focus on ease of interoperability between software platforms the Danish government has made the use of IFC format(s) compulsory for publicly aided building projects. Also Finnish state owned facility management company Senate Properties demands use of IFC compatible software and BIM in all their projects.
History
The IFC has a fairly long history. In late 1994, Autodesk initiated an industry consortium to advise the company on the development of a set of C++ classes that could support integrated application development. Twelve US companies joined the consortium. Initially defined as the Industry Alliance for Interoperability, the Alliance opened membership to all interested parties in September, 1995 and changed its name in 1997 to the International Alliance for Interoperability. The new Alliance was reconstituted as a non-profit industry-led organization, with the goal of publishing the Industry Foundation Class (IFC) as a neutral AEC product model responding to the AEC building lifecycle. Since 2005, the IFC specification is developed and maintained by buildingSMART International.IFC/ifcXML Specifications
- IFC2x4 (Release Candidate as of September 2010)
- ifcXML2x3 (June 2007)
- IFC2x3 (February 2006)
- ifcXML2 for IFC2x2 add1 (RC2)
- IFC2x2 Addendum 1 (July 2004)
- ifcXML2 for IFC2x2 (RC1)
- IFC 2x2
- IFC 2x Addendum 1
- ifcXML1 for IFC2x and IFC2x Addendum 1
- IFC 2x
- IFC 2.0
- IFC 1.5.1
- IFC 1.5
File Formats
IFC defines multiple file formats that may be used, supporting various encodings of the same underlying data.- IFC-SPF is a text format defined by ISO 10303-21ISO 10303-21STEP-File is the most widely used data exchange form of STEP. Due to its ASCII structure it is easy to read with typically one instance per line. The format of a STEP-File is defined in ISO 10303-21 Clear Text Encoding of the Exchange Structure....
("STEP-File"), where each line typically consists of a single object record, and having file extension ".ifc". This is the most widely used IFC format, having the advantage of compact size yet readable text. - IFC-XML is an XMLXMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
format defined by ISO 10303-28ISO 10303-28STEP-XML is a short term for ISO 10303-28, Industrial automation systems and integration—Product data representation and exchange—Part 28: Implementation methods: XML representations of EXPRESS schema and data...
("STEP-XML"), having file extension ".ifcXML". This format is suitable for interoperability with XML tools and exchanging partial building models. Due to the large size of typical building models, this format is less common in practice. - IFC-ZIP is a ZIPZIP (file format)Zip is a file format used for data compression and archiving. A zip file contains one or more files that have been compressed, to reduce file size, or stored as is...
compressed format consisting of an embedded IFC-SPF file and having file extension ".ifcZIP".
Architecture
IFC defines an EXPRESS based entity-relationship modelEntity-relationship model
In software engineering, an entity-relationship model is an abstract and conceptual representation of data. Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements...
consisting of several hundred entities organized into an object-based inheritance hierarchy. Examples of entities include building elements such as IfcWall, geometry such as IfcExtrudedAreaSolid, and basic constructs such as IfcCartesianPoint.
At the most abstract level, IFC divides all entities into rooted and non-rooted entities. Rooted entities derive from IfcRoot and have a concept of identity (having a GUID), along with attributes for name, description, and revision control. Non-rooted entities do not have identity and instances only exist if referenced from a rooted instance directly or indirectly. IfcRoot is subdivided into three abstract concepts: object definitions, relationships, and property sets. IfcObjectDefinition captures tangible object occurrences and types, IfcRelationship captures relationships among objects, and IfcPropertyDefinition captures dynamically extensible properties about objects.
IfcObjectDefinition is split into object occurrences and object types. IfcObject captures object occurrences such as a product installation having serial number and physical placement. IfcTypeObject captures type definitions (or templates) such as a product type having a particular model number and common shape. Occurrences and types are further subdivided into six fundamental concepts: actors ("who"), controls ("why"), groups ("what"), products ("where"), processes ("when"), and resources ("how").
- IfcActor represents people or organizations.
- IfcControl represents rules controlling time, cost, or scope such as work orders.
- IfcGroup represents collections of objects for particular purpose such as electrical circuits.
- IfcProduct represents occurrences in space such as physical building elements and spatial locations.
- IfcProcess represents occurrences in time such as tasks, events, and procedures.
- IfcResource represents usage of something with limited availability such as materials, labor, and equipment.
IfcRelationship captures relationships among objects. There are five fundamental relationship types: composition, assignment, connectivity, association, and definition.
- IfcRelDecomposes captures a whole-part relationship having exclusive containment such as subdividing a building into floors and rooms or a wall into studs and sheathing.
- IfcRelAssigns captures assignment relationships where one object consumes the services of another object, such as a labor resource assigned to a task, or a task assigned to a building element.
- IfcRelConnects indicates connectivity between objects such as a floor slab connected to a beam or a pipe connected to a sink.
- IfcRelAssociates indicates external references for an object such an external IFC library file where an object is defined.
- IfcRelDefines indicates an instance-of relationship such as a pipe segment being of a particular type.
IfcPropertyDefinition captures dynamically extensible property sets. A property set contains one or more properties which may be a single value (e.g. string, number, unit measurement), a bounded value (having minimum and maximum), an enumeration, a list of values, a table of values, or a data structure. While IFC defines several hundred property sets for specific types, custom property sets may be defined by application vendors or end users.
- IfcPropertySet represents a set of properties attached to an object occurrence or object type.
- IfcPropertySetTemplate [IFC2x4] captures definitions of properties and their data types.
Products
IfcProduct is the base class for all physical objects and is subdivided into spatial elements, physical elements, structural analysis items, and other concepts. Products may have associated materials, shape representations, and placement in space. Spatial elements include IfcSite, IfcBuilding, IfcBuildingStorey, and IfcSpace. Physical building elements include IfcWall, IfcBeam, IfcDoor, IfcWindow, IfcStair, etc. Distribution elements (HVACHVAC
HVAC refers to technology of indoor or automotive environmental comfort. HVAC system design is a major subdiscipline of mechanical engineering, based on the principles of thermodynamics, fluid mechanics, and heat transfer...
, electrical, plumbing
Plumbing
Plumbing is the system of pipes and drains installed in a building for the distribution of potable drinking water and the removal of waterborne wastes, and the skilled trade of working with pipes, tubing and plumbing fixtures in such systems. A plumber is someone who installs or repairs piping...
) have a concept of ports where elements may have specific connections for various services, and connected together using cables, pipes, or ducts to form a system. Various connectivity relationships are used for building elements such as walls having openings filled by doors or windows.
Materials may be defined for products as a whole, or as layers, profiles, or constituents for specified parts.
- IfcMaterial indicates a specific material, with optional properties (e.g. mechanical, thermal) and styles (e.g. colors, textures).
- IfcMaterialLayerSet captures a list of layers, each indicating a material of a specified thickness.
- IfcMaterialProfileSet [IFC2x4] captures a set of profiles, each indicating a material of a specified cross-section.
- IfcMaterialConstituentSet [IFC2x4] captures a set of constituents, each indicating a material used at a named shape aspect.
Representations may be defined for explicit 3D shape, and optionally as parametric constraints. Each representation is identified by IfcShapeRepresentation with a well-known name.
- 'Body' indicates a 3D shape which may be represented by B-rep, NURBS, Constructive Solid GeometryConstructive solid geometryConstructive solid geometry is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine objects...
(CSG), or swept profiles. It may be defined directly or derived by applying material definitions to other representations. - 'Axis' indicates a path for linear elements (e.g. wall, beam, pipe) for which material profiles or layers are aligned.
- 'FootPrint' indicates a boundary for planar elements (e.g. slab, staircase) for which material layers are bounded.
- 'Profile' indicates a side profile for opening elements (e.g. door, window) for which material constituents are bounded.
- 'SurveyPoints' indicates a set of points for surface elements (e.g. site) for describing contours.
Placement may indicate position, vertical angle, and horizontal angle.
- IfcLocalPlacement indicates placement relative to an enclosing element hierarchy.
- IfcGridPlacement indicates placement relative to a grid with user-defined axes.
Quantities may be defined for take-off purposes such as Gross Area, Gross Volume, Gross Weight, Net Weight, etc. IFC defines various quantities specific to each element type and the method of calculation according to geometry and relationships.
Processes
IfcProcess is the base class for processes and is subdivided into tasks, events, and procedures. Processes may have durations and be scheduled to occur at specific time periods. Processes may be sequenced such that a successor task may start after a predecessor task finishes, following the Critical Path MethodCritical path method
The critical path method is an algorithm for scheduling a set of project activities. It is an important tool for effective project management.-History:...
. Processes may be nested into sub-processes for summary roll-up. Processes may be assigned to products indicating the output produced by the work performed.
Resources
IfcResource is the base class for resources and is subdivided into materials, labor, equipment, subcontracts, crews, and more. Resources may have various costs and calendars of availability. Resources may be nested into sub-resources for granular allocation. Resources may be assigned to processes indicating tasks performed on behalf of a resource.Contexts
IfcProject encapsulates an overall project and indicates the project name, description, default units, currency, coordinate system, and other contextual information. A valid IFC file must always include exactly one IfcProject instance, from which all other objects relate directly or indirectly. A project may include multiple buildings, multiple participants, and/or multiple phases according to the particular use.In addition to project-specific information, an IfcProject may also reference external projects from which shared definitions may be imported such as product types. Each external project is encapsulated using IfcProjectLibrary [IFC2x4] along with IfcRelAssociatesLibrary and IfcLibraryInformation to identify the particular revision of the imported project library.
Projects support revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
where any IfcRoot-based entity has a unique identifier and may be marked as added, modified, deleted, or having no change. Such capability allows multiple IFC files to be merged deterministically, ensuring data integrity without human intervention.
Software vendors supporting IFC
- http://www.exactal.com CostX by the Exactal Technologies Support IFC 2x2, 2x3 BIM models
- Tech Soft 3D: HOOPS 3D Exchange supports IFC 2x2 and IFC 2x3
- Tetra4D: 3D PDF Converter supports IFC 2x2 and IFC 2x3
- Constructivity: Constructivity Model ViewerConstructivity Model ViewerConstructivity Model Viewer is software for viewing Building Information Models on Windows PCs. It is unique in that it is the only software that is capable of graphically viewing 100% of Industry Foundation Classes , the universal software standard for the AEC industry.It supports viewing...
supports IFC 2x3 and IFC 2x4 - Kymdata: CADS Planner supports IFC 2x3
- Strusoft: FEM-Design supports IFC 2x3
- InterCAD: AxisVM supports IFC 2x3
- CYPECAD: CYPECAD supports IFC 2x3
- Gehry Technologies: Digital ProjectDigital ProjectDigital Project is a computer-aided design software application based on CATIA V5 and developed by Gehry Technologies, a technology company owned by the architect Frank Gehry....
V1R4 supports IFC 2x3 - GraphisoftGraphisoftGraphisoft SE develops Building Information Modeling software products for architects, interior designers and planners. The company is headquartered in Graphisoft Park Budapest, Hungary. Graphisoft has subsidiaries in Germany, USA, UK, Spain, Japan and representative offices in Russia and Singapore...
: ArchiCADArchiCADArchiCAD is an architectural BIM CAD software for Macintosh and Windows developed by the Hungarian company Graphisoft. ArchiCAD offers specialized solutions for handling all common aspects of aesthetics and engineering during the whole design process of the built environment — buildings, interiors,...
supports IFC 1.51, IFC 2.00, IFC 2x, IFC 2x2, IFC 2x3 from Archicad 7 version onwards. - TeklaTeklaTekla Corporation is a software engineering corporation specializing in model-based software products for building and construction and infrastructure management. The company was founded in 1966. The headquarter is in Espoo, Finland, but there are offices all over the world...
: Tekla Structures supports IFC 2x2 and IFC 2x3 - TeklaTeklaTekla Corporation is a software engineering corporation specializing in model-based software products for building and construction and infrastructure management. The company was founded in 1966. The headquarter is in Espoo, Finland, but there are offices all over the world...
: Tekla BIMsight supports multiple IFC formats (freewareFreewareFreeware is computer software that is available for use at no cost or for an optional fee, but usually with one or more restricted usage rights. Freeware is in contrast to commercial software, which is typically sold for profit, but might be distributed for a business or commercial purpose in the...
) - Eurostep AB : EMS - Eurostep ModelServer for IFC and Share-A-space supports import and export of IFC 2x3.
- NemetschekNemetschekThe Nemetschek group is world leading vendor of software for architects, engineers and the construction industry. The company develops and distributes solutions for designing, building and managing buildings and real estate as well as multimedia. According to Nemetschek, the company with all of...
: VectorWorksVectorWorksVectorworks is a computer-aided design and Building Information Modeling software program developed by Nemetschek Vectorworks that is used for drafting, technical drawing and 3D modeling. Vectorworks offers 2D, 3D, production management, and presentation capabilities for all phases of the design...
supports IFC 2x3 through use of the VectorWorks IFC v.2x3 plug-in - SolibriSolibriSolibri, Inc. develops and markets Quality Assurance solutions for AECO field that improve the quality of Building Information Modeling and make the entire design process more productive...
: Solibri Model Checker, Solibri Model ViewerSolibri Model ViewerSolibri Model Viewer is built for viewing Open Standard IFC files and Solibri Model Checker files. Solibri Model Viewer brings BIM files from all IFC compatible software products available for you in a single environment. It works on PC and Macintosh platforms. The software usage is free of...
, Solibri IFC Optimizer - NemetschekNemetschekThe Nemetschek group is world leading vendor of software for architects, engineers and the construction industry. The company develops and distributes solutions for designing, building and managing buildings and real estate as well as multimedia. According to Nemetschek, the company with all of...
: Allplan supports IFC 2x3 as a free add-on from 2006-2 version. - NemetschekNemetschekThe Nemetschek group is world leading vendor of software for architects, engineers and the construction industry. The company develops and distributes solutions for designing, building and managing buildings and real estate as well as multimedia. According to Nemetschek, the company with all of...
: SCIA Engineer (ESA-PT) supports IFC 2x3 - Bentley SystemsBentley SystemsBentley Systems, Incorporated is a software company that produces solutions for the design, construction and operation of infrastructure. The company’s software serves the building, plant, civil, and geospatial vertical markets in the areas of architecture, engineering, construction and operations...
: Bentley Architecture supports IFC 2x3. - CadworkCadworkcadwork is a computer aided design software, created in 1980 by the CSEM, and followed in 1982 by the École Polytechnique Fédérale de Lausanne , before it came a Swiss society in 1988 ....
: Cadwork 3D supporting IFC 2x3. - Data Design SystemData Design SystemData Design System ASA supplies the construction industry with software tools for building information modelling .The company was founded in 1984 in Stavanger, Norway...
: DDS-CAD supports IFC 2x3 - Progman: MagiCAD supports IFC 2x2 and IFC 2x3
- Archimen Group : Active3d
- Dassault Systemes SolidWorks Corp: SolidWorks 2011 supports IFC 2x3 http://help.solidworks.com/2011/English/api/swconst/FileSaveAsIFCOptions.htm
- AutodeskAutodeskAutodesk, Inc. is an American multinational corporation that focuses on 3D design software for use in the architecture, engineering, construction, manufacturing, media and entertainment industries. The company was founded in 1982 by John Walker, a coauthor of the first versions of the company's...
: RevitRevitAutodesk Revit Architecture often referred to as simply Revit is a Building Information Modeling software developed by Autodesk. It allows the user to design with both parametric 3D modeling and 2D drafting elements...
supports IFC 2x2 and IFC 2x3. Version 2012 also supports IFC GSA 2010 and IFC BCA ePlan Check in the Export to IFC dialog. - AutodeskAutodeskAutodesk, Inc. is an American multinational corporation that focuses on 3D design software for use in the architecture, engineering, construction, manufacturing, media and entertainment industries. The company was founded in 1982 by John Walker, a coauthor of the first versions of the company's...
: AutoCAD Architecture supports IFC 2x3 - Arktec: Tricalc supports IFC 2x3
- IFC server open source IFC Modelserver suppors all versions of IFC.
- Blender (software)Blender (software)Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...
: open source IFC-Importer for Blender supports IFC 2x3 - Jotne EPM Technology AS : EDM products supporting IFC.
- GRAITECGRAITECGRAITEC is maker of CAD / CAE software for the civil engineering and construction industries.Headquartered in France, the company was founded in 1986 by Francis Guillemard. GRAITEC went from a single company located in France to a group of 11 wholly owned companies spread around the world...
: Advance SteelAdvance SteelAdvance Steel is a CAD software application for 3D modeling and detailing of steel structures in AutoCAD and automatic creation of fabrication drawings, bill of materials and NC files, developed by GRAITEC.- Features :...
, Advance ConcreteAdvance ConcreteAdvance Concrete is a computer-aided design software application developed by GRAITEC and used for modeling and detailing reinforced concrete structures in AutoCAD. Advance Concrete is used in the structural / civil engineering and drafting fields....
and Advance DesignAdvance DesignAdvance Design is a computer-aided engineering software application developed by GRAITEC and dedicated to structural analysis and design of reinforced concrete / steel structures and automated creation of design reports.- Features :...
supporting IFC 2x3. - ITS: SpaceGass supports IFC 2x3 from SpaceGass 10.7 onwards.
- :pt:CAD/TQS supports IFC IFC 2x3
- Vizelia supports IFC 2x3
- Rhino3d/Grasshopper3d supports IFC 2x3 using Geometry Gym plug-ins.
- Rhinoceros-VisualARQ supports IFC 2x3.
- Datacubist : simplebim supports IFC2x3.
- Elitecad by Roland Messerli AG Informatik
- BoCAD-3D Supports IFC format by BoCAD Software
- 4M: IDEA ArchitecturalIDEA ArchitecturalIDEA Architectural is a BIM CAD software for architects and designers, built on top of IntelliCAD by 4M Software company. IDEA BIM structure, provides a smart model shaping and high design accuracy, directly applied to the real 3D building model. All the building elements are intelligent objects...
, FINE MEP and STRAD Structural, support IFC 2x3
External links
- buildingSMART (International Alliance for Interoperability)
- Understanding the different purposes of IFCs and aecXML in achieving Interoperability at the International Alliance for Interoperability, North America, website
- IFC for Structural Steel at NIST
- AECbytes Feature (March 30, 2004) on the IFC data model
- IfcWiki Beginning of an open-for-all Wiki on the IFCs (initiated by Forschungszentrum Karlsruhe)
- DDS-CAD viewer is a free IFC file viewer
- Solibri IFC Optimizer is a free IFC file optimization tool
- Solibri Model Viewer is a free IFC file viewer
- IFC server is an open source IFC Modelserver for storing IFC data in a central database.
- Ifc engine is a library for reading and writing IFC files
- IFC File Analyzer generates a spreadsheet from an IFC file
- IfcOpenShell, a free open source software library for working with IFC files. Additionally, features an importer for Blender and Autodesk 3ds Max.
- IFC WebServer lightweight web-application written in RubyRuby (programming language)Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
supports all versions of IFC. Demo Server