Define `Floor` as a `Place` and decoupling of floorplan-data

What needs to be remodelled?

Hierarchical structure of places. (Building [1]-[n] Floor [1]-[n] Room) Decoupling of FloorPlan (Data object, where Rooms are shown on a graphical map. Currently stored as plan: SCFloorFeatureCollectionWithPlaces<LineString, any>; in SCFloorWithoutReferences) from Floor.

How is the current model not sufficient?

In the current modeling, the floor name (floor-attribute) is carried as an attribute individually in the rooms or buildings without using the separate classes SCFloor/WithoutReferences, in which the attribute also exists. The current modelling increases the maintenance effort of the individual room and building instances within the database, cause every floorname is stored individually in every instance. Also the objective of the floor is reduced to providing a floor plan without referencing room- or building-instances.

Which changes are necessary?

  1. Let SCFloorWithoutReference extend SCThingInPlace.
  2. Add SCFloorWithoutReference to the union types of SCThingInPlace.inPlace
  3. Since Floor are huge data objects in themselves (probably through the FloorPlan), create the FloorPlan as a separate interface and store it as a reference in SCFloor.
  4. Move the floors: String[] attribute in SCBuildingWithoutReferences to SCBuilding as floor: SCFloor[].

Do the proposed changes impact current use cases?

I don't know, please add @All

Edited by Michel Jonathan Schmitz