From 959db648a90dfc3b6af3326aab0169ec403f0c57 Mon Sep 17 00:00:00 2001 From: Bendik Lynghaug Date: Mon, 21 Sep 2026 15:43:03 +0200 Subject: [PATCH] =?UTF-8?q?Skill=20dekket=20over=20kjelleren=20fra=20dekke?= =?UTF-8?q?t=20p=C3=A5=20bakken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Et dekke like under gulvet i første etasje er himlingen over kjelleren, også når det heter noe med «kjellergulv»; det er et vanlig navn på dekket over kjelleren. Bare navn som sier «på grunn» eller «on grade» gir dekke mot grunnen, ellers avgjør høyden: nederste dekke ligger mot grunnen, resten er etasjeskillere inne i bygningen. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/inndata/ifc.rs | 22 ++++++++++------------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e0cb9fb..d4d64ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -222,7 +222,7 @@ dependencies = [ [[package]] name = "enok" -version = "0.4.4" +version = "0.4.5" dependencies = [ "anyhow", "approx", diff --git a/Cargo.toml b/Cargo.toml index de3bef4..34c6af6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enok" -version = "0.4.4" +version = "0.4.5" edition = "2021" description = "Årlig energiberegning og energirapport for boliger etter NS 3031 (timesmetode, ISO 52016-1)" license = "MIT" diff --git a/src/inndata/ifc.rs b/src/inndata/ifc.rs index 5763e5c..2fa3f86 100644 --- a/src/inndata/ifc.rs +++ b/src/inndata/ifc.rs @@ -1504,20 +1504,15 @@ fn klassifiser( if d.ytre == Some(true) { return Some((FlateType::Gulv, Mot::Ute)); } - // Mot grunnen i det nederste planet, eller når navnet sier det. Høyden av geometrien - // avgjør, siden etasjetilknytningen i en eksport kan være feil. - let paa_grunnen = [ - "kjellergulv", - "on grade", - "på grunn", - "paa grunn", - "såle", - "sale", - ]; - if (d.z - laveste).abs() < 0.5 || paa_grunnen.iter().any(|o| navn.contains(o)) { + // Høyden av geometrien avgjør, siden etasjetilknytningen i en eksport kan være feil. + // Et dekke som ligger på bakken sier det i navnet. Ellers er et dekke like under + // gulvet i første etasje himlingen over kjelleren, og det nederste dekket ligger mot + // grunnen. «Kjellergulv» er ikke nok til å si at dekket ligger på bakken: dekket over + // kjelleren bærer ofte det samme navnet. + let paa_grunnen = ["on grade", "på grunn", "paa grunn", "såle", "sale"]; + if paa_grunnen.iter().any(|o| navn.contains(o)) { return Some((FlateType::Gulv, Mot::Grunn)); } - // Dekket i laveste etasje over en kjeller er grensen mot den uoppvarmede sonen. if e.kjeller.is_some() { let ved_forste_over = e .forste_over_hoyde @@ -1527,6 +1522,9 @@ fn klassifiser( return Some((FlateType::Gulv, Mot::Uoppvarmet)); } } + if (d.z - laveste).abs() < 0.5 { + return Some((FlateType::Gulv, Mot::Grunn)); + } // Dekker lenger opp er etasjeskillere inne i bygningen. return None; }