«enok tillegg modell.ifc bygning.toml» skriver forskjellen mellom modellen og en håndredigert
bygningsbeskrivelse som en tilleggsfil: endrede verdier, nye oppføringer, «slett = true» for
det bare modellen har, og scenarioene. Kommandoen kontrollerer at tillegget gjenskaper filen
det er laget av, og sier fra om noe ikke lar seg uttrykke, siden fletting ikke kan fjerne et
enkeltfelt.
«enok import» nekter å skrive over en fil enok ikke har laget selv, og viser til kommandoen
over. --overskriv går forbi.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
«enok beregn modell.ifc» leser modellen, fletter inn en eventuell tilleggsfil og skriver
bygningsbeskrivelsen den kom fram til, i utdatakatalogen, slik at beregningen kan etterprøves.
Importen sier nå hvilke bygningsdeler som mangler U-verdi, ikke bare hvor mange. Vinduer og
dører uten U-verdi i modellen får en typisk verdi for byggeåret, slik flatene alltid har fått,
i stedet for faste 2,4 og 2,0 W/(m²K).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
«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
Modellen for Nordhusstykket 5 viste seg å inneholde langt mer enn importen brukte.
Etasjer
- IfcBuildingStorey med høyde og navn, og tilknytningen av rom og bygningsdeler, sier
hva som er hva. Etasjen «Kjeller» ligger 2,35 m under referansenivået.
- En etasje under terreng settes nå opp som en egen uoppvarmet sone med sine egne
vegger og gulv, og dekket over blir grensen mot den oppvarmede delen.
- Oppvarmet BRA er rommene i etasjene over terreng. Rom som heter kott, bod, loft
eller garasje blir flagget, siden de sjelden er oppvarmet.
- Et dekke kan bare ligge mot grunnen i nederste etasje. Før ble etasjeskillere høyere
opp regnet som gulv mot grunn.
Egenskaper
- Byggeår, bygningskategori, kommune, lekkasjetall, ventilasjonstype, varmegjenvinning,
varmekilde og oppvarmet BRA leses fra et hvilket som helst egenskapssett på bygningen,
tomta eller prosjektet, på norsk eller engelsk. Da kan et postformat i BIM-verktøyet
bære de opplysningene IFC ikke har noen fast plass til.
- Modellen viste seg allerede å ha YearOfConstruction 1950. Bare den ene verdien flytter
den automatiske beregningen fra karakter E til G, siden lekkasjetallet følger byggeåret.
- Masseklasse utledes av materialnavnene, og posisjonen leses av IfcSite.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
EPW-filer er ikke UTF-8. Stedsnavnet «Indre Østfold» kommer som Latin-1-byten 0xD8,
og tolket som UTF-8 ble navnet ødelagt. Da fant ikke oppslaget klimakorrigerings-
faktoren, og energiytelsen ble stående i lokalt klima uten korrigering til Oslo.
Utslaget var 79 kWh/(m²·år) for Nordhusstykket 5, uten annet varsel enn en merknad
inne i rapporten.
Filen leses nå som Latin-1 når den ikke er gyldig UTF-8. Er kommunen oppgitt, gjelder
den for oppslaget, slik at resultatet ikke avhenger av skrivemåten inne i klimafilen.
Merknader fra beregningen skrives også ut på skjermen, ikke bare i rapporten.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
En modell importert fra IFC, gbXML eller regneark beskriver geometrien, men ingen av
formatene sier noe om drift, tetthet eller energiforsyning. Beregningen gikk likevel
gjennom uten et ord om at byggeåret var satt til 2020, at lekkasjetallet fulgte av det,
at hele varmebehovet ble regnet som direkte elektrisk, og at klimaet var Oslo.
For et hus fra 1948 er det forskjellen mellom 0,6 og 8 luftvekslinger per time. Nå
listes slike utfyllingsvalg både på skjermen før beregningen og som merknader i
rapporten. Kontrollen ser også etter en kjeller som er tatt med i klimaskjermen i
stedet for å være beskrevet som egen uoppvarmet sone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
enok leser en bygningsbeskrivelse i TOML, henter typisk klimaår for kommunen,
simulerer 8760 timer etter NS-EN ISO 52016-1 og skriver energirapport, CSV og JSON.
Motor
- Femnodemodell for opake bygningsdeler, tonodemodell for vinduer, luftnode og
strålingsnode per sone, implisitt løsning per time med egen tett LU-løser.
- Varme- og kjølebehov ved eksakt interpolasjon mellom to løsninger, siden systemet
er lineært. Vinduslufting for bygninger uten kjøleanlegg.
- Solberegning etter ISO 52010-1, kontrollert mot pvlib med avvik under 1 prosent.
Beregningsgang
- Beregningspunktene A til E: netto, brutto, tilført, levert per energibærer og
vektet levert energi, med solceller, klimakorrigering og effektbehov.
- Energikarakter etter Enovas skala fra 1.1.2026, med arealkorreksjon.
Inndata
- TOML med scenarier for tiltak, og import fra IFC, gbXML og regneark.
- Normerte verdier, karakterskala, vektingsfaktorer og klimadata i data/,
som kan overstyres med --data.
Kontroll
- Stasjonært varmetap mot U·A·ΔT innenfor 2 prosent, energibalansen innenfor
2 prosent, varmetapsbudsjettet for TEK17-referansebygget identisk med publisert
tabell. Kjent avvik i romoppvarming mot Simien 8 er dokumentert i README.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o