-
Notifications
You must be signed in to change notification settings - Fork 1
Dutch Compliance
Ifc-Factory includes built-in support for Dutch building regulation property sets: BBL (Besluit bouwwerken leefomgeving), BENG (Bijna Energieneutrale Gebouwen), and Aerius (stikstof).
These functions create standardized IFC property sets and assign them to elements, following Dutch regulatory naming conventions.
BBL (Besluit bouwwerken leefomgeving) replaces the former Bouwbesluit 2012 as the primary building regulation in the Netherlands. The fire safety (brandveiligheid) module covers material fire reaction, fire resistance, and fire spread resistance.
import { createBBLPropertySet } from '@ifc-factory/core';
createBBLPropertySet(model, [wallId1, wallId2, wallId3], {
brandklasse: 'A1',
rookklasse: 's1',
brandwerendheid: 60,
wbdbo: 30,
});| Property | Type | Unit | Description | Standard |
|---|---|---|---|---|
brandklasse |
string |
— | Fire reaction class | NEN-EN 13501-1 |
rookklasse |
string |
— | Smoke production class | NEN-EN 13501-1 |
brandwerendheid |
number |
minuten | Fire resistance duration | NEN-EN 13501-2 |
wbdbo |
number |
minuten | Weerstand tegen branddoorslag en brandoverslag | BBL Afd. 2.2 |
Per NEN-EN 13501-1, materials are classified:
| Class | Description | Example Materials |
|---|---|---|
| A1 | Niet-brandbaar | Beton, staal, steen, glas |
| A2 | Beperkt brandbaar | Gipsplaat, steenwol |
| B | Nauwelijks bijdragend aan brand | Bepaalde houtsoorten met coating |
| C | Beperkt bijdragend aan brand | Hout (sommige soorten) |
| D | Bijdragend aan brand | Onbehandeld hout |
| E | Sterk bijdragend aan brand | Polystyreen (EPS) |
| F | Onbepaald / niet getest | — |
| Class | Description |
|---|---|
| s1 | Nauwelijks rookproductie |
| s2 | Beperkte rookproductie |
| s3 | Onbeperkte rookproductie |
BBL brandveiligheidsdata wordt typisch toegekend aan:
-
IfcWall— wanden (draaggevend en niet-draaggevend) -
IfcSlab— vloeren en daken -
IfcDoor— deuren (branddeuren) -
IfcWindow— ramen -
IfcColumn— kolommen -
IfcBeam— liggers -
IfcCovering— afwerkingen en bekleding -
IfcCurtainWall— vliesgevels
| BBL Afdeling | Onderwerp |
|---|---|
| Afd. 2.1 | Sterkte bij brand |
| Afd. 2.2 | Beperking van het ontstaan van brand (WBDBO) |
| Afd. 2.3 | Beperking van ontwikkeling van brand |
| Afd. 2.4 | Beperking van verspreiding van rook |
| Afd. 2.5 | Vluchten bij brand |
| Afd. 2.6 | Bestrijding van brand |
BENG (Bijna Energieneutrale Gebouwen) is de Nederlandse implementatie van de Europese EPBD-richtlijn (Energy Performance of Buildings Directive). Sinds 1 januari 2021 moeten alle nieuwbouwgebouwen voldoen aan BENG-eisen.
import { createBENGPropertySet } from '@ifc-factory/core';
createBENGPropertySet(model, [buildingId], {
energieBehoefte: 25.0,
primairFossieleEnergie: 50.0,
aandeelHernieuwbareEnergie: 40.0,
});| Property | Type | Unit | BENG Indicator | Description |
|---|---|---|---|---|
energieBehoefte |
number |
kWh/m²/jaar | BENG 1 | Energiebehoefte voor verwarming en koeling |
primairFossieleEnergie |
number |
kWh/m²/jaar | BENG 2 | Primair fossiel energiegebruik |
aandeelHernieuwbareEnergie |
number |
% | BENG 3 | Aandeel hernieuwbare energie |
De hoeveelheid energie die nodig is voor verwarming en koeling, bepaald door de thermische kwaliteit van de gebouwschil (isolatie, kierdichting, oriëntatie, zonwering).
Het totale fossiele energiegebruik voor verwarming, koeling, warm water, ventilatie en verlichting, minus de opbrengst van hernieuwbare energiebronnen.
Het percentage van het totale energiegebruik dat wordt opgewekt met hernieuwbare bronnen (zonnepanelen, warmtepomp, etc.).
| Gebruiksfunctie | BENG 1 (kWh/m²/jr) | BENG 2 (kWh/m²/jr) | BENG 3 (%) |
|---|---|---|---|
| Woonfunctie | 65 | 50 | 50 |
| Bijeenkomstfunctie | 50 | 60 | 30 |
| Celfunctie | 65 | 80 | 30 |
| Gezondheidszorgfunctie | 65 | 120 | 30 |
| Industriefunctie | 65 | 40 | 30 |
| Kantoorfunctie | 50 | 40 | 30 |
| Logiesfunctie | 65 | 80 | 30 |
| Onderwijsfunctie | 50 | 60 | 30 |
| Sportfunctie | 50 | 50 | 30 |
| Winkelfunctie | 50 | 50 | 30 |
BENG-data wordt typisch toegekend aan:
-
IfcBuilding— gebouw (meest gebruikelijk) -
IfcBuildingStorey— per verdieping -
IfcSpace— per ruimte/zone -
IfcZone— thermische zones
| Norm | Onderwerp |
|---|---|
| NTA 8800 | Energieprestatie van gebouwen — Bepalingsmethode |
| NEN 7120 | Energieprestatie van gebouwen (voorganger) |
| EPBD | Energy Performance of Buildings Directive (EU) |
Aerius is het Nederlandse rekeninstrument voor stikstofemissies en -depositie. Sinds de PAS-uitspraak van de Raad van State (2019) is een Aerius-berekening verplicht voor bouwprojecten die stikstof uitstoten in de nabijheid van Natura 2000-gebieden.
import { createAeriusPropertySet } from '@ifc-factory/core';
createAeriusPropertySet(model, [projectId], {
stikstofEmissie: 1.5,
stikstofDepositie: 0.05,
projectId: 'AERIUS-2024-001',
referentieSituatie: 'bestaand',
berekeningsmethode: 'AERIUS Calculator 2024',
});| Property | Type | Unit | Description |
|---|---|---|---|
stikstofEmissie |
number |
kg/jaar | Totale NOx-emissie van het project |
stikstofDepositie |
number |
mol/ha/jaar | Stikstofdepositie op Natura 2000-gebieden |
projectId |
string |
— | AERIUS Calculator project-ID |
referentieSituatie |
string |
— | Referentiesituatie: 'bestaand' of 'vergund'
|
berekeningsmethode |
string |
— | Gebruikte berekeningsmethode |
Door stikstofdata direct in het BIM-model op te nemen:
- Is de relatie tussen ontwerp en milieuimpact traceerbaar
- Kunnen wijzigingen in het ontwerp direct worden doorgerekend
- Is de informatie beschikbaar voor vergunningaanvragen
- Wordt voldaan aan informatie-eisen van bevoegd gezag
| Term | Uitleg |
|---|---|
| NOx | Stikstofoxiden (NO + NO₂) — vrijkomend bij verbranding |
| NH₃ | Ammoniak — voornamelijk uit landbouw |
| Depositie | Neerslaan van stikstof op bodem/vegetatie |
| Natura 2000 | Europees netwerk van beschermde natuurgebieden |
| KDW | Kritische depositiewaarde — drempelwaarde voor schade |
| PAS | Programma Aanpak Stikstof (ongeldig verklaard 2019) |
Aerius-data wordt typisch toegekend aan:
-
IfcProject— projectniveau (meest gebruikelijk) -
IfcSite— locatieniveau
Een compleet voorbeeld met alle drie de compliance-modules:
import {
IfcModel,
createSpatialStructure,
createPropertySet,
assignPropertySet,
createBBLPropertySet,
createBENGPropertySet,
createAeriusPropertySet,
generateIfcGuid,
} from '@ifc-factory/core';
import { writeFileSync } from 'node:fs';
// Model opzetten
const model = new IfcModel();
const { project, site, building, storeys } = createSpatialStructure(model, {
projectName: 'Woningbouw De Straat',
siteName: 'Locatie Amsterdam-Noord',
buildingName: 'Blok A',
storeyNames: ['Begane grond', '1e verdieping', '2e verdieping'],
});
// Wanden aanmaken
const walls: number[] = [];
for (let i = 0; i < 8; i++) {
const wall = model.create('IfcWall', {
GlobalId: generateIfcGuid(),
Name: `Buitenwand ${i + 1}`,
PredefinedType: 'SOLIDWALL',
});
model.containInSpatialStructure(storeys[0].expressID, wall.expressID);
walls.push(wall.expressID);
}
// Deuren aanmaken
const doors: number[] = [];
for (let i = 0; i < 3; i++) {
const door = model.create('IfcDoor', {
GlobalId: generateIfcGuid(),
Name: `Deur ${i + 1}`,
OverallHeight: 2.1,
OverallWidth: 0.9,
});
model.containInSpatialStructure(storeys[0].expressID, door.expressID);
doors.push(door.expressID);
}
// === BBL: Brandveiligheid ===
// Buitenwanden: brandklasse A2, 90 minuten brandwerendheid
createBBLPropertySet(model, walls, {
brandklasse: 'A2',
rookklasse: 's1',
brandwerendheid: 90,
wbdbo: 60,
});
// Deuren: branddeuren EI30
createBBLPropertySet(model, doors, {
brandklasse: 'B',
rookklasse: 's2',
brandwerendheid: 30,
wbdbo: 30,
});
// === BENG: Energieprestatie ===
createBENGPropertySet(model, [building.expressID], {
energieBehoefte: 22.0, // BENG 1: ruim onder de eis van 65
primairFossieleEnergie: 35.0, // BENG 2: ruim onder de eis van 50
aandeelHernieuwbareEnergie: 55.0, // BENG 3: boven de eis van 50%
});
// === Aerius: Stikstof ===
createAeriusPropertySet(model, [project.expressID], {
stikstofEmissie: 0.8,
stikstofDepositie: 0.02,
projectId: 'AERIUS-2024-042',
referentieSituatie: 'bestaand',
berekeningsmethode: 'AERIUS Calculator 2024.1',
});
// === Aanvullende property sets ===
// Thermische eigenschappen
const thermalPset = createPropertySet(model, 'Pset_ThermalProperties', [
{ name: 'Rc-waarde', value: 6.5, type: 'IFCREAL' },
{ name: 'U-waarde', value: 0.15, type: 'IFCREAL' },
{ name: 'Luchtdichtheid', value: 0.6, type: 'IFCREAL' },
]);
assignPropertySet(model, thermalPset.expressID, walls);
// Exporteren
const output = model.toStep();
writeFileSync('woningbouw-compliant.ifc', output);
console.log(`Model: ${model.size} entities`);
console.log('BBL, BENG en Aerius property sets toegekend');- Rijksoverheid — Besluit bouwwerken leefomgeving
- RVO — BENG
- AERIUS Calculator
- BIM Loket — IFC en Nederlandse regelgeving
- core — Where compliance functions are implemented
- Tutorials — Tutorial 5: Dutch Compliance
- API Reference — Full function signatures
Ifc-Factory
Getting Started
Concepts
Packages
API & Reference
Development