IFC Graph Database¶
Convert IFC BIM models to Neo4j graph database for querying building information
IFC Graph is a Python tool that extracts building elements from IFC (Industry Foundation Classes) BIM model files and stores them in a Neo4j graph database. The tool filters physical entities (walls, doors, windows, columns, etc.) to create a structured graph representation of building components and their relationships.

Features¶
- 🚀 Batch Processing - Efficiently processes IFC files using batch database operations
- ⚙️ Configurable Element Types - Customize which IFC element types to extract via YAML
- 🔗 Rich Graph Model - Extracts elements, spatial structures, materials, and property sets
- 🛡️ Safe Database Operations - Optional database clearing with
--clear-dbflag - 🔧 CLI Interface - Full command-line interface with multiple options
- 📦 Python Library - Use as a library in your own Python projects
Quick Example¶
from ifc_graph import filter_physical_elements, save_to_neo4j
# Extract elements from IFC file
elements, ifc_file = filter_physical_elements(
"path/to/model.ifc",
element_types=['IfcWall', 'IfcDoor', 'IfcWindow']
)
# Store in Neo4j
stats = save_to_neo4j(
elements, ifc_file,
uri="bolt://localhost:7687",
username="neo4j",
password="your_password"
)
Getting Started¶
-
Installation
Install
ifc-graphwith pip and get up and running in minutes -
Quick Start
Learn the basics of processing IFC files to Neo4j
-
Configuration
Customize element types and extraction settings
-
API Reference
Detailed API documentation for developers
Requirements¶
- Python 3.9+
- Neo4j Database (4.x or 5.x)
- IFC file to process
Documentation¶
| Section | Description |
|---|---|
| Getting Started | Installation, quick start, and configuration |
| User Guide | CLI usage, Python API, and graph model |
| API Reference | Detailed API documentation |
License¶
This project is licensed under the MIT License - see the LICENSE file for details.