IFC Pipeline is a FastAPI-based service for processing Industry Foundation Classes (IFC) files, integrated with n8n for workflow automation. It provides a set of endpoints for various IFC-related operations, including CSV export, clash detection, and IDS validation.
- IFC to CSV conversion
- Clash detection between IFC models
- IFC validation against IDS (Information Delivery Specification)
- IFC file download from URL
- Integration with n8n for workflow automation
Utilities to implement:
- ifcCsv
- ifcClash
- ifcTester
- ifcDiff
- ifcConvert
- ifc4D
- ifc5D
- ifc2json, using https://github.com/bimaps/ifc2json
- ifcPatch
Other stuff:
- simple way to handle API keys, using config.json
- some clever way to add endpoints for custom python tools, add custom containers for them and
- better Error Handling and Logging
Documentation:
- quick introductory video (1 min)
- video on potential use cases (15 min)
- PowerBI example request to copy/paste
- example n8n workflows
- links to getting started with n8n
The project consists of two main components:
- IFC Pipeline: A FastAPI service that handles IFC file processing operations.
- n8n: A workflow automation tool that orchestrates processes and interacts with the IFC Pipeline service.
- Docker
- Docker Compose
-
Clone the repository:
git clone https://github.com/jonatanjacobsson/ifc-pipeline.git cd ifc-pipeline
-
Build and run the Docker containers:
docker-compose up --build
The IFC Pipeline service will be available at http://localhost:8000
.
The n8n interface will be accessible at http://localhost:5678
.
Use n8n to orchestrate the pipeline. The url to the pipeline inside n8n will be http://ifcpipeline:8000
.
The service exposes the following endpoints:
/health
: Health check endpoint/list_models
: List available IFC models/ifccsv
: Convert IFC to CSV/ifcclash
: Perform clash detection/ifctester
: Validate IFC against IDS/download_ifc
: Download IFC file from URL
For detailed API documentation, visit http://localhost:8000/docs
after starting the service.
n8n is used to create and manage workflows that interact with the IFC Pipeline service. It's simple, extendable and powerful enough for this usecase. Just be aware of the licensing: https://docs.n8n.io/sustainable-use-license/
You can use n8n to:
- Automate IFC processing tasks
- Create complex workflows involving multiple IFC operations
- Integrate IFC processing with other services and tools (!)
Access the n8n interface at http://localhost:5678
to create your user and manage workflows.
The services can be configured using environment variables in the docker-compose.yml
file.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.