Brings the IFC-to-Pascal converter into the monorepo as a pure-logic package plus a Next.js app, replacing the standalone repo that consumed published @pascal-app/* packages (and drifted from their schemas). packages/ifc-converter — pure conversion. Parses IFC via web-ifc and maps elements onto @pascal-app/core node schemas (workspace-linked, so no more version drift). Builds doors/windows, walls, slabs, columns, roofs, stairs, sites/buildings/levels. Validates each node via the real Zod schemas at build time (tryParse) and strips undefined metadata. apps/ifc-converter — the UI: drop zone, example picker, element search, JSON download, and a 3D preview rendered through the real @pascal-app/viewer (registry bootstrap + read-only scene) with a custom toolbar (camera/level/wall/grid/theme), level selector with camera-focus, auto-fit, and selection bridged to an inspector. Conversion specifics worth noting: - Door/window vertical centering (height/2; windows + sill). - Nearest-wall hosting fallback for files lacking IFCRELFILLSELEMENT, preferring walls long enough to contain the opening and clamping the along-wall position so cutouts can't overflow and break wall CSG. - Plain IFCWALL (Brep/mapped geometry) falls back to default height/thickness instead of collapsing to zero-height slivers. - Columns convert as plain structural shafts (no decorative base/capital) sized from the IFC profile. - Beams + items are skipped for now (no Pascal beam type; items need a catalog asset) — counted in the conversion summary. Large example IFCs are fetched from a public bucket at runtime; the four small ones are committed. web-ifc.wasm is copied into public/ on install/dev/build. README flags early-alpha + invites contributions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
90 lines
4.4 KiB
Markdown
90 lines
4.4 KiB
Markdown
# IFC Test Files
|
|
|
|
This directory contains 10 real-world IFC (Industry Foundation Classes) files for testing the IFC to Pascal converter. All files are from open-source repositories and represent actual BIM models exported from professional software like Revit, ArchiCAD, and other authoring tools.
|
|
|
|
## Files
|
|
|
|
### 01-duplex.ifc (1.2 MB)
|
|
- **Source**: [xeokit-sdk](https://github.com/xeokit/xeokit-sdk/tree/master/assets/models/ifc)
|
|
- **Description**: Duplex apartment model (IFC 2x3)
|
|
- **Created**: 2015-11-12
|
|
- **Software**: IFC Tools Project - IFC2x3 Java Toolbox
|
|
- **Use Case**: Residential building, multi-level apartment
|
|
|
|
### 02-schependomlaan.ifc (47 MB)
|
|
- **Source**: [xeokit-sdk](https://github.com/xeokit/xeokit-sdk/tree/master/assets/models/ifc) / buildingSMART Sample Files
|
|
- **Description**: "10 Appartementen Schependomlaan" - Large Dutch apartment complex
|
|
- **Use Case**: Large-scale residential building, complex spatial hierarchy
|
|
- **Note**: One of the most widely used IFC test files in the community
|
|
|
|
### 03-rac-sample-project.ifc (43 MB)
|
|
- **Source**: [xeokit-sdk](https://github.com/xeokit/xeokit-sdk/tree/master/assets/models/ifc)
|
|
- **Description**: RAC (Revit Architecture) Advanced Sample Project
|
|
- **Software**: Autodesk Revit
|
|
- **Use Case**: Large commercial/office building with detailed architectural elements
|
|
|
|
### 04-ifc-open-house.ifc (111 KB)
|
|
- **Source**: [xeokit-sdk](https://github.com/xeokit/xeokit-sdk/tree/master/assets/models/ifc)
|
|
- **Description**: IFC Open House (IFC4 schema)
|
|
- **Use Case**: Small residential building, IFC4 format example
|
|
|
|
### 05-paris-ground-floor.ifc (3.9 MB)
|
|
- **Source**: [xeokit-sdk](https://github.com/xeokit/xeokit-sdk/tree/master/assets/models/ifc)
|
|
- **Description**: 19 rue Marc Antoine Petit - Ground floor, Paris building
|
|
- **Use Case**: European architectural model, single floor representation
|
|
|
|
### 06-sample-castle.ifc (47 MB)
|
|
- **Source**: [youshengCode/IfcSampleFiles](https://github.com/youshengCode/IfcSampleFiles)
|
|
- **Description**: Sample Castle (IFC 2x3)
|
|
- **Use Case**: Historic/complex architectural geometry, demonstration model
|
|
|
|
### 07-revit-architectural.ifc (13 MB)
|
|
- **Source**: [youshengCode/IfcSampleFiles](https://github.com/youshengCode/IfcSampleFiles)
|
|
- **Description**: Revit Architectural model (IFC4)
|
|
- **Software**: Autodesk Revit
|
|
- **Use Case**: Architectural discipline model from Revit
|
|
|
|
### 08-revit-mep.ifc (28 MB)
|
|
- **Source**: [youshengCode/IfcSampleFiles](https://github.com/youshengCode/IfcSampleFiles)
|
|
- **Description**: Revit MEP (Mechanical, Electrical, Plumbing) model (IFC4)
|
|
- **Software**: Autodesk Revit MEP
|
|
- **Use Case**: Building systems - HVAC, electrical, plumbing elements
|
|
|
|
### 09-revit-structural.ifc (11 MB)
|
|
- **Source**: [youshengCode/IfcSampleFiles](https://github.com/youshengCode/IfcSampleFiles)
|
|
- **Description**: Revit Structural model (IFC4)
|
|
- **Software**: Autodesk Revit Structure
|
|
- **Use Case**: Structural engineering discipline - beams, columns, foundations
|
|
|
|
### 10-sample-house.ifc (2.2 MB)
|
|
- **Source**: [youshengCode/IfcSampleFiles](https://github.com/youshengCode/IfcSampleFiles)
|
|
- **Description**: Sample House (IFC4)
|
|
- **Use Case**: Residential building, complete house model with multiple building elements
|
|
|
|
## Schema Versions
|
|
|
|
- **IFC 2x3**: Files 01, 02, 06 (widely used, mature standard)
|
|
- **IFC4**: Files 03, 04, 07, 08, 09, 10 (newer standard with enhanced capabilities)
|
|
|
|
## Testing Coverage
|
|
|
|
These files cover:
|
|
- **Building Types**: Residential (apartments, houses), Commercial (office buildings), Historic (castle)
|
|
- **Disciplines**: Architecture, MEP (mechanical/electrical/plumbing), Structural
|
|
- **Software Sources**: Autodesk Revit, IFC Tools, various BIM authoring tools
|
|
- **Complexity**: From simple houses (111 KB) to large complexes (47 MB)
|
|
- **Geographic Origins**: European (Netherlands, France) and International models
|
|
|
|
## License
|
|
|
|
All files are from open-source repositories and are used for testing purposes. Original licenses apply:
|
|
- xeokit-sdk: [GPL-3.0 License](https://github.com/xeokit/xeokit-sdk/blob/master/LICENSE)
|
|
- youshengCode/IfcSampleFiles: Public repository for testing use
|
|
- buildingSMART samples: Community-provided test files
|
|
|
|
## References
|
|
|
|
- [buildingSMART International](https://www.buildingsmart.org/) - IFC standard organization
|
|
- [xeokit](https://xeokit.io/) - Open-source WebGL-based 3D BIM viewer
|
|
- [IFC.js](https://ifcjs.github.io/info/) - JavaScript library for IFC file processing
|