A simple tool to add classifications to your IFC models 🛠️
Working with IFC files? Then you know how hard it can be to get everyone to consistently classify model elements. Whether you're using Uniclass, eBKP-H, or your own system, getting teams to properly implement IfcClassificationReference
is often a pain.
After initially thinking about how to fully automating this process, I quickly realized that regulations, responsibilities across disciplines, and accountability requirements make that approach less practical.
IFC Classifier helps you classify IFC elements without needing expert knowledge of BIM authoring tools. It's designed to make the process simpler and more repeatable.
Note: This is a Work In Progress and open source under the AGPL v3 license.
The application follows a modern web architecture with:
- Frontend: Next.js + React with TypeScript for type safety
- 3D Visualization: Three.js with React Three Fiber for IFC model rendering
- IFC Processing: web-ifc for parsing and IfcOpenShell via Pyodide/WASM for advanced operations
- Styling: Tailwind CSS with Shadcn/ui components for a consistent design system
- Privacy-First: All processing happens locally in the browser - no data leaves your device
-
🖼️ IFC Viewer:
- View IFC models in your browser
- Standard navigation (orbit, pan, zoom)
- Easy model exploration through spatial tree
- Check element properties
- Hide/show elements as needed
-
📖 IFC Schema Documentation:
- Real-time schema previews: Hover over IFC class names to see instant schema information
- Full documentation reader: Click "View Schema" to open comprehensive IFC documentation
-
📚 Classification Systems:
- Use ready-made systems:
- 🇨🇭 Swiss CRB eBKP-H
- 🇬🇧 Uniclass
- Or create your own custom system
- Assign colors to visualize different classifications
- Import or export classification sets as JSON or Excel files
- Use ready-made systems:
-
⚙️ Rule-Based Sorting:
- Create rules to automatically sort elements
- Based on properties like:
IsExternal
,LoadBearing
, etc. - Example: "Put all external, non-load bearing walls (except basement) into category C02.01"
- See rule results live on your model
- Import rules from JSON or Excel for easy setup
- Export rules to JSON or Excel for sharing
-
✍️ Export Your Work:
- Save your model with proper
IfcClassificationReference
entities - Use the improved file in other BIM tools
- Save your model with proper
-
🔎 Search & Filter:
- Search across the model tree or entire 3D scene
- Cancel long searches and track progress
- Quickly hide or unhide found elements
-
📋 Property-Based Classification:
- Support for classification codes stored in property sets (Psets)
- Automatically map full classifications from existing Psets
- Extract classifications from existing property values in the model
- Flexible property set name matching with wildcard support
-
🗣️ Multi-Language UI:
- English, French, Italian and German built in
- Switch languages from the menu or settings panel
- Add new translations via simple JSON files
-
🔐 Privacy First:
- All processing happens locally in your browser
- IFC data never leaves your device
- Open DevTools → Network to confirm no IFC file is uploaded
July 10, 2025:
- README update, added architecture overview diagrams
May 23, 2025:
- Added comprehensive schema preview and documentation reader for IFC classes
- Integrated schema preview tooltips and "View Schema" links
May 22, 2025:
- Added search across the 3D view and model explorer with progress feedback.
- Implemented automatic mapping of classifications from property sets with wildcard support.
- Introduced central IFC property caching for faster lookups.
- Improved language selection menu and settings layout.
- Refined properties panel and overall UI styling.
May 21, 2025:
- Added ability to import rule definitions from Excel (.xlsx) files.
- Added ability to export rules to Excel for easier sharing.
May 20, 2025:
- Enhanced user interface with footer improvements.
- Added settings for managing rules and default classifications.
- Implemented IFC GUID display with a copy-to-clipboard feature in the properties panel.
- Major refactor of classification and IFC model components for better performance and readability.
- Fixed an issue to preserve model coordinates when loading new IFC files.
- Improved layout and introduced a rule management menu for easier access.
- Added functionality to import and export classifications as JSON files.
- Added favicons for better cross-browser compatibility.
- Enhanced property extraction and rendering from IFC models.
May 19, 2025:
- Introduced 3D selection-based classification, allowing manual assignment of classifications to selected elements.
- Refactored and cleaned up code in ModelInfo and SpatialTreePanel components.
- Fixed a bug related to null values for IFC class names in the spatial tree.
- Added display for material sections and improved IFC model property extraction.
May 18, 2025:
- Initial project setup and README creation.
Make IFC classification simple enough that anyone can do it properly.
- Next.js
- React
- TypeScript
- Three.js / @react-three/fiber
- web-ifc
- IfcOpenShell via Pyodide/WASM
- Tailwind CSS
- Shadcn/ui
- Radix UI - For accessible UI primitives
GNU Affero General Public License v3.0 - See the LICENSE file for details.