SCHEMA Geometrieschema;

REFERENCE FROM Strassennetz (Abschnitt_oder_Ast, Netzknoten, Nullpunkt, Strassenelement, GDF_Verbindungspunkt, GDF_Verbindungselement);

REFERENCE FROM Administration (Verwaltungsbezirk);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer);

REFERENCE FROM Bauliche_Strasseneigenschaften (Fahrbahnlaengsneigung, Fahrbahnquerneigung, Querschnittstreifen, Schicht, Streifenbegrenzung);

REFERENCE FROM Entwurf (Abstand_Achse_Linie);

REFERENCE FROM Allgemeine_Objekte (Winkel);

REFERENCE FROM direct_positioning_schema (direct_position);

ENTITY Punktobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Netzknoten, Nullpunkt, GDF_Verbindungspunkt));
--- Attribute :
--- Relationen :
   dargestellt_von_Knoten : OPTIONAL SET [1:?] OF Knoten;
   dargestellt_von_Punkt : OPTIONAL SET [1:?] OF Punkt;
END_ENTITY;
 

ENTITY Linienobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Abschnitt_oder_Ast, Strassenelement, Streifenbegrenzung, GDF_Verbindungselement));
--- Attribute :
--- Relationen :
   dargestellt_von_Kante : OPTIONAL SET [1:?] OF Kante;
   dargestellt_von_Linie : OPTIONAL SET [1:?] OF Linie;
END_ENTITY;
 

ENTITY Flaechenobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Fahrbahnlaengsneigung, Fahrbahnquerneigung, Querschnittstreifen, Fahrstreifen_Nummer, Verwaltungsbezirk));
--- Attribute :
--- Relationen :
   dargestellt_von_Masche : OPTIONAL SET [1:?] OF Masche;
   dargestellt_von_Flaeche : OPTIONAL SET [1:?] OF Flaeche;
END_ENTITY;
 

ENTITY Volumenobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Schicht));
--- Attribute :
--- Relationen :
   dargestellt_von_Koerper : OPTIONAL SET [1:?] OF Koerper;
   dargestellt_von_Volumen : OPTIONAL SET [1:?] OF Volumen;
END_ENTITY;
 

ENTITY Raumbezugsart
ABSTRACT SUPERTYPE OF (ONEOF(Knoten, Kante, Masche, Koerper, Punkt, Linie, Flaeche, Volumen));
--- Attribute :
--- Relationen :
END_ENTITY;
 

ENTITY Knoten
ABSTRACT SUPERTYPE OF (ONEOF(isolierter_Knoten, nicht_isolierter_Knoten))
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Punkt : OPTIONAL SET [1:?] OF Punkt;
INVERSE
   stellt_Punktobjekt_dar : SET [0:?] OF Punktobjekt_Modell FOR dargestellt_von_Knoten;
END_ENTITY;
 

ENTITY isolierter_Knoten
SUBTYPE OF (Knoten);
--- Attribute :
--- Relationen :
   liegt_in_Masche : OPTIONAL Masche;
END_ENTITY;
 

ENTITY nicht_isolierter_Knoten
SUBTYPE OF (Knoten);
--- Attribute :
--- Relationen :
INVERSE
   Beginn_von : SET [0:?] OF Kante FOR beginnt_bei_Knoten;
   Ende_von : SET [0:?] OF Kante FOR endet_bei_Knoten;
END_ENTITY;
 

ENTITY Kante
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Linie : OPTIONAL SET [1:?] OF Linie;
   beginnt_bei_Knoten : OPTIONAL nicht_isolierter_Knoten;
   endet_bei_Knoten : OPTIONAL nicht_isolierter_Knoten;
INVERSE
   stellt_Linienobjekt_dar : SET [0:?] OF Linienobjekt_Modell FOR dargestellt_von_Kante;
   begrenzt_Masche : SET [0:?] OF Masche FOR hat_Kante;
END_ENTITY;
 

ENTITY Masche
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Flaeche : OPTIONAL SET [1:?] OF Flaeche;
   hat_Kante : OPTIONAL SET [1:?] OF Kante;
INVERSE
   stellt_Flaechenobjekt_dar : SET [0:?] OF Flaechenobjekt_Modell FOR dargestellt_von_Masche;
   enthaelt_Knoten : SET [0:?] OF isolierter_Knoten FOR liegt_in_Masche;
   begrenzt_Koerper : SET [0:?] OF Koerper FOR hat_Masche;
END_ENTITY;
 

ENTITY Koerper
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Volumen : OPTIONAL SET [1:?] OF Volumen;
   hat_Masche : OPTIONAL SET [1:?] OF Masche;
INVERSE
   stellt_Volumenobjekt_dar : SET [0:?] OF Volumenobjekt_Modell FOR dargestellt_von_Koerper;
END_ENTITY;
 

ENTITY Punkt
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Lage : direct_position;
INVERSE
   stellt_Punktobjekt_dar : SET [0:?] OF Punktobjekt_Modell FOR dargestellt_von_Punkt;
   von_Knoten : SET [0:?] OF Knoten FOR hat_Punkt;
   Beginn_von_Linienelement : SET [0:?] OF Linienelement_3D FOR beginnt_bei_Punkt;
   Ende_von_Linienelement : SET [0:?] OF Linienelement_3D FOR endet_bei_Punkt;
   Stuetzpunkt_in_Spline : SET [0:?] OF Linienelement_Spline FOR hat_Stuetzpunkte;
END_ENTITY;
 

ENTITY Linie
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   besteht_aus_Linienelementen : LIST [1:?] OF Linienelement_3D;
   beschreibt_Linien_auf_Flelem : OPTIONAL SET [1:?] OF Linie_Flaechenelement;
INVERSE
   stellt_Linienobjekt_dar : SET [0:?] OF Linienobjekt_Modell FOR dargestellt_von_Linie;
   von_Kante : SET [0:?] OF Kante FOR hat_Linie;
   von_Abstand_Achse_Linie : SET [0:?] OF Abstand_Achse_Linie FOR hat_Linie;
END_ENTITY;
 

ENTITY Linienelement_3D
ABSTRACT SUPERTYPE OF (ONEOF(Linienelement_Spline, gerades_Linienelement));
--- Attribute :
--- Relationen :
   beginnt_bei_Punkt : Punkt;
   endet_bei_Punkt : Punkt;
INVERSE
   zu_Linie : Linie FOR besteht_aus_Linienelementen;
END_ENTITY;
 

ENTITY Linienelement_Spline
SUBTYPE OF (Linienelement_3D);
--- Attribute :
   Kruemmung_am_Anfang : OPTIONAL REAL;
   Kruemmung_am_Ende : OPTIONAL REAL;
   Tangente_am_Anfang : OPTIONAL Winkel;
   Tangente_am_Ende : OPTIONAL Winkel;
--- Relationen :
   hat_Stuetzpunkte : OPTIONAL LIST [1:?] OF Punkt;
END_ENTITY;
 

ENTITY gerades_Linienelement
SUBTYPE OF (Linienelement_3D);
--- Attribute :
--- Relationen :
END_ENTITY;
 

ENTITY Linie_Flaechenelement;
--- Attribute :
   bei_Linienfunktion : STRING;
--- Relationen :
INVERSE
   Linie : Linie FOR beschreibt_Linien_auf_Flelem;
   Flaechenelement : Flaechenelement FOR beschrieben_durch_Linien;
END_ENTITY;
 

ENTITY Flaeche
ABSTRACT SUPERTYPE OF (ONEOF(Flaechenelement, komplexe_Flaeche))
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
INVERSE
   stellt_Flaechenobjekt_dar : SET [0:?] OF Flaechenobjekt_Modell FOR dargestellt_von_Flaeche;
   von_Masche : SET [0:?] OF Masche FOR hat_Flaeche;
   begrenzt_Volumen : SET [0:?] OF Volumen FOR hat_Flaeche;
   erste_Flaeche_in : SET [0:?] OF komplexe_Flaeche FOR hat_erste_Flaeche;
   zweite_Flaeche_in : SET [0:?] OF komplexe_Flaeche FOR hat_zweite_Flaeche;
END_ENTITY;
 

ENTITY Flaechenelement
SUBTYPE OF (Flaeche);
--- Attribute :
--- Relationen :
   beschrieben_durch_Linien : Linie_Flaechenelement;
END_ENTITY;
 

ENTITY komplexe_Flaeche
SUBTYPE OF (Flaeche);
--- Attribute :
--- Relationen :
   hat_erste_Flaeche : Flaeche;
   hat_zweite_Flaeche : Flaeche;
END_ENTITY;
 

ENTITY Volumen
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Flaeche : SET [1:?] OF Flaeche;
INVERSE
   stellt_Volumenobjekt_dar : SET [0:?] OF Volumenobjekt_Modell FOR dargestellt_von_Volumen;
   von_Koerper : SET [0:?] OF Koerper FOR hat_Volumen;
END_ENTITY;
 

END_SCHEMA; -- Geometrieschema