@startuml

!include https://raw.githubusercontent.com/FrankKooij/model/master/opmaak.iuml

hide circle

hide empty members

hide stereotype

hide <<enumeration>>

hide attributes

hide methods

hide namespace

'' -------------------------------------------------------------------------------------------------

'' hide AbstractObject

'' =================================================================================================

'' title Concept-BMGI

namespace bmgi-fysiek {

''     note "obv BMGI van 26 maart 2020" as bmgiversie

    FysiekObject <|-- MaaiveldWaterspiegel
    FysiekObject <|-- Inrichtingselement

    MaaiveldWaterspiegel <|-- Water
    MaaiveldWaterspiegel <|-- Land

    Inrichtingselement <|-- Gebouw
    Inrichtingselement <|-- Verharding
    Inrichtingselement <|-- Vegetatie
    Inrichtingselement <|-- Leiding
    Inrichtingselement <|-- Etc

    abstract class FysiekObject <<Objecttype>> {
        Objecttypen gekenmerkt door hun materiële samenstelling en getypeerd naar hun topografische hoedanigheid.
    }

    abstract class Land <<Objecttype>> {
    }

    abstract class Water <<Objecttype>> {
        Grondoppervlak permanent bedekt met water.
    }

    abstract class Etc <<Objecttype>> {
    }

    abstract class Verharding <<Objecttype>> {
        In één of meer lagen aangelegd materiaal, welke zijn gelegd over een ondergrond of onderliggende constructie, aangelegd om een oppervlakte geschikt te maken voor het beoogde gebruik , door te egaliseren, te verstevigen en/of te verruwen.
    }

    abstract class Gebouw <<Objecttype>> {
        Bouwwerk, dat een voor mensen toegankelijke overdekte, geheel of gedeeltelijk met wanden omsloten, ruimte vormt.
    }

    abstract class Leiding <<Objecttype>> {
        Een geheel van geleiders of ruimte welke voorzien zijn van één ommanteling en bestemd is voor transport van materie, data of energie.
    }

    abstract class Inrichtingselement <<Objecttype>> {
        Ruimtelijk object ter detaillering dan wel ter inrichting van de overige benoemde ruimtelijke objecten of een ander inrichtingselement.
    }

    abstract class Vegetatie <<Objecttype>> {
    }

    abstract class MaaiveldWaterspiegel <<Objecttype>> {
    }

}

@enduml
