Overview
Once attached neighbours are identified (Sub-Issue A), this sub-issue implements surface-level detection of shared walls (“party walls”).
A party wall is a wall surface belonging to one building that is directly adjacent or overlapping with a wall surface of another building.
Requirements
-
Retrieve candidate neighbour pairs from Sub-Issue A.
-
For each building pair, compare vertical wall surfaces:
- Filter surfaces by tilt ≈ 90 degrees
- Perform geometric tests:
ST_3DIntersects
ST_3DDWithin (tolerance)
- 2D projection + overlap checks
-
Mark matched surfaces as party walls:
is_party_wall = true
neighbour_building_id
- Optional: shared area / shared height
-
Store results in {schema}.{lod}_child_feature_surface.
Output
For each child-feature surface:
is_party_wall
neighbour_building_id
- Optional: metrics for overlap area/height
Notes
- Must handle gaps and slight misalignments in LoD2 datasets.
- Performance optimisation will be required for large datasets.
Overview
Once attached neighbours are identified (Sub-Issue A), this sub-issue implements surface-level detection of shared walls (“party walls”).
A party wall is a wall surface belonging to one building that is directly adjacent or overlapping with a wall surface of another building.
Requirements
Retrieve candidate neighbour pairs from Sub-Issue A.
For each building pair, compare vertical wall surfaces:
ST_3DIntersectsST_3DDWithin(tolerance)Mark matched surfaces as party walls:
is_party_wall = trueneighbour_building_idStore results in
{schema}.{lod}_child_feature_surface.Output
For each child-feature surface:
is_party_wallneighbour_building_idNotes