Extract Storeys from the IFC model with IfcPatch
Feature Group: Extract | IfcOpenShell / IfcPatch
This is provided by IfcOpenShell IfcPatch with the recipe ExtractElement
Data and Spatial visualization
Extractions are twofold: the invisible part is the set of data that pertain to the spatial unit at hand. On these data, processes can be run to provide metrics / indicators (surfaces and volumes, space types and usage, energy transfer, life cycle, reuse, ...).
The visible part is there to help understand the structure of the spatial unit, but also to identify issues, such as components that exibit misclassification and other anomalies.
Submit the processing request
#
# Extract storeys from an IFC using IfcPatch Split Storeys
#
class IfcSplitStoreys_Instruction(BaseModel):
sourceFileURL: str | None = "http://localhost:8002/IFC_SOURCE_FILES/Duplex_A_20110907_optimized.ifc"
class IfcSplitStoreys_Result(BaseModel):
resultPath: str # relative path of the zip file containing all storey files (ifc)
runtime: float | None = 0.0 # in seconds
Extraction of Storeys with IfcPatch
IfcPatch from IfcOpenShell lets split a Building into Storeys, creating one IFC file for each storey.
As an illustration, we have hereunder the extraction of the first level of Duplex_A_20110907_optimized.ifc with IfcPatch. The IFC file used is the one that result from import -> transform to ifcjson -> filter -> transform from ifcjson to ifc. As a result of the filtering, there is no IfcCovering and no IfcFurnishingElement.
BIMCollab display of IfcPatch extraction of Level 1 of Duplex_A_20110907_optimized. As seen hereunder, IfcPatch keeps the spaces of the other levels. Here we highlight IfcSpace A203 Bedroom 2
Hereunder, the display of the selection of Level 1 while highlighting the space A105 Stair that is part of storey Level 1 but is not limited to storey Level 1
The file expectedly lost the furnitures. However the Stairs are missing on both sides.
There is also a display of walls above the top of the first level, but that's an error in the original file where those walls are defined as part of the Level 1 Storey. This is clearly apparent hereunder with the highlight on wall Basic Wall:Interior - Partition (92mm Stud):144518 that is defined as belonging to Storey Level 1 instead of Level 2.
Further to the error on the wall, we can observe that one error creates some extra inconsistencies: the door M_Single-Flush:0864 x 2032mm:0864 x 2032mm:150478 which should be in the above wall appears on Level 2 as disconnected from the wall where it is located. Additionnaly, the wall Basic Wall:Interior - Partition (92mm Stud):144586 in yellow on Level 2 is connected to the wall in Level 1 via IfcRelConnectsPathElements.
This makes clear that a quality control on the source file is always important. It also makes clear that the visualization of the data with an IFC viewer makes it possible to identify inconsistencies that would otherwise be hardly noticeable .