The Print3DModel module allows the user to make changes to the IFC file and prepare it for small scale 3D printing. Through this plugin it is possible to filter elements and standard properties from the IFC and perform a model validation based on the selected scale and available printer capacity. The printable (
For more details: 3D Printing of BIM Model - Thesis.
In procedings of 34. Forum Bauinformatik:
Conceptual planning and implementation of an automated workflow in scaled 3D printing with the aim of generating printable models from BIM data
The user interface is based on wxWidgets and was made with wxFormBuilder.
- Model Type
Pre-defined filter for model element's type based on target use case. Initialized with "Default". Model types can be edited and current choices will be saved for future use.
- Property
Selected elements can be filtered throught the IFC standard properties "isExternal" and/or "LoadBearing".
Select level of detail for windows and doors.
"Detailed" | "Simplified" |
---|---|
Radio button | Description |
---|---|
"Chosen" |
Show the current selected elements. |
"Inverted" |
Show the elements that have not been selected. |
"All" |
Show all the model's entities. |
-
Scale
Select scale that the model will be scaled down in the viewer. -
Printer
Select printer with its capacity. The printer settings can be edited and will be used for the model validation.
-
Name
Name of the printer. -
Max. Length
Maximum length of the printer's printing plate in centimeter. -
Max. Height
Maximum height of the printer's assembly space in centimeter. -
Min. Thickness
Nozzle size of the printer in milimeter.
Run a model validation for the scaled model with the printer's parameters. Analyse resulting height, legth, thickness and solidity of each element. The printable (
- Problematic Elements
Choice | Description |
---|---|
Ignore error report | Ignore report of problematic elements and export IFC file as it is. |
Exclude elements | Exclude problematic elements from model. |
Correct elements | Attempt to correct problematic elements. Applicable only in specific scenarios. |
- Save Building storey separately
Separate the IFC file per storey and introduce automatically auxiliary geometry to facilitate post-printing assembly.
- Save
Convert resulting IFC file into a preferred 3D printable file format (ASCII or binary *.stl, *.3mg, *.obj).
Method | Description |
---|---|
buildElementList() | Get IFC data from viewer and fill "Elements" parameter. |
updateElements() | Update viewer with selection of entities and/or visualization. |
chooseOpening() | Change ParametricDoorWindow to Simplified or Detailed. Update viewer with selection of "Details". |
changeScale(scale) | Scale elements to selected in "Printing Preparation". |
checkModel(min.Thickness, scale) | Model validation for solidity and minimum thickness. It saves problematic elements. |
checkMeasurements(maxLenght, maxHeight) | Model validation for max. lenght and max. height. |
getPrintingPlate(maxLenght) | Add printing plate to viewer with printer settings information. |
checkModel(min.Thickness, scale) | Model validation for solidity and minimum thickness. |
correctProblematicElements() | Correct problematic elements for specific cases. |
FileSaveFeature(fileformat, name) | Save printable file for model or each storey. |
Parameter | Description | Type |
---|---|---|
Elements | Contains all element types and their entities with selection information. Identified by the entity's type name. | struct |
Problematic Elements | List with oid of entities that were problematic for printing. | integer |
Separated | Model is to be saved separated by storey. | bool |
isExternal | Filter "isExternal" standard property. | bool |
loaded | Filter "LoadBearing" standard property. | bool |
Attribute | Description | Type |
---|---|---|
Name | Name of entity's Type (Example: "IfcWall"). | string |
Selection | Identify if user selected current type. | bool |
Subelements | List with all entities of current type identified by oid. | struct |
Attribute | Description | Type |
---|---|---|
Oid | Objekt ID | integer |
Name | Name of Entity | string |
Selection | Identify if user selected current entity | bool |
Id | Global ID | integer |
Attribute | Description | Type |
---|---|---|
Name | Name of model type | string |
Entity Type List | List of the names of the entity types for the current model type ("IfcWall", "IfcWindow", etc.) | string |
Package Name | Install Command |
---|---|
wxwidgets | vcpkg install wxwidgets triplet=x64-windows |
@inproceedings{Lourenzi.2023,
author = {Shuchen Di, Fernanda Lourenzi, Andreas Geiger, Karl-Heinz Häfele, Svenja Lauble},
title = {Conceptual planning and implementation of an automated workflow in scaled 3D printing with the aim of generating printable models from BIM data},
pages = {209-216},
publisher = {{Ruhr University of Bochum}},
editor = {Sigalov, K. and Hagedorn, P. and Schönfelder, P. and Faltin, B. and Zentgraf, S. and Block, M.},
booktitle = {Proceedings of 34. Forum Bauinformatik},
year = {2023}
}
@software{Print3DModel,
title = {Print3DModel},
author = {{Fernanda Lourenzi}},
url = {https://github.com/KIT-IAI/SDM_Plugin_Print3DModel},
date = {2023}
}