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; }