A modern, high-performance IFC model viewer built with React, TypeScript, and @thatopen/components. This application allows users to upload, visualize, and interact with Building Information Models (BIM) directly in the browser.
- Fast Loading: Utilizes
web-ifcand fragment rendering for efficient handling of large models. - Lighting: Optimized scene lighting (Ambient, Directional, Hemisphere) for clear model visibility.
- Camera Controls:
- Switch between Perspective and Orthographic projection.
- Fit View to automatically focus the camera on the entire model.
- Categorized View: Browse model elements organized by their IFC type (e.g., IfcWall, IfcSlab, IfcWindow).
- Visibility Toggle: Easily show or hide entire categories by clicking the Eye icon next to the group name.
- Element Selection: Click any item in the tree to select and highlight it in the 3D view.
- Detailed Metadata: Inspect identification data (Name, Type, Express ID) for any selected element.
- Raw Properties: View all raw IFC properties associated with the element.
- Contextual Info: Automatically updates when an element is selected in the 3D view or Project Explorer.
- Screenshot: Capture high-quality PNG images of the current 3D view with a single click.
- Clear Selection: Quickly deselect elements to return to a neutral state.
- View Modes: Toggle between camera projections seamlessly.
- Framework: React + Vite
- Language: TypeScript
- BIM Engine: @thatopen/components
- Parser: web-ifc
- Styling: TailwindCSS
- Icons: Lucide React
- State Management: Zustand
- Node.js (v18 or higher recommended)
- MPM
-
Clone the repository:
git clone https://github.com/your-username/openbim-viewer.git cd openbim-viewer -
Install dependencies:
npm install
Note: This will also install the necessary WASM files for
web-ifc. -
Start the development server:
npm run dev
-
Open your browser and navigate to:
http://localhost:5173
- Upload Model: Click the "Upload IFC" button and select an
.ifcfile from your computer. - Navigate:
- Left Click + Drag: Rotate/Orbit
- Right Click + Drag: Pan
- Scroll: Zoom
- Inspect: Click on any 3D element to see its properties in the Right Sidebar.
- Manage: Use the Left Sidebar to hide specific categories (e.g., hide Roofs to see inside).
- Capture: Use the Camera icon in the bottom toolbar to save a screenshot.
MIT
