A Python package for extracting space-level topological relationships from IFC (Industry Foundation Classes) building models.
This project was developed as part of a master's thesis research at the Technical University of Munich.
- Title: Reasoning IFC Models for Space-level Circulation Design Rationale using Graph-based Analysis and Community Detection
- Author: Harshal Gunjal
- Supervisor: Jiabin Wu
- Institution: Chair of Computational Modeling and Simulation, Technical University of Munich
- Git
- Anaconda Navigator
- PyCharm Community Edition
- Gephi
- IfcOpenShell
- Graphviz
- Trimesh
- rtree
- scipy
- pyglet
- NumPy
- NetworkX
-
Clone the repository:
git clone https://github.com/hgunjal/IFC.Circul
-
Create and configure environment:
- Launch Anaconda Navigator
- Create a new environment
- Install all required packages listed above
-
Open the project in PyCharm Community Edition
-
Configure Input/Output Settings
- Open
config.py
- Set the input IFC file path
- Configure output directories
- Open
-
Generate Topological Relationships
- Run
ifc_to_csv_or_json.py
- This will create space-level topological relationships in JSON format
- Run
-
Create Graph Representation
- Run
ifc_to_graph.py
- Converts the JSON file to a DOT graph file
- Run
-
Analyze Results
- Open the generated DOT file using Gephi
- Perform graph analysis and visualization
Girvan-Newman Clustering
to perform community detection andAvg. Path Length
to perform centrality analysis
3D visualization of the IFC building model
Floor plan view of the IFC model
Space-level topological graph where:
- Different node colors represent different building floors
- Green edges indicate exits
- Red edges represent stair accessibility
- Regular edges show horizontal accessibility between spaces
Centrality analysis performed in Gephi, highlighting nodes with highest betweenness centrality on the right side, indicating key circulation points in the building
For questions and support, please open an issue in the GitHub repository.