NativeBIM / Demos / Scan to IFC, scored
NativeBIM by NativeCAD
IFC showcase: Scan to IFC, scored
A scan of an office suite, with noise, occlusion and clutter, is rebuilt as walls, slabs and openings in IFC and scored against the original. A real scan is measured.
This model is illustrative. It is built from a script with the dimensions listed under Sources, and it does not represent an existing or as-built building.
3D model
The viewer opens scan-to-ifc.glb, the glTF that NativeBIM writes from the IFC file. The IFC file is scan-to-ifc.ifc.
What is in the model
| Item | Count or value |
|---|---|
| Walls | 9 |
| Doors | 6 |
| Windows | 9 |
| Slabs | 2 |
| Roofs | 1 |
| Spaces | 6 |
| Storeys | 2 |
Requirements
The model does not yet meet every requirement of a building. Each is measured on the model’s geometry by casting rays at it from sample points 0.25 m apart.
| Requirement | What it asks | Result |
|---|---|---|
| Every enclosed area has a floor | Rooms are walked on: an area walls close in at a storey level and nothing to stand on is not a room. | Met |
| The interior is closed in | Walls, doors and windows close every interior floor on all sides; a gap in the walls is a hole in the building. | Not yet: 63 of 3365 samples fail |
| Rain from above is kept off every floor | A roof over every floor, with no gaps between its planes, at its hips and valleys, or where it meets a wall. | Met |
| There is a way in | At least one door in the envelope. | Met |
Drawing set
Draft drawing set generated from the model: scan-to-ifc-drawings.pdf (PDF, 3 sheets).
- G-001 COVER SHEET AND SHEET INDEX
- A-101 LEVEL 1 FLOOR PLAN
- A-601 DOOR, WINDOW, ROOM FINISH AND AREA SCHEDULES
Elevations are not generated yet, so this drawing set has plans and schedules only. Sections are not generated yet, so this drawing set has plans and schedules only.
Scan to IFC, scored
A synthetic scan of the office suite (255818 points from 15 stations, noise 5 mm, 18 furniture boxes, missing patches and occlusion by the building) was rebuilt as IFC from the points alone and scored against the original. Without clutter the rebuild matches 29 of 33 objects (F1 93.6 percent, voxel IoU 90.8 percent). With clutter and the default settings the furniture comes back as 31 extra objects (F1 60.9 percent); with the two settings that leave furniture out it matches 29 of 33 (F1 93.6 percent, voxel IoU 91.2 percent).
| Scan and settings | Points | Furniture boxes | Elements rebuilt | Matched | Precision (percent) | Recall (percent) | F1 (percent) | Voxel IoU (percent) |
|---|---|---|---|---|---|---|---|---|
| No clutter, default settings | 255805 | 0 | 29 | 29 | 100 | 87.9 | 93.6 | 90.8 |
| Clutter, default settings | 255818 | 18 | 59 | 28 | 47.5 | 84.9 | 60.9 | 42.7 |
| Clutter, furniture left out | 255818 | 18 | 29 | 29 | 100 | 87.9 | 93.6 | 91.2 |
| No clutter, furniture left out | 255805 | 0 | 29 | 29 | 100 | 87.9 | 93.6 | 90.8 |
| Class | No clutter: matched | F1 | Clutter, default: matched | F1 | Clutter, furniture left out: matched | F1 | Centre error p95 (m) | Mean 3D IoU (percent) |
|---|---|---|---|---|---|---|---|---|
| IfcWall | 9 of 9 | 100 | 9 of 9 | 62.1 | 9 of 9 | 100 | 0.568 | 85.9 |
| IfcSlab | 2 of 2 | 100 | 1 of 2 | 40 | 2 of 2 | 100 | 0.051 | 89.5 |
| IfcRoof | 1 of 1 | 100 | 1 of 1 | 100 | 1 of 1 | 100 | 0.051 | 91.6 |
| IfcDoor | 5 of 6 | 90.9 | 5 of 6 | 38.5 | 5 of 6 | 90.9 | 0.402 | 80.7 |
| IfcWindow | 9 of 9 | 100 | 9 of 9 | 100 | 9 of 9 | 100 | 0.009 | 98.7 |
| IfcSpace | 3 of 6 | 66.7 | 3 of 6 | 50 | 3 of 6 | 66.7 | 0.165 | 84 |
| Measure | Value |
|---|---|
| Points in the original file | 429894 |
| Points in the copy used (one per 0.2 m cell) | 54200 |
| Planes found (region growing) | 84 |
| vertical / horizontal / sloped | 68 / 10 / 6 |
| Points on a plane (percent of the copy) | 48.4 |
| Plane-fit residual, RMS (m) | 0.013 |
| Plane-fit residual, median / 95th percentile (m) | 0.007 / 0.026 |
| Points of vertical planes within 0.1 m of a rebuilt wall (percent) | 49.3 |
| Storeys found | 4 |
| Rebuilt walls / slabs / roofs | 47 / 35 / 18 |
| Rebuilt doors / windows / spaces | 0 / 0 / 0 |
The model on this page is furnished (desks, chairs, a meeting table, filing cabinets and bookcases). The scans are cast on its shell, the same suite without the loose furniture, and scored against that shell: the scans add their own furniture-like clutter boxes, and a scan rebuild does not write furniture.
Furniture left out means two settings of the rebuild: a horizontal plane under 2.5 m2 is not a level (a table top is not a floor), and a vertical plane whose points stop under 2.4 m above the floor is not a wall face (a cabinet is not a wall). Both are off by default. They suit rooms with walls to the ceiling; on the real scan below they would remove every wall, because its storeys are only 2.3 m high.
Doors and windows pair with their source on plan centres within 0.5 m, so a door can match with a low overlap. The scan does not return doors or glazing: openings are found as holes in the wall faces, so a closed door counts as wall. Rooms are the free space the walls enclose; a room whose walls are not all closed is not found.
The real scan has no source IFC, so it has no precision, recall or F1 here, and none is claimed. What is measured is how well the planes fit the points (residual 0.013 m RMS on 48.4 percent of the points) and how many of the points on vertical planes lie within 0.1 m of a rebuilt wall (49.3 percent). The copy is a map made by a moving handheld camera: its walls are thick and its floors are many (10 horizontal planes give 35 slabs, and 18 roofs), so the rebuilt model describes the points and not a clean building.
The cloud on this page is a plan view drawn at build time, because the viewer draws meshes and not points. The 3D viewer above shows the original model, which is the building that was scanned; the rebuilt IFC is a file below.
The real scan is a copy changed from the original by merging points to one per 0.2 m cell and writing a binary PLY. Source, licence and citation are under Sources and in showcases/scan-to-ifc/third-party/NOTICE.txt.
Sources
Where each dimension comes from. Anything marked as chosen for the sample is an assumption, not a measurement.
- Plan 14.0 m x 9.0 m, wall thicknesses 0.30 m (external) and 0.15 m (partitions), 3.0 m wall height, door and window sizes, the rooms and the furniture sizes. Chosen for this sample. No real building is represented..
- Scan method: seeded ray casting from scanner stations with range noise, occlusion and missing patches; rebuild by region-growing planes, storeys, walls, openings and slabs. NativeBIM docs/SCAN.md (SCN-1).
- Score: precision, recall and F1 per class by optimal assignment on 3D overlap, and the IoU of the two models on a 0.1 m voxel grid. NativeBIM docs/FIDELITY.md (RTF-1); the voxel metric follows BIMStruct3D.
- Real scan: map_indoor_easy.ply of the Hard Point Cloud Localization Dataset, an indoor map recorded with a handheld depth camera, downsampled here to a 0.2 m grid (54200 of 429894 points). Koide, K. (2023). Hard Point Cloud Localization Dataset (v1). Zenodo. Creative Commons Attribution 4.0 International. DOI 10.5281/zenodo.10122133.
- Licence of the real scan: the copy here is changed (points merged to one per 0.2 m cell, written as a binary PLY), as the licence asks to be said. Creative Commons Attribution 4.0 International (CC BY 4.0).
Built 2026-10-27 with node tools/showcase/build.js scan-to-ifc. Re-running the command gives the same bytes.
Notices
NativeBIM is licensed software. It does not provide design, engineering or other professional services. Outputs are drafts for review by the licensed professional of record.
Sheets are marked NOT FOR CONSTRUCTION by default.
Areas are computed by NativeBIM, not a certified BOMA measurement.
IFC and Industry Foundation Classes are marks of buildingSMART International.
NativeBIM is not affiliated with, endorsed by or sponsored by the companies and organizations named here. Product names and marks belong to their owners.
NativeBIM is provided as is, without warranty of any kind. To the extent the law allows, FeatureBoard Labs Incorporated is not liable for indirect, incidental or consequential damages, lost profits or lost data, and its total liability is limited to the license fees paid in the 12 months before the claim. Read the license.