IFC support
IFC Support
Overview
Aspose.3D for .NET can import IFC files just like other 3D formats. The IFC file is parsed and represented as a regular 3D scene, allowing you to work with geometry, materials, and semantic data.
What is IFC?
Industry Foundation Classes (IFC) is an open, neutral data model developed by buildingSMART to describe, exchange, and share building and construction industry data. It captures both geometric information (shapes, coordinates) and rich semantic data (materials, properties, relationships) about building elements.
IFC Versions
- IFC2x3 – Early widely adopted version, provides basic geometry and property sets.
- IFC4 – Introduced improved schema, support for more building elements, enhanced property definitions, and better interoperability.
- IFC4.1 / IFC4.2 – Incremental updates adding new entity definitions, improved MVDs (Model View Definitions), and expanded support for infrastructure.
- IFC4.3 – Latest version (as of 2025) with further extensions for infrastructure, facility management, and detailed material specifications.
These versions are all supported by Aspose.3D, allowing you to load IFC files regardless of the schema version.
Importing IFC
using Aspose.ThreeD;
// Load an IFC file
var scene = Scene.FromFile("building.ifc");
// The scene now contains nodes, meshes, and metadata.
Property Sets
IFC property sets are exposed via A3DObject.GetProperty
. Property names are prefixed with ifc:
to avoid conflicts.
var wall = scene.RootNode.Children.FirstOrDefault(n => n.Name == "Wall_1");
var fireRating = wall?.GetProperty("ifc:FireRating");
Console.WriteLine($"Fire Rating: {fireRating}");
IFC Grouping
Semantic groups defined in IFC are accessible through the Group
class.
foreach (var group in scene.Library.Where(o => o is Group))
{
var g = (Group)group;
Console.WriteLine($"Group: {g.Name}, Nodes: {g.Nodes.Count}");
}
Additional Features
- Access to element quantities (
ifc:GrossVolume
, etc.). - Case‑sensitive property names.
GetProperty
returnsobject
; cast to appropriate type.