IfcLCA
Provides access to environmental impact material data sourced from open data published by Koordinationskonferenz der Bau- und Liegenschaftsorgane der öffentlichen Bauherren.
https://github.com/ifclca/ifclca
Category: Industrial Ecology
Sub Category: Life Cycle Assessment
Keywords
ifc ifcopenshell lca pyodide
Last synced: about 21 hours ago
JSON representation
Repository metadata
Open Source Life Cycle Assessment for Built Environment with Industry Foundation Classes
- Host: GitHub
- URL: https://github.com/ifclca/ifclca
- Owner: IfcLCA
- License: agpl-3.0
- Created: 2024-03-15T20:59:45.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-15T17:02:14.000Z (3 months ago)
- Last Synced: 2026-05-15T14:04:43.203Z (4 days ago)
- Topics: ifc, ifcopenshell, lca, pyodide
- Language: TypeScript
- Homepage: https://ifclca.com/
- Size: 2.79 MB
- Stars: 37
- Watchers: 1
- Forks: 5
- Open Issues: 8
- Releases: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
Overview
IfcLCA leverages openBIM and Open Data Standards to analyze the environmental impact of construction projects through IFC files using Swiss KBOB environmental impact data from lcadata.ch.
✨ Features
- 🏗️ Project Dashboard - manage multiple building projects and track their progress.
- ⚙️ IFC Processing - upload and parse IFC files; inspect elements and materials.
- 📚 Materials Library - centralize materials data across projects.
- 📈 LCA Charts - visualize environmental impacts; export IFC with LCA results and get nice charts.
🚀 Typical Workflow
- Export your Model
- IFC version: preferably IFC4 (2x3 works too)
- Include all Ifc Base Quantities (NetVolume or GrossVolume)
- Include assembly layers (prefer
IfcMaterialLayerSet,IfcMaterialConstituentSetalso supported)
- Upload
- Drop your IFC file in the upload area or click to browse
- Files are processed locally and never stored on our servers
- Map Materials
- Search the full swiss KBOB database
- Combine your materials with environmental impact data
- Analyze Results
- View impact metrics: GWP, PEnr, UBP and material breakdown
- Use charts to identify key contributors
- Enter project EBF (in m²) to toggle between absolute and relative emissions views (explanation below)
- Export IFC with LCA Results
- Upload your original IFC file to embed the LCA results
- LCA data (GWP, UBP, PENRE) is added as IFC property sets for each element
- The exported IFC can be used for further analysis, optimization, and interoperability with other BIM tools
🛠 Tech Stack
- IfcOpenShell WASM for Ifc parsing
- Next.js & React for the frontend
- Tailwind CSS for styling
- Clerk for authentication
- MongoDB for database
- TypeScript throughout the codebase
🌍 Open Source
IfcLCA is and will always be Open Source. Sustainability is a team effort and requires trust and transparency. The project is released under the AGPL-3.0 license.
🔐 Data & Privacy
- Client-side parsing: IFC files are parsed entirely in your browser using IfcOpenShell WASM
- No file storage: Your original IFC files are never uploaded or stored on our servers
- Stored data: Only derived metadata (elements, volumes, materials, classifications, and calculated indicators) is stored in the database
- Upload records: Filename and processing metadata are stored to track upload history
- Deletion: You can delete uploads and their derived data; orphaned materials are automatically cleaned up
📦 Model Requirements
- IFC version: IFC4 preferred (IFC2x3 is supported)
- Base Quantities: export element volumes via Ifc Base Quantities (NetVolume or GrossVolume)
- Materials: include assembly layers when possible (supports
IfcMaterialLayerSetandIfcMaterialConstituentSet) - Classification: provide element classification codes for amortization lookup (see below)
🧾 Classification Support
- Supported systems: currently eBKP-H is supported for amortization years
- Unknown/missing classification: falls back to a sensible default amortization period
- Classification is read from your IFC model; set or correct it in your authoring tool or use ifcclassify.com
📐 Emissions Calculation
IfcLCA computes three metrics using Swiss KBOB data:
- GWP (Global Warming Potential)
- UBP (Environmental Impact Points)
- PENRE (Primary Energy Non‑Renewable)
Absolute emissions
- Computed per material and summed per project
- Formula (per material):
$$
\text{absolute}{\text{metric}} = \text{volume} \times \text{density} \times \text{factor}{\text{metric}}
$$
- Useful for total project impacts
Relative emissions (annual, per area)
- Normalizes absolute emissions by amortization years and area
- Formula:
$$
\text{relative} = \frac{\text{absolute}}{\text{amortizationYears} \times \text{area}}
$$
- Requires a valid calculation area and classification to derive amortization years
Units
- Absolute
- GWP:
kg CO₂ eq - UBP:
UBP - PENRE:
kWh oil-eq
- GWP:
- Relative (per area and year; area unit defaults to
m²)- GWP:
kg CO₂ eq/<area>·a - UBP:
UBP/<area>·a - PENRE:
kWh oil-eq/<area>·a
- GWP:
⚠️ Known Limitations & Roadmap
- No built-in 3D viewer: Currently no IFC geometry visualization
- Classification systems: Only eBKP-H is supported
- Comparative analysis: Project comparison and benchmarking features are in development
- Aditional environmental impact data sources: Ökobaudat coming soon...
Owner metadata
- Name: IfcLCA
- Login: IfcLCA
- Email: louis@lt.plus
- Kind: organization
- Description: Opensource Life Cycle Assessment for Built Environment using Industry Foundation Classes
- Website: www.ifclca.com
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/166899267?v=4
- Repositories: 1
- Last ynced at: 2024-06-22T17:07:49.756Z
- Profile URL: https://github.com/IfcLCA
GitHub Events
Total
- Delete event: 44
- Pull request event: 66
- Fork event: 1
- Issues event: 13
- Watch event: 12
- Issue comment event: 65
- Push event: 106
- Pull request review comment event: 61
- Pull request review event: 53
- Create event: 41
- Commit comment event: 19
Last Year
- Delete event: 43
- Pull request event: 60
- Fork event: 1
- Issues event: 12
- Watch event: 7
- Issue comment event: 64
- Push event: 98
- Pull request review comment event: 61
- Pull request review event: 53
- Create event: 35
- Commit comment event: 19
Committers metadata
Last synced: 3 days ago
Total Commits: 34
Total Committers: 3
Avg Commits per committer: 11.333
Development Distribution Score (DDS): 0.088
Commits in past year: 34
Committers in past year: 3
Avg Commits per committer in past year: 11.333
Development Distribution Score (DDS) in past year: 0.088
| Name | Commits | |
|---|---|---|
| Louis Trümpler | 7****e | 31 |
| dependabot[bot] | 4****] | 2 |
| vercel[bot] | 3****] | 1 |
Issue and Pull Request metadata
Last synced: 16 days ago
Total issues: 15
Total pull requests: 76
Average time to close issues: 9 months
Average time to close pull requests: about 7 hours
Total issue authors: 2
Total pull request authors: 3
Average comments per issue: 0.0
Average comments per pull request: 0.58
Merged pull request: 44
Bot issues: 0
Bot pull requests: 8
Past year issues: 1
Past year pull requests: 32
Past year average time to close issues: N/A
Past year average time to close pull requests: about 8 hours
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 0.0
Past year average comments per pull request: 1.16
Past year merged pull request: 11
Past year bot issues: 0
Past year bot pull requests: 1
Top Issue Authors
- louistrue (14)
- Hygros (1)
Top Pull Request Authors
- louistrue (67)
- dependabot[bot] (8)
- Moult (1)
Top Issue Labels
- feature (8)
- enhancement (3)
- bug (2)
- documentation (1)
Top Pull Request Labels
- codex (20)
- dependencies (8)
- javascript (3)
- python (1)
- feature (1)
Dependencies
- 714 dependencies
- @types/canvas-confetti ^1.9.0 development
- @types/mongoose ^5.11.97 development
- @types/node ^20.17.6 development
- @types/react ^18.3.12 development
- @types/react-dom ^18.3.1 development
- autoprefixer ^10.4.20 development
- eslint ^8 development
- eslint-config-next 14.1.0 development
- postcss ^8.4.47 development
- tailwindcss ^3.4.14 development
- ts-node ^10.9.2 development
- typescript ^5.6.3 development
- @clerk/nextjs ^6.3.0
- @fontsource/nunito-sans ^5.2.5
- @hookform/resolvers ^3.9.1
- @neondatabase/serverless ^0.10.2
- @radix-ui/react-alert-dialog ^1.1.2
- @radix-ui/react-avatar ^1.0.4
- @radix-ui/react-checkbox ^1.1.2
- @radix-ui/react-dialog ^1.1.2
- @radix-ui/react-dropdown-menu ^2.1.2
- @radix-ui/react-icons ^1.3.1
- @radix-ui/react-label ^2.1.0
- @radix-ui/react-navigation-menu ^1.2.1
- @radix-ui/react-popover ^1.1.2
- @radix-ui/react-progress ^1.1.0
- @radix-ui/react-radio-group ^1.2.1
- @radix-ui/react-scroll-area ^1.2.0
- @radix-ui/react-select ^2.1.2
- @radix-ui/react-separator ^1.1.0
- @radix-ui/react-slider ^1.2.1
- @radix-ui/react-slot ^1.1.0
- @radix-ui/react-switch ^1.1.1
- @radix-ui/react-tabs ^1.1.1
- @radix-ui/react-toast ^1.2.15
- @radix-ui/react-tooltip ^1.1.4
- @react-three/drei ^9.115.0
- @react-three/fiber ^8.17.10
- @tanstack/react-table ^8.20.5
- @tanstack/react-virtual ^3.10.9
- @vercel/blob ^0.26.0
- canvas-confetti ^1.9.3
- class-variance-authority ^0.7.0
- classnames ^2.5.1
- clsx ^2.1.1
- cmdk ^1.0.0
- cross-spawn ^7.0.5
- date-fns ^4.1.0
- framer-motion ^12.16.0
- fuse.js ^7.0.0
- lucide-react ^0.454.0
- mongoose ^8.15.0
- nanoid ^3.3.8
- next 15.3.3
- next-themes ^0.4.3
- posthog-js ^1.249.3
- posthog-node ^4.18.0
- react ^18.2.0
- react-day-picker ^9.11.1
- react-dom ^18.2.0
- react-dropzone ^14.3.5
- react-error-boundary ^4.1.2
- react-hook-form ^7.53.1
- react-intersection-observer ^9.16.0
- recharts ^2.13.3
- tailwind-merge ^2.5.4
- tailwindcss-animate ^1.0.7
- three ^0.159.0
- zod ^3.23.8
- zustand ^5.0.1
Score: 4.90527477843843