Lag bygning.toml av IFC-modellen og en tilleggsfil
«enok import modell.ifc --tillegg prosjekt.toml» fletter inn det modellen ikke beskriver, som varmeanlegg og tiltak, og rettelser der den mangler noe. Tilleggsfilen kan holde rom utenfor oppvarmet BRA, og et navn med «*» treffer alle elementer det passer på, også i scenarioer. Importen er nå deterministisk: entitetene leses i fast rekkefølge, helningen arealvektes når flater slås sammen, og skrå tak får alltid normalen oppover. Vegger får himmelretningen i navnet, slik at tilleggsfiler kan vise til dem. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
This commit is contained in:
@@ -68,6 +68,17 @@ bygning med store vindusflater fått urealistisk høye innetemperaturer om våre
|
||||
lagret solvarme ville kunstig redusert oppvarmingsbehovet. Grensen settes til den normerte
|
||||
settpunkttemperaturen for kjøling, og luftingen koster ingen energi.
|
||||
|
||||
**Ventilasjon.** Varmegjenvinneren reguleres ned når den ellers ville varmet tilluften over
|
||||
settpunktet. Et anlegg med `kjolebatteri = true` holder tilluften på normert temperatur i
|
||||
driftstiden, slik DiBKs modellbygg for energirammene er regnet, og energien føres som
|
||||
ventilasjonskjøling.
|
||||
|
||||
**Bygningskategorier.** Normerte laster og driftstider er lagt inn for småhus, boligblokk,
|
||||
barnehage, kontorbygg, skolebygg, idrettsbygg og kulturbygg. Driftstidene har timer per døgn,
|
||||
dager per uke og uker per år; lastene gjelder bare på driftsdager, og ukene uten drift legges
|
||||
i ferier. For sykehus, sykehjem, hotell, forretningsbygg, universitet og lett industri er det
|
||||
ikke funnet offentlige kilder, og de krever en egen fil i `--data KATALOG/normerte/`.
|
||||
|
||||
**Tiltak.** Scenarier i samme fil gir før-og-etter-tall og karakterer i én tabell.
|
||||
|
||||
## Installasjon
|
||||
@@ -85,6 +96,7 @@ Typst må være installert for PDF-rapporten. Uten Typst kjører du med `--ingen
|
||||
| --- | --- |
|
||||
| `enok beregn FIL.toml` | Beregner og skriver rapport, CSV og JSON til `ut/<navn>/` |
|
||||
| `enok import FIL` | Leser IFC, gbXML eller regneark og skriver `bygning.toml` |
|
||||
| `enok import FIL --tillegg prosjekt.toml` | Som over, med en tilleggsfil flettet inn (se nedenfor) |
|
||||
| `enok klima --liste` | Lister alle kommuner med klimadata |
|
||||
| `enok klima --kommune Oslo` | Viser nøkkeltall for ett klimasted |
|
||||
| `enok skala smaahus --areal 140` | Viser karakterskalaen med arealkorreksjon |
|
||||
@@ -154,6 +166,7 @@ over_terreng = 0.6 # høyden som står over terreng
|
||||
|
||||
[ventilasjon]
|
||||
type = "naturlig" # naturlig | avtrekk | balansert
|
||||
# kjolebatteri = true # balansert anlegg med kjølebatteri
|
||||
|
||||
[[oppvarming.kilde]]
|
||||
type = "el_kjel" # direkte_el, luft_luft_vp, vaeske_vann_vp, vedovn, fjernvarme, …
|
||||
@@ -167,6 +180,7 @@ endringer.vindu = [{ navn = "Vinduer sør", u_verdi = 0.80, g_verdi = 0.50 }]
|
||||
|
||||
Scenarier flettes inn i bygningsbeskrivelsen: tabeller flettes rekursivt, elementer i lister
|
||||
matches på `navn` eller `type`, nye elementer legges til, og `slett = true` fjerner et element.
|
||||
Et navn med `*` treffer alle elementer det passer på, for eksempel `navn = "Yttervegg*"`.
|
||||
|
||||
Ferdige eksempler ligger i `eksempler/`.
|
||||
|
||||
@@ -178,6 +192,53 @@ Ferdige eksempler ligger i `eksempler/`.
|
||||
| gbXML | Verktøy som eksporterer gbXML | Rom, flater, åpninger, konstruksjoner med lag |
|
||||
| Regneark | *Fil → Eksporter → Export Worksheet* | Enkel CSV med én rad per bygningsdel |
|
||||
|
||||
### Modellen og en tilleggsfil
|
||||
|
||||
Modellen bør være kilden til alt den kan beskrive. Det den ikke beskriver, som varmeanlegg,
|
||||
lekkasjetall og tiltak, og rettelser der den mangler noe, legges i en tilleggsfil som flettes
|
||||
inn ved hver import etter de samme reglene som scenarioene:
|
||||
|
||||
```sh
|
||||
enok import modell.ifc --tillegg prosjekt.toml --ut bygning.toml
|
||||
enok beregn bygning.toml
|
||||
```
|
||||
|
||||
```toml
|
||||
# prosjekt.toml
|
||||
[import]
|
||||
uoppvarmede_rom = ["Kott", "Bod"] # holdes utenfor oppvarmet BRA
|
||||
|
||||
[[flate]]
|
||||
navn = "Yttervegg*" # alle ytterveggene, uansett himmelretning
|
||||
masseklasse = "lett"
|
||||
|
||||
[[flate]]
|
||||
navn = "Roof Slab" # skråtaket mangler U-verdi i modellen
|
||||
u_verdi = 0.55
|
||||
|
||||
[[vindu]]
|
||||
navn = "V-*"
|
||||
g_verdi = 0.76
|
||||
|
||||
[[sone]]
|
||||
navn = "Kjeller"
|
||||
andel_distribusjonstap = 1.0
|
||||
|
||||
[[sone.flate]]
|
||||
navn = "Kjellermur*"
|
||||
over_terreng = 0.6
|
||||
|
||||
[[oppvarming.kilde]]
|
||||
type = "el_kjel"
|
||||
andel_rom = 1.0
|
||||
andel_tappevann = 1.0
|
||||
```
|
||||
|
||||
Flatene får navn etter konstruksjonen i modellen, og vegger får himmelretningen etter navnet
|
||||
(«Yttervegg, sør»), slik at tilleggsfilen kan vise til dem. Importen er deterministisk: samme
|
||||
modell og tilleggsfil gir alltid samme `bygning.toml`. Et mønster som ikke treffer noe, nevnes
|
||||
i merknadene, og et vanlig navn som ikke finnes i modellen, legges til som ny oppføring.
|
||||
|
||||
### Hva enok henter ut av en IFC-modell
|
||||
|
||||
| Opplysning | Hvor den kommer fra |
|
||||
@@ -267,8 +328,9 @@ vertskjøreren `fish` på samme måte som de andre prosjektene:
|
||||
|
||||
### Energirapport fra et byggeprosjekt
|
||||
|
||||
Et prosjektlager med sin egen IFC-modell og `bygning.toml` trenger ikke Rust. Det henter
|
||||
binærfilen fra enoks siste utgivelse:
|
||||
Et prosjektlager med sin egen IFC-modell og tilleggsfil trenger ikke Rust. Det henter
|
||||
binærfilen fra enoks siste utgivelse. Én jobb lager `bygning.toml` av modellen, og en annen
|
||||
beregner rapporten av den:
|
||||
|
||||
```yaml
|
||||
name: Energirapport
|
||||
@@ -276,14 +338,14 @@ on:
|
||||
release:
|
||||
types: [published]
|
||||
jobs:
|
||||
rapport:
|
||||
bygningsmodell:
|
||||
runs-on: fish
|
||||
defaults:
|
||||
run:
|
||||
shell: fish {0}
|
||||
steps:
|
||||
- uses: https://gitea.com/actions/checkout@v6
|
||||
- name: Hent enok og lag rapporten
|
||||
- name: Hent enok og lag bygning.toml
|
||||
env:
|
||||
TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
@@ -293,6 +355,27 @@ jobs:
|
||||
curl -sSL --fail -o enok --header "Authorization: token $TOKEN" \
|
||||
"$GITHUB_SERVER_URL/klingenbergbygg/enok/releases/download/$TAG/enok"
|
||||
chmod +x enok
|
||||
./enok import modell.ifc --tillegg prosjekt.toml --ut bygning.toml
|
||||
- uses: https://gitea.com/actions/upload-artifact@v4
|
||||
with:
|
||||
name: bygningsmodell
|
||||
path: |
|
||||
bygning.toml
|
||||
enok
|
||||
rapport:
|
||||
needs: bygningsmodell
|
||||
runs-on: fish
|
||||
defaults:
|
||||
run:
|
||||
shell: fish {0}
|
||||
steps:
|
||||
- uses: https://gitea.com/actions/checkout@v6
|
||||
- uses: https://gitea.com/actions/download-artifact@v4
|
||||
with:
|
||||
name: bygningsmodell
|
||||
- name: Lag rapporten
|
||||
run: |
|
||||
chmod +x enok
|
||||
./enok beregn bygning.toml --ut dist
|
||||
```
|
||||
|
||||
@@ -310,12 +393,13 @@ Motoren er kontrollert mot uavhengige referanser:
|
||||
| Varmebehov som funksjon av temperaturdifferanse | eksakt lineært |
|
||||
| Varmetapsbudsjett for TEK17-referansebygget | identisk med publisert tabell, 0,69 W/(m²K) |
|
||||
| Normerte energiposter for småhus | varmtvann 25,1, belysning 11,4, teknisk utstyr 17,5 kWh/(m²·år) |
|
||||
| Faste energiposter for yrkesbyggene | belysning, utstyr og varmtvann treffer energibudsjettene i kildene |
|
||||
|
||||
### Kjent avvik
|
||||
|
||||
Standard Norges lanseringseksempel for NS 3031:2025 oppgir 46,2 kWh/(m²·år) romoppvarming og
|
||||
106,4 kWh/(m²·år) netto energibehov for TEK17-referansebygget beregnet med Simien 8. enok
|
||||
beregner 27,2 og 86,7 for den samme bygningen.
|
||||
beregner 27,1 og 86,6 for den samme bygningen.
|
||||
|
||||
Varmetapsbudsjettet, de normerte energipostene, solinnstrålingen og energibalansen stemmer
|
||||
hver for seg, så avviket ligger i hvor stor del av solvarmen som nyttiggjøres. NS 3031:2025
|
||||
@@ -336,7 +420,7 @@ Alle normerte verdier ligger i `data/` og kan overstyres med `--data KATALOG`.
|
||||
| --- | --- |
|
||||
| `skala.toml` | Energikarakterskalaen fra 1.1.2026, Enova SF via Multiconsult-notatet «Grunnlag for ny energikarakterskala», 19.12.2025 |
|
||||
| `vekting.toml` | Vektingsfaktorer etter energimerkeforskriften § 10a med NVEs veileder |
|
||||
| `normerte/*.toml` | Normerte laster, driftstider og settpunkt. Utgangspunktet er NS 3031:2014 Tillegg A; varmtvann er oppdatert til NS 3031:2025-verdien for småhus. Timesprofiler fra NS 3031:2025 kan legges inn i `profil_*`-feltene |
|
||||
| `normerte/*.toml` | Normerte laster, driftstider og settpunkt. Utgangspunktet er NS 3031:2014 Tillegg A; varmtvann for boliger er oppdatert til NS 3031:2025-verdien for småhus. Tillegg A er ikke offentlig, så yrkesbyggverdiene er hentet fra publiserte Simien-utskrifter og DiBK-utredninger. Hver fil oppgir kildene og hvilke verdier som er antatt. Timesprofiler fra NS 3031:2025 kan legges inn i `profil_*`-feltene |
|
||||
| `varmepumpe_spf.toml` | Veiledende årsvarmefaktorer, NS 3031:2014 tabell B.9-3 |
|
||||
| `materialer.toml` | Materialdata og typiske U-verdier per byggeperiode |
|
||||
| `klimakorreksjon.csv` | Klimakorrigeringsfaktorer, Standard Norge SN/K 34, doi 10.5281/zenodo.15041587 |
|
||||
|
||||
Reference in New Issue
Block a user