INTERLIS 2.4; !!======================================================================================== !! Copyright (c) 2021, GIS-Fachstelle des Amtes für Geoinformation Kanton Basel-Landschaft !! All rights reserved. !! !! Datum | Version | Autor/in | Aenderung !!---------------------------------------------------------------------------------------- !! 25.03.2021 | 1.0 | Jean-Marc Buttliger | Ersterstellung basierend auf den Vorlagen !! | | | der Kantone BS und ZH !! 20.04.2021 | 1.0 | Jean-Marc Buttliger | Ergänzung BLMultiPunkt2D !! 20.04.2021 | 1.0 | Karsten Deininger | URL in Modelldeklaration angepasst !! 07.06.2021 | 1.0 | Karsten Deininger | Mappings für Geometrien ergänzt !! 22.06.2021 | 1.0 | Karsten Deininger | Angaben zu CRS ergänzt !! 27.10.2022 | 2.0 | Karsten Deininger | Separate Geometrieklassen mit und ohne !! | | | Kreisbögen !! 26.06.2025 | 3.0 | Roman Meyer | Umstellung auf Interlis 2.4 !! | | | Umbenennung zu ch_bl_basis_v3_0 !! | | | Domains für EGID, PLZ, BFSNr !! | | | Aktualisierung Geometriedefinitionen !! | | | BL-Koordinatenraum definiert !! | | | Kataloge für PLZ, BFSNr etc !!======================================================================================== !!@ technicalContact=mailto:support.gis@bl.ch !!@ furtherInformation=https://geo.bl.ch TYPE MODEL ch_bl_basis_v3_0 (de) AT "http://models.geo.bl.ch/BL/" VERSION "2025-06-26" = IMPORTS INTERLIS, Units, CoordSys, GeometryCHLV95_V2; REFSYSTEM BASKET BCoordSys ~ CoordSys.CoordsysTopic OBJECTS OF GeoCartesian2D: CHLV95 OBJECTS OF GeoHeight: SwissNormalAlt; DOMAIN !! 1. Allgemeine Wertebereiche BL_HistJahr = -500 .. 2999 [INTERLIS.Y]; BL_Jahr EXTENDS BL_HistJahr = 1900 .. 2999 [INTERLIS.Y]; BL_Datum = FORMAT INTERLIS.XMLDate "1900-01-01" .. "2999-12-31"; BL_LexLink = 1 .. 2147483647; BL_RrbNr = TEXT*9; !! Format YYYY-nnnn !! 2. Nationale Wertebereiche EGID, BFS-Nummer, PLZ !! Eidg. Gebäude-, Grundstücks- und andere ID; EGID, EGRID, ESID, EWID, EDID !! https://www.ech.ch/sites/default/files/dosvers/hauptdokument/STAN_d_DEF_2022-02-06_eCH-0129_V6.0.0_Objektwesen.pdf !! https://www.housing-stat.ch/de/help/42.html CH_Egid = 1 .. 900000000; !! Eidgenössischer Gebäudeidentifikator BL_Egid EXTENDS CH_Egid = 312000 .. 248999999 CONSTRAINTS EinschraenkungEgidBl: (THIS >= 312000 AND THIS <= 435965) OR (THIS >= 1365548 AND THIS <= 2362963) OR (THIS >= 3000000 AND THIS <= 3184755) OR (THIS >= 9001012 AND THIS <= 9072366) OR (THIS >= 11513663 AND THIS <= 11528876) OR (THIS >= 245000001 AND THIS <= 248999999) ; !! Aktuelle BL-EGID CH_Egrid = TEXT*14; !! z.B. CH627781288948 CH_Esid = 10000000 .. 90000000; !! Eidgenössischer Strassenidentifikator CH_Ewid = 1 .. 900; !! Eidgenössischer Wohnungsidentifikator CH_Edid = 0 .. 90; !! Eidgenössischer Eingangsidentifikator !! BFS-Nummern !! https://www.bfs.admin.ch/bfs/de/home/grundlagen/agvch/identifikatoren-gemeinde.html !! https://www.bfs.admin.ch/bfs/de/home/grundlagen/agvch/historisiertes-gemeindeverzeichnis.assetdetail.18484929.html CH_BfsNrKt = 1 .. 26; !! BL = 13 CH_BfsNrBez = 101 .. 2699; BL_MitUmkantoneBfsNrBez EXTENDS CH_BfsNrBez = 1101 .. 2603 CONSTRAINTS EinschraenkungBfsBezUmkantone: (THIS >= 1101 AND THIS <= 1110) OR !! BFS-Nr. SO (THIS == 1200 ) OR !! BFS-Nr. BS (THIS >= 1301 AND THIS <= 1305) OR !! BFS-Nr. BL (THIS >= 1901 AND THIS <= 1911) OR !! BFS-Nr. AG (THIS >= 2601 AND THIS <= 2603); !! BFS-Nr. JU BL_BfsNrBez EXTENDS CH_BfsNrBez = 1301 .. 1305; CH_BfsNrGde = 1 .. 9999; BL_MitUmkantoneBfsNrGde EXTENDS CH_BfsNrGde = 2401 .. 6999 CONSTRAINTS EinschraenkungBfsGdeUmkantone: (THIS >= 2401 AND THIS <= 2699) OR !! BFS-Nr. SO (THIS >= 2701 AND THIS <= 2759) OR !! BFS-Nr. BS (THIS >= 2761 AND THIS <= 2899) OR !! BFS-Nr. BL (THIS >= 4001 AND THIS <= 4399) OR !! BFS-Nr. AG (THIS >= 6701 AND THIS <= 6999); !! BFS-Nr. JU BL_BfsNrGde EXTENDS CH_BfsNrGde = 2761 .. 2899; !! Postleitzahlen (PLZ) !! https://de.wikipedia.org/wiki/Postleitzahl_(Schweiz) !! https://www.swisstopo.admin.ch/de/amtliches-ortschaftenverzeichnis CH_Plz = 1000 .. 9999; BL_MitUmkantonePlz EXTENDS CH_Plz = 2300 .. 8999 CONSTRAINTS EinschraenkungPlzUmkantone: (THIS >= 2300 AND THIS <= 2399) OR !! JU (THIS >= 2500 AND THIS <= 2599) OR !! SO (THIS >= 2700 AND THIS <= 2999) OR !! BL, JU, SO (THIS >= 3200 AND THIS <= 3399) OR !! SO (THIS >= 4000 AND THIS <= 5799) OR !! AG, BL, BS, SO (THIS >= 6000 AND THIS <= 6099) OR !! AG (THIS >= 6200 AND THIS <= 6299) OR !! AG (THIS >= 8100 AND THIS <= 8199) OR !! AG (THIS >= 8900 AND THIS <= 8999); !! AG BL_Plz EXTENDS CH_Plz = 2814 .. 4719 CONSTRAINTS EinschraenkungPlzBL: (THIS == 2814) OR !! Gemeinde Roggenburg (THIS >= 4052 AND THIS <= 4497) OR !! restliches Baselbiet (THIS == 4634) OR !! Gemeinde Läufelfingen (THIS == 4719); !! Gemeinde Lauwil !! 3. Geografische und geometrische Definitionen !! 3.1 Wertebereiche für Koordinaten, Geometrie Punkt CH_Punkt EXTENDS GeometryCHLV95_V2.Coord2 = COORD !! identische Definition wie in GeometryCHLV95_V2 2460000.000 .. 2870000.000 [INTERLIS.m] {CHLV95[1]}, 1045000.000 .. 1310000.000 [INTERLIS.m] {CHLV95[2]}, ROTATION 2 -> 1; BL_Punkt EXTENDS CH_Punkt = COORD 2581000.000 .. 2650000.000 [INTERLIS.m] {CHLV95[1]}, 1233000.000 .. 1283000.000 [INTERLIS.m] {CHLV95[2]}, ROTATION 2 -> 1; CH_Punkt3D EXTENDS GeometryCHLV95_V2.Coord3 = COORD !! identische Definition wie in GeometryCHLV95_V2 2460000.000 .. 2870000.000 [INTERLIS.m] {CHLV95[1]}, 1045000.000 .. 1310000.000 [INTERLIS.m] {CHLV95[2]}, -200.000 .. 5000.000 [INTERLIS.m] {SwissNormalAlt[1]}, ROTATION 2 -> 1; BL_Punkt3D EXTENDS CH_Punkt3D = COORD 2581000.000 .. 2650000.000 [INTERLIS.m] {CHLV95[1]}, 1233000.000 .. 1283000.000 [INTERLIS.m] {CHLV95[2]}, -200.000 .. 5000.000 [INTERLIS.m] {SwissNormalAlt[1]}, ROTATION 2 -> 1; !! 3.2 Höhen + Orientierung BL_Hoehe = -200.000 .. 5000.000 [INTERLIS.m]; !! {SwissNormalAlt[1]} BL_OrthometrischeHoehe = -200.000 .. 5000.000 [INTERLIS.m]; !! {SwissOrthometricAlt[1]} BL_Ori = 0.0 .. 359.9 CIRCULAR [Units.Angle_Degree] ; !! geografische Notation, 0° = Nord, 90° = Ost !! 3.3 Geometrie MultiPunkt CH_MultiPunkt EXTENDS GeometryCHLV95_V2.MultiPoint = MULTICOORD 2460000.000 .. 2870000.000 [INTERLIS.m] {CHLV95[1]}, 1045000.000 .. 1310000.000 [INTERLIS.m] {CHLV95[2]}, ROTATION 2 -> 1; BL_MultiPunkt EXTENDS CH_MultiPunkt = MULTICOORD 2581000.000 .. 2650000.000 [INTERLIS.m] {CHLV95[1]}, 1233000.000 .. 1283000.000 [INTERLIS.m] {CHLV95[2]}, ROTATION 2 -> 1; CH_MultiPunkt3D EXTENDS GeometryCHLV95_V2.MultiPoint3D = MULTICOORD 2460000.000 .. 2870000.000 [INTERLIS.m] {CHLV95[1]}, 1045000.000 .. 1310000.000 [INTERLIS.m] {CHLV95[2]}, -200.000 .. 5000.000 [INTERLIS.m] {SwissNormalAlt[1]}, ROTATION 2 -> 1; BL_MultiPunkt3D EXTENDS CH_MultiPunkt3D = MULTICOORD 2581000.000 .. 2650000.000 [INTERLIS.m] {CHLV95[1]}, 1233000.000 .. 1283000.000 [INTERLIS.m] {CHLV95[2]}, -200.000 .. 5000.000 [INTERLIS.m] {SwissNormalAlt[1]}, ROTATION 2 -> 1; !! 3.4 Geometrie Linie CH_Linie = POLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.Line BL_Linie = POLYLINE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt; CH_LinieOhneBogen = POLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.LineWithoutArcs BL_LinieOhneBogen = POLYLINE WITH (STRAIGHTS) VERTEX BL_Punkt; CH_Linie3D = POLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D; !! entspricht GeometryCHLV95_V2.LineWithAltitude BL_Linie3D = POLYLINE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D; CH_LinieOhneBogen3D = POLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt3D; !! entspricht GeometryCHLV95_V2.LineWithAltitudeWithoutArcs BL_LinieOhneBogen3D = POLYLINE WITH (STRAIGHTS) VERTEX BL_Punkt3D; !! 3.5 Geometrie gerichtete Linie CH_GerichteteLinie = DIRECTED POLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.DirectedLine BL_GerichteteLinie = DIRECTED POLYLINE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt; CH_GerichteteLinieOhneBogen = DIRECTED POLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.DirectedLineWithoutArcs BL_GerichteteLinieOhneBogen = DIRECTED POLYLINE WITH (STRAIGHTS) VERTEX BL_Punkt; CH_GerichteteLinie3D = DIRECTED POLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D; !! entspricht GeometryCHLV95_V2.DirectedLineWithAltitude BL_GerichteteLinie3D = DIRECTED POLYLINE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D; CH_GerichteteLinieOhneBogen3D = DIRECTED POLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt3D; !! entspricht GeometryCHLV95_V2.DirectedLineWithAltitudeWithoutArcs BL_GerichteteLinieOhneBogen3D = DIRECTED POLYLINE WITH (STRAIGHTS) VERTEX BL_Punkt3D; !! 3.6 Geometrie MultiLinie CH_MultiLinie = MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.MultiLine BL_MultiLinie = MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt; CH_MultiLinieOhneBogen = MULTIPOLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.MultiLineWithoutArcs BL_MultiLinieOhneBogen = MULTIPOLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt; CH_MultiLinie3D = MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D; BL_MultiLinie3D = MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D; CH_MultiLinieOhneBogen3D = MULTIPOLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt3D; BL_MultiLinieOhneBogen3D = MULTIPOLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt3D; !! 3.7 Geometrie gerichtete MultiLinie CH_GerichteteMultiLinie = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.MultiDirectedLine BL_GerichteteMultiLinie = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt; CH_GerichteteMultiLinieOhneBogen = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt; !! entspricht GeometryCHLV95_V2.MultiDirectedLineWithoutArcs BL_GerichteteMultiLinieOhneBogen = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS) VERTEX BL_Punkt; CH_GerichteteMultiLinie3D = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D; !! entspricht GeometryCHLV95_V2.MultiDirectedLine BL_GerichteteMultiLinie3D = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D; CH_GerichteteMultiLinieOhneBogen3D = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS) VERTEX CH_Punkt3D; !! entspricht GeometryCHLV95_V2.MultiDirectedLineWithoutArcs BL_GerichteteMultiLinieOhneBogen3D = DIRECTED MULTIPOLYLINE WITH (STRAIGHTS) VERTEX BL_Punkt3D; !! 3.8 Geometrie Fläche CH_Flaeche = SURFACE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; !! entspricht GeometryCHLV95_V2.Surface BL_Flaeche = SURFACE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_FlaecheOhneBogen = SURFACE WITH (STRAIGHTS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; !! entspricht GeometryCHLV95_V2.SurfaceWithoutArcs BL_FlaecheOhneBogen = SURFACE WITH (STRAIGHTS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_Flaeche3D = SURFACE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_Flaeche3D = SURFACE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; CH_FlaecheOhneBogen3D = SURFACE WITH (STRAIGHTS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_FlaecheOhneBogen3D = SURFACE WITH (STRAIGHTS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; !! 3.9 Geometrie Gebietseinteilung CH_Gebietseinteilung = AREA WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; !! entspricht GeometryCHLV95_V2.Area BL_Gebietseinteilung = AREA WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_GebietseinteilungOhneBogen = AREA WITH (STRAIGHTS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; !! entspricht GeometryCHLV95_V2.AreaWithoutArcs BL_GebietseinteilungOhneBogen = AREA WITH (STRAIGHTS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_Gebietseinteilung3D = AREA WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_Gebietseinteilung3D = AREA WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; CH_GebietseinteilungOhneBogen3D = AREA WITH (STRAIGHTS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_GebietseinteilungOhneBogen3D = AREA WITH (STRAIGHTS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; !! 3.10 Geometrie MultiFläche CH_MultiFlaeche = MULTISURFACE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; !! entspricht GeometryCHLV95_V2.MultiSurface BL_MultiFlaeche = MULTISURFACE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_MultiFlaecheOhneBogen = MULTISURFACE WITH (STRAIGHTS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; !! entspricht GeometryCHLV95_V2.MultiSurfaceWithoutArcs BL_MultiFlaecheOhneBogen = MULTISURFACE WITH (STRAIGHTS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_MultiFlaeche3D = MULTISURFACE WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_MultiFlaeche3D = MULTISURFACE WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; CH_MultiFlaecheOhneBogen3D = MULTISURFACE WITH (STRAIGHTS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_MultiFlaecheOhneBogen3D = MULTISURFACE WITH (STRAIGHTS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; !! 3.11 Geometrie MultiGebietseinteilung CH_MultiGebietseinteilung = MULTIAREA WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; BL_MultiGebietseinteilung = MULTIAREA WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_MultiGebietseinteilungOhneBogen = MULTIAREA WITH (STRAIGHTS) VERTEX CH_Punkt WITHOUT OVERLAPS > 0.000; BL_MultiGebietseinteilungOhneBogen = MULTIAREA WITH (STRAIGHTS) VERTEX BL_Punkt WITHOUT OVERLAPS > 0.000; CH_MultiGebietseinteilung3D = MULTIAREA WITH (STRAIGHTS, ARCS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_MultiGebietseinteilung3D = MULTIAREA WITH (STRAIGHTS, ARCS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; CH_MultiGebietseinteilungOhneBogen3D = MULTIAREA WITH (STRAIGHTS) VERTEX CH_Punkt3D WITHOUT OVERLAPS > 0.000; BL_MultiGebietseinteilungOhneBogen3D = MULTIAREA WITH (STRAIGHTS) VERTEX BL_Punkt3D WITHOUT OVERLAPS > 0.000; !! 4. benutzbare Strukturen !! https://www.ech.ch/de/ech/ech-0010 STRUCTURE PlzSchweiz = SchweizerPlz: CH_Plz; PlzZusatzziffer: TEXT*2; PlzOrdnungsziffer: 1 .. 99999999; END PlzSchweiz; STRUCTURE PlzAusland = AuslaendischePlz: TEXT*15; Land: TEXT*150; END PlzAusland; STRUCTURE Strasse_Wohnung = Strasse: MANDATORY TEXT*150; Hausnummer: TEXT*30; Wohnungsnummer: TEXT*30; END Strasse_Wohnung; STRUCTURE Postfach = Postfachnummer: 0 .. 99999999; Postfachtext: MANDATORY TEXT*15; END Postfach; STRUCTURE BL_AdressInformation (ABSTRACT) = Zeile_1: TEXT*150; Zeile_2: TEXT*150; Strasse_Wohnung: Strasse_Wohnung; Postfach: Postfach; Lokalitaet: TEXT*40; Stadt: MANDATORY TEXT*40; PlzSchweiz: PlzSchweiz; PlzAusland: PlzAusland; MANDATORY CONSTRAINT PlzCHoderAusland: ((DEFINED(PlzSchweiz) AND NOT (DEFINED(PlzAusland))) OR (NOT (DEFINED(PlzSchweiz)) AND DEFINED(PlzAusland))); END BL_AdressInformation; STRUCTURE BL_Privatadresse EXTENDS BL_AdressInformation = Anrede: 1 .. 2; !! 1 = Frau; 2 = Herr Titel: TEXT*50; Vorname: TEXT*30; Nachname: TEXT*30; END BL_Privatadresse; STRUCTURE BL_Firmenadresse EXTENDS BL_Privatadresse = Name: TEXT*60; !! z.B. Bau- und Umweltschutzdirektion Zusatz1: TEXT*60; !! z.B. Amt für Umweltschutz und Energie Zusatz2: TEXT*60; !! z.B. Ressort Altlasten und Nachhaltige Entwicklung END BL_Firmenadresse; STRUCTURE BL_Kontakt = Bezeichnung: TEXT*50; Telefon: TEXT*20; Mail: TEXT*100; Internet: URI; BL_Firmenadresse: BL_Firmenadresse; END BL_Kontakt; END ch_bl_basis_v3_0.