FRI3D Import BIM/IFC
Importing Industry Foundation Classes (IFC) Data
Introduction
Industry Foundation Classes (IFC) is an open and standardized data model developed by buildingSMART International for describing building and infrastructure information. It serves as the foundation of Building Information Modeling (BIM) interoperability, allowing different software applications to exchange 3D geometry and rich semantic data about building components, materials, and systems.
The IFC schema provides a neutral, object-oriented representation of physical and logical building elements, including walls, doors, beams, HVAC systems, fire safety components, and much more. Each element in an IFC file belongs to a well-defined class that specifies its role, attributes, and relationships to other entities.
IFC Schema Overview
IFC defines a large hierarchy of entity classes, organized broadly into several conceptual layers:
| Category | Description | Common Examples |
|---|---|---|
| IfcRoot | The base class for all IFC objects. Provides global ID, ownership, and name/description fields. | IfcProject, IfcSite, IfcBuilding, IfcElement |
| IfcProduct | Represents tangible, spatial, or physical elements in the built environment. | IfcWall, IfcBeam, IfcDoor, IfcSlab |
| IfcSpatialStructureElement | Defines the spatial hierarchy of a project (site → building → storey → space). | IfcBuilding, IfcBuildingStorey, IfcSpace |
| IfcElement | Represents individual building components. | IfcWall, IfcWindow, IfcColumn, IfcPipeSegment |
| IfcDistributionElement | Covers building services and MEP (Mechanical, Electrical, Plumbing) components. | IfcFlowSegment, IfcFlowTerminal, IfcFlowController |
| IfcMaterialDefinition | Defines materials, layers, or composites assigned to elements. | IfcMaterial, IfcMaterialLayerSet |
| IfcPropertySet | Attaches custom attributes and metadata to IFC elements. | Pset_WallCommon, Pset_DoorCommon |
| IfcRelationship | Describes connections and associations between objects. | IfcRelContainedInSpatialStructure, IfcRelDefinesByProperties |
IFC Import in FRI3D
FRI3D’s import system reads IFC files and maps their entities to internal categories. There are two ways to import IFC data into FRI3D. By use of the GUI and by use of the Command Line Tool.
GUI: File → Import → BIM/CAD
The File → Import menu

File → Import → BIM/CAD opens the import dialog. When you select an .ifc file, or the BIM/IFC (*.ifc) file type, the IFC import options appear below the file list:
| Option | Default | What it does |
|---|---|---|
| Zone | the current zone | The zone (compartment) that receives the imported geometry. |
| Load IfcBuildingElementProxy types | Off | Includes IfcBuildingElementProxy entities. |
| Load IfcRailing types | Off | Includes IfcRailing entities. |
| Load IfcStair / IfcStairFlight types | Off | Includes IfcStair and IfcStairFlight entities. |
| Load IfcSpace (zone boundaries from bbox) | Off | Loads IfcSpace as zone boundaries, using the IFC bounding box. |
| Load flow/distribution types | Off | Includes IfcFlowTerminal, IfcDistributionElement, IfcDistributionFlowElement, IfcPipeFitting, IfcFlowFitting, IfcCovering and IfcFlowSegment entities. |
| Load all optional types | Off | Loads all of the optional types above, overriding the individual options. |
After you click OK, FRI3D asks you to confirm, because the import starts from the saved project file: changes you have not saved are lost, even if the import fails. Save the project first to keep them.
Command-line tool: Import_IFC
Import is performed by the Import_IFC executable. From a command prompt or script:
Import_IFC.exe <ifcpath> <projectpath> [options]
- ifcpath — Full or relative path to the IFC file.
- projectpath — Full or relative path to the FRI3D project file (e.g.
project.fri3d). If the project does not exist, it is created; when import succeeds, the tool saves the project to projectpath.
Run with no arguments or with --help (or -h, -?, /?) to print usage.
| Argument | Required | Description |
|---|---|---|
| ifcpath | Yes | Path to the IFC file to import. |
| projectpath | Yes | Path to the FRI3D project (e.g. MyProject.fri3d). Created if missing. |
Options (case-insensitive; prefix with /, -, or --):
| Option | Description | Default |
|---|---|---|
| Zone zonename | Name of the zone/compartment for the imported geometry. | (empty) |
| ReplaceProject | Create a new project at projectpath before import (overwrites existing). Use true/false, T/F, etc. | false |
| LoadBuildingElements | Include IfcBuildingElementProxy entities. | false |
| LoadRailings | Include IfcRailing entities. | false |
| LoadStairs | Include IfcStair and IfcStairFlight entities. | false |
| LoadSpaces | Load IfcSpace as zone boundaries, using the IFC bounding box. | false |
| LoadFlows | Include flow and distribution entities (e.g. IfcFlowTerminal, IfcDistributionElement, IfcPipeFitting, IfcFlowSegment). | false |
| LoadAll | Load all optional types, overriding the individual Load options. | false |
| Help | Show usage and help. | — |
For boolean options you can pass a value (e.g. --ReplaceProject true, -LoadStairs false); if omitted, true is assumed. Zone expects the next argument as the zone name (e.g. -Zone Building1).
What gets imported:
- Zones: One zone is created (or used) with the name given by Zone (or the third positional argument).
- Components: Building and MEP elements are imported as components (see lists below).
- Raceways: IfcCableCarrierSegment and IfcCableCarrierFitting as raceways.
- Vents: Vent-like elements from the IFC model.
- 3D geometry: Mesh and bounding-box data for display in the FRI3D project.
IFC types always loaded as components: building elements (IfcColumn, IfcPlate, IfcWall, IfcSlab, IfcWindow, IfcDoor, IfcBeam, etc.), and other (IfcElement, IfcFurnishingElement, IfcFurniture, IfcSite). IfcGrid is never loaded as a component.
Optional IFC types (excluded by default): LoadBuildingElements → IfcBuildingElementProxy; LoadRailings → IfcRailing; LoadStairs → IfcStair, IfcStairFlight; LoadSpaces → IfcSpace; LoadFlows → flow and distribution types. When an option is off, those types are skipped for components, zone–component links, and 3D geometry.
Examples:
Import_IFC.exe C:\Models\building.ifc C:\Projects\building.fri3d -Zone Building1
Import_IFC.exe model.ifc project.fri3d -Zone Main -ReplaceProject
Import_IFC.exe model.ifc project.fri3d --Zone CompartmentA --LoadBuildingElements --LoadRailings
Import_IFC.exe model.ifc project.fri3d -Zone Main -LoadStairs
Import_IFC.exe --help
Import Workflow
- Parsing: The IFC file is parsed using an IFC4x3-compatible reader.
- Classification: Each entity is examined for its IFC class type and relevant property sets.
- Tagging: Elements are tagged into FRI3D’s internal categories (e.g.,
Boundaries,Simulation Items/Vents,Equipments,Raceways/Trays). - Geometry Extraction: Surface geometries are read from
IfcShapeRepresentationor simplified to bounding volumes for performance.
Tagging Requirements
For accurate classification and simulation behavior,
FRI3D requires that elements are appropriately tagged in the source BIM software (e.g., Revit, ArchiCAD, Tekla) before export.
This ensures that the IFC importer can identify fire-relevant elements correctly.
| FRI3D Tag | Expected IFC Class | Example IFC Name | Purpose |
|---|---|---|---|
Boundaries | IfcWall, IfcSlab, IfcCovering | FireRatedWall_120min | Defines compartment boundaries and fire separation zones |
Simulation Items/Vents | IfcDoor, IfcWindow, IfcOpeningElement | ExitDoor_Main | Defines openings for smoke flow and evacuation routes |
Equipments | IfcFlowTerminal, IfcDistributionElement | SmokeDetector_01 | Identifies active fire protection and HVAC elements |
⚠️ Important:
FRI3D relies on these tags and IFC class mappings to automatically classify and group geometry during import.
Un-tagged or misclassified elements may be ignored or assigned default non-combustible behavior.
Supported IFC Versions
FRI3D currently supports:
- IFC4 and IFC4x3 schemas (recommended)
- Partial backward compatibility with IFC2x3 for legacy datasets
Best Practices
Before Export from BIM Software
-
Organize Your Model
- Use consistent naming conventions
- Define spaces (
IfcSpace) for each room or zone - Organize compartments by ifcSpaces - each compartment = ifcSpace
- Group related elements logically
- Remove unnecessary detail or temporary geometry
-
Tag Elements Properly
- Assign correct IFC classes (avoid generic
IfcProxywhere possible) - Mark openings (doors, windows) clearly with ifcDoor/ifcWindow etc
- Assign correct IFC classes (avoid generic
-
Export Settings
- Use IFC4 or IFC4x3 schema
- Include geometry (not just metadata)
- Export property sets (not just basic properties)
- Consider file size vs. detail level
After Import into FRI3D
-
Review Classification
- Check import log for warnings or errors
- Verify element counts match expectations
- Review spatial structure hierarchy
-
Validate Geometry
- Inspect 3D view for missing or corrupted elements
- Check for gaps or overlaps in fire barriers
- Verify openings are correctly positioned
Import Procedure
1. Prepare Your IFC File
Before importing into FRI3D, ensure your IFC file is properly prepared:
- Export from BIM Software: Use Revit, ArchiCAD, Tekla, or other IFC-compatible software
- Verify IFC Version: Export as IFC4 or IFC4x3 (recommended) for best compatibility
- Tag Elements: Ensure fire-relevant elements are properly tagged with appropriate IFC classes
- Check File Size: Large IFC files (>100MB) may require simplification or splitting
2. Import into FRI3D
- Save your project: The import starts from the saved project file, so changes you have not saved are lost.
- Open the import dialog: Choose File → Import → BIM/CAD.
- Select the IFC file: Set the options, then click OK and confirm.
- Wait for parsing: FRI3D parses the IFC file and displays progress.
To import from the command line instead, run Import_IFC.exe and then open the resulting project in FRI3D. This example creates a new project with a zone named NEW, overwriting any project already at that path:
Import_IFC.exe "D:\Building_import_test.ifc" "D:\Project.fri3d" -Zone NEW -ReplaceProject
3. Post-Import Verification
After import, verify the following:
- Spatial Structure: Check that building storeys and spaces are correctly identified
- Element Classification: Verify that walls, doors, and other elements are tagged correctly
- Material Properties: Review material assignments for fire simulation accuracy
- Geometry Quality: Ensure no missing or corrupted geometry
File Format Details
IFC File Structure
IFC files are typically stored in STEP Physical File (SPF) format, which is a text-based representation:
| Component | Description | Example |
|---|---|---|
| Header | File metadata, schema version, and project information | FILE_SCHEMA(('IFC4')); |
| Data Section | Entity definitions with unique IDs | #123= IfcWall(...); |
| References | Relationships between entities | #456= IfcRelContainedInSpatialStructure(...); |
Common IFC File Extensions
.ifc- Standard IFC file (text-based SPF format)
Common Issues and Troubleshooting
Issue 1: Elements Not Classified Correctly
Symptom: Walls, doors, or other elements appear as generic geometry
Solution:
- Verify IFC class types in source BIM software (e.g., ensure walls are
IfcWall, notIfcProxy) - Check that elements have proper property sets assigned
Issue 2: Missing Geometry
Symptom: Some elements don't appear in the 3D view after import
Solution:
- Check that elements have valid
IfcShapeRepresentationdefinitions - Make sure that you have specified the right command line options in Import_IFC . By default it doesnt load IfcBuildingElementProxy for example.
- Verify IFC export settings (ensure geometry is included, not just metadata)
- Try re-exporting from source software with different IFC export options
Issue 3: Coordinate System Mismatch
Symptom: Model appears in wrong location or orientation
Solution:
- Check
IfcSiteandIfcBuildingplacement in IFC file - Verify coordinate system settings in source BIM software
- Use FRI3D's coordinate transformation tools if needed
Issue 4: Performance Issues with Large Files
Symptom: Import is slow or FRI3D becomes unresponsive
Solution:
- Simplify geometry in source BIM software before export
- Split large models into multiple IFC files (by building or storey)
- Use IFC simplification tools or filters during export
- Consider using bounding box simplification for non-critical elements
Comparison with Other Import Formats
| Format | Semantic Data | Geometry Quality | Fire Safety Data | Recommended Use |
|---|---|---|---|---|
| IFC | ✅ Rich (BIM classes, properties, relationships) | ✅ High (BREP solids, surfaces) | ✅ Excellent (fire ratings, materials) | Primary choice for BIM-based fire analysis |
| STEP/IGES | ⚠️ Limited (geometry only) | ✅ High (BREP solids) | ❌ None | Mechanical equipment, plant design |
| OBJ/glTF | ❌ None (geometry only) | ⚠️ Medium (meshes) | ❌ None | Visualization, context models |
| Native CAD | ⚠️ Varies | ✅ High | ⚠️ Varies | Direct CAD integration (if supported) |
Recommendation: For fire safety analysis workflows, IFC is strongly recommended due to its rich semantic data and standardized fire safety properties.
Citation
If you reference this material in publications or documentation, please cite as:
FRI3D Documentation: Industry Foundation Classes (IFC) Import and Classification Guide.
Centroid LAB, 2025.
https://centroidlab.com/fri3d/docs/
What's Next?
After successfully importing your IFC model:
- Configure Fire Scenarios - Set up fire sources, ignition points, and analysis parameters
- Define Compartments - Verify and adjust fire compartment boundaries
- Assign Materials - Review and refine material properties for accurate simulation
- Run Analysis - Execute fire dynamics simulations using your imported model
- Visualize Results - Analyze and visualize fire, smoke, and thermal results
For more information on other import formats, see: