2.1.2 Solid Checks
1. The minimum number n of polygons to define a solid is four. They must be
situated in different planes.
2. A valid intersection of two polygons of a solid either contains a common edge,
a common point of a linear ring, or is empty. Common edges and points must
be elements of both polygons.
3. Each edge of a linear ring defining a polygon is used by exactly one neighbor-
4. Consistent orientation of polygons of a solid such that common edges according
to check 8 are used in opposite direction.
5. The normal vectors of the polygons must point towards the outside of the solid.
6. All parts of a solid must be connected.
7. The graph G S = ( V P , E P ) of polygons and edges which are meeting in point p i
is connected for all p . Each vertex v ∈ V P represents exactly one polygon which
contains p . Two vertices are connected with an edge e ∈ E P if the polygons rep-
resented by these vertices have a common edge that is bounded by p .
2.1.3 Semantic Checks
1. Orientation of RoofSurface, WallSurface and GroundSurface elements
2. measuredHeight in same range as height of building geometry
3. numberOfStoreysAboveGround plausible for height of the building geometry
4. numberOfStoreysBelowGround plausible for height of underground geometry
of the building
5. Relationship of Building and BuilidingPart (Figs. 1 , 2 ).
For each error detected during the validation process a specific error object
contains all necessary parameters for healing. Our approach assumes that all errors
should be healed hierarchically, according to the dependency of the respective
checks. An iterative approach assures that after an error is healed, the geometry is
checked repeatedly for new errors which might have been introduced during the
last healing step. This enables to manipulate to original model in a controlled and
For the cases where problems can't be solved by the healing algorithms after a
user-defined maximum number of iterations, an error object is returned. Healing is
done in two phases. Firstly all the polygons are healed and afterwards, if polygons
pass the validation process, solid-errors are healed. In Fig. 3 the healing process is