This project contains an IDS (Information Delivery Specification) widget for StreamBIM, built using FastHTML.
The IDS Widget is a FastHTML application that provides functionality for validating IFC files against IDS specifications. It integrates with StreamBIM and uses the ifctester service for validation.
idswidget/idswidget.py
: Main FastHTML application fileifctester/ifctester-service.py
: FastAPI service for IFC validation (based on ifcpipeline)idswidget/js/ids-widget.js
: Client-side JavaScript for widget functionalityshared/classes.py
: Shared data modelsidswidget/json-templates
: Handlebar templates to generate the ui from the json coming from the ifctester-service.- Docker configuration for both the widget and ifctester service
- IFC and IDS selection from uploaded StreamBIM documents and validation.
- JSON and HTML report generation
- Integration with StreamBIM for 3D model visualization
- Highlighting of failed entities in the 3D model
- Copying element IDs for use in Revit
This IDS Widget is designed to be integrated into your StreamBIM projects.
For more detailed information on how to use the StreamBIM Widget API, please refer to the official documentation.
-
Clone this repository:
git clone https://github.com/byggstyrning/idswidget.git cd idswidget
-
Build and run the Docker containers:
docker-compose up --build
-
Access the IDS widget at
http://localhost:3000
. -
Host the widget on a publicly accessible url, either self-hosted or on a public cloud service.
-
Contact StreamBIM support (support@rendra.io) to whitelist the widget in your project and let them know the widget URL and what you want to call the widget.
-
Once approved, you'll see the widget in the StreamBIM interface, allowing users to select IFC files and perform IDS validations directly within the StreamBIM environment.
idswidget/
: Contains the main FastHTML applicationifctester/
: Contains the IDS validation serviceshared/
: Contains shared uploads
We welcome contributions to the IDS Widget project! Feel free to fork the repository, make your changes, and open a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
The IFC validation functionality in this project is based on the ifcpipeline. The ifctester service in our project utilizes components from ifcopenshell to perform IFC file validation against IDS specifications.
For more information about the underlying IFC processing capabilities, please refer to the ifcpipeline repository and the ifcopenshell project.
The StreamBIM Widget API (streambim-widget-api.min.js
) is automatically downloaded during the Docker build process and placed in the /js/
directory. This ensures that the widget has access to the necessary StreamBIM integration functions without manual intervention.