INTERLIS 2.4;
  
!!@ technicalContact = mailto:gis@bafu.admin.ch
!!@ furtherInformation = https://www.bafu.admin.ch/geodatenmodelle
!!@ IDGeoIV = ""
MODEL OekologischeInfrastruktur_V1_0 (de)
AT "https://models.geo.admin.ch/BAFU/"
VERSION "2024-05-29"  =
  IMPORTS GeometryCHLV95_V2, LocalisationCH_V2, CatalogueObjects_V2, CHAdminCodes_V2;

  TOPIC Codelisten
  EXTENDS CatalogueObjects_V2.Catalogues =
  
  CLASS Teilebene_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Teilebene_Catalogue;

  CLASS Unterteilebene_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Unterteilebene_Catalogue;

  CLASS Gebietskategorie_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Gebietskategorie_Catalogue;

  CLASS Herkunft_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Herkunft_Catalogue;

  CLASS RechtlicheSicherung_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END RechtlicheSicherung_Catalogue;

  CLASS Zustand_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Zustand_Catalogue;

  CLASS Pflege_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Pflege_Catalogue;

  CLASS Sanierungsbedarf_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Sanierungsbedarf_Catalogue;

  CLASS Anrechenbarkeit_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Anrechenbarkeit_Catalogue;

  CLASS Verankerung_Catalogue 
    EXTENDS CatalogueObjects_V2.Catalogues.Item =
      Code : MANDATORY TEXT;
      Definition : MANDATORY LocalisationCH_V2.MultilingualText;
  END Verankerung_Catalogue;

  END Codelisten; 

  TOPIC OekologischeInfrastruktur =
  DEPENDS ON Codelisten;

  
  CLASS OeI_IstZustand =
    Kanton : MANDATORY CHAdminCodes_V2.CHCantonCode;
    Identifikator: MANDATORY TEXT*50;
    Teilebene: BAG {1..*} OF REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Teilebene_Catalogue;
    Unterteilebene: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Unterteilebene_Catalogue;
    Gebietskategorie: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Gebietskategorie_Catalogue;
    Herkunft: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Herkunft_Catalogue;
    HerkunftBemerkung: LocalisationCH_V2.MultilingualText;
    RechtlicheSicherung: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.RechtlicheSicherung_Catalogue;
    Zustand: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Zustand_Catalogue;
    Pflege: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Pflege_Catalogue;
    Sanierungsbedarf: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Sanierungsbedarf_Catalogue;
    Anrechenbarkeit: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Anrechenbarkeit_Catalogue;
    Mutationsdatum: MANDATORY INTERLIS.XMLDate;
    Mutationsgrund: LocalisationCH_V2.MultilingualText;
    Geometrie: MANDATORY GeometryCHLV95_V2.Surface;
    UNIQUE Kanton, Identifikator;
    MANDATORY CONSTRAINT Herkunft->Code == "Weitere" AND DEFINED (HerkunftBemerkung);
    MANDATORY CONSTRAINT Herkunft->Code == "OeI_flach" AND DEFINED (HerkunftBemerkung);
    MANDATORY CONSTRAINT Teilebene->Code == "Trocken" AND ( Unterteilebene->Code == "T_Offenland" OR Unterteilebene->Code == "T_Wald" OR Unterteilebene->Code == "T_Fels" );  
    MANDATORY CONSTRAINT Teilebene->Code == "Feucht" AND ( Unterteilebene->Code == "F_Offenland" OR Unterteilebene->Code == "F_Wald" OR Unterteilebene->Code == "F_Gewaesser" );
    MANDATORY CONSTRAINT Teilebene->Code == "Mosaik" AND ( Unterteilebene->Code == "M_Offenland" OR Unterteilebene->Code == "M_Wald" );
    MANDATORY CONSTRAINT Teilebene->Code == "Alpin" AND ( Unterteilebene->Code == "A_Alpin" );
    MANDATORY CONSTRAINT Teilebene->Code == "Landschaftsverbindung" AND ( Unterteilebene->Code == "LV_Stoerungsarm" OR Unterteilebene->Code == "LV_Dunkel" OR Unterteilebene->Code == "LV_Wild" OR Unterteilebene->Code == "LV_Amphibien" OR Unterteilebene->Code == "LV_Reptilien" OR Unterteilebene->Code == "LV_Kleinsaeuger" OR Unterteilebene->Code == "LV_Fische" OR Unterteilebene->Code == "LV_Siedlung" );

  END OeI_IstZustand;
  
  CLASS OeI_Planung =
    Kanton : MANDATORY CHAdminCodes_V2.CHCantonCode;
    Identifikator: MANDATORY TEXT*50;
    Teilebene: BAG {1..*} OF REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Teilebene_Catalogue;
    Unterteilebene: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Unterteilebene_Catalogue;
    Gebietskategorie: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Gebietskategorie_Catalogue;
    Herkunft: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Herkunft_Catalogue;
    HerkunftBemerkung: LocalisationCH_V2.MultilingualText;
    RechtlicheSicherung: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.RechtlicheSicherung_Catalogue;
    Zustand: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Zustand_Catalogue;
    Pflege: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Pflege_Catalogue;
    Sanierungsbedarf: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Sanierungsbedarf_Catalogue;
    Mutationsdatum: MANDATORY INTERLIS.XMLDate;
    Mutationsgrund: LocalisationCH_V2.MultilingualText;
    Geometrie: MANDATORY GeometryCHLV95_V2.Surface;
    UNIQUE Kanton, Identifikator;
    MANDATORY CONSTRAINT Herkunft->Code == "Weitere" AND DEFINED (HerkunftBemerkung);
    MANDATORY CONSTRAINT Herkunft->Code == "OeI_flach" AND DEFINED (HerkunftBemerkung);
    MANDATORY CONSTRAINT Teilebene->Code == "Trocken" AND ( Unterteilebene->Code == "T_Offenland" OR Unterteilebene->Code == "T_Wald" OR Unterteilebene->Code == "T_Fels" );  
    MANDATORY CONSTRAINT Teilebene->Code == "Feucht" AND ( Unterteilebene->Code == "F_Offenland" OR Unterteilebene->Code == "F_Wald" OR Unterteilebene->Code == "F_Gewaesser" );
    MANDATORY CONSTRAINT Teilebene->Code == "Mosaik" AND ( Unterteilebene->Code == "M_Offenland" OR Unterteilebene->Code == "M_Wald" );
    MANDATORY CONSTRAINT Teilebene->Code == "Alpin" AND ( Unterteilebene->Code == "A_Alpin" );
    MANDATORY CONSTRAINT Teilebene->Code == "Landschaftsverbindung" AND ( Unterteilebene->Code == "LV_Stoerungsarm" OR Unterteilebene->Code == "LV_Dunkel" OR Unterteilebene->Code == "LV_Wild" OR Unterteilebene->Code == "LV_Amphibien" OR Unterteilebene->Code == "LV_Reptilien" OR Unterteilebene->Code == "LV_Kleinsaeuger" OR Unterteilebene->Code == "LV_Fische" OR Unterteilebene->Code == "LV_Siedlung" );
  END OeI_Planung;
  
  CLASS OeI_Schwerpunktraum =
    Kanton : MANDATORY CHAdminCodes_V2.CHCantonCode;
    Identifikator: MANDATORY TEXT*50;
    Teilebene: BAG {1..*} OF REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Teilebene_Catalogue;
    TeilebeneBemerkung: LocalisationCH_V2.MultilingualText;
    Unterteilebene: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Unterteilebene_Catalogue;
    Herkunft: REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Herkunft_Catalogue;
    HerkunftBemerkung: LocalisationCH_V2.MultilingualText;
    Verankerung: MANDATORY REFERENCE TO (EXTERNAL) OekologischeInfrastruktur_V1_0.Codelisten.Verankerung_Catalogue;
    Mutationsdatum: MANDATORY INTERLIS.XMLDate;
    Mutationsgrund: LocalisationCH_V2.MultilingualText;
    Geometrie: MANDATORY GeometryCHLV95_V2.Surface;
    UNIQUE Kanton, Identifikator;
    MANDATORY CONSTRAINT Herkunft->Code == "Weitere" AND DEFINED (HerkunftBemerkung);
    MANDATORY CONSTRAINT Teilebene->Code == "Trocken" AND ( Unterteilebene->Code == "T_Offenland" OR Unterteilebene->Code == "T_Wald" OR Unterteilebene->Code == "T_Fels" );  
    MANDATORY CONSTRAINT Teilebene->Code == "Feucht" AND ( Unterteilebene->Code == "F_Offenland" OR Unterteilebene->Code == "F_Wald" OR Unterteilebene->Code == "F_Gewaesser" );
    MANDATORY CONSTRAINT Teilebene->Code == "Mosaik" AND ( Unterteilebene->Code == "M_Offenland" OR Unterteilebene->Code == "M_Wald" );
    MANDATORY CONSTRAINT Teilebene->Code == "Alpin" AND ( Unterteilebene->Code == "A_Alpin" );
    MANDATORY CONSTRAINT Teilebene->Code == "Landschaftsverbindung" AND ( Unterteilebene->Code == "LV_Stoerungsarm" OR Unterteilebene->Code == "LV_Dunkel" OR Unterteilebene->Code == "LV_Wild" OR Unterteilebene->Code == "LV_Amphibien" OR Unterteilebene->Code == "LV_Reptilien" OR Unterteilebene->Code == "LV_Kleinsaeuger" OR Unterteilebene->Code == "LV_Fische" OR Unterteilebene->Code == "LV_Siedlung" );
  END OeI_Schwerpunktraum;  

  END OekologischeInfrastruktur;

END OekologischeInfrastruktur_V1_0.
