You were right about the spatial analyst extension. Depending on some assumptions (see below) with any luck there shouldn't be too much analysis.
- Take your shapefile of built areas and turn it into a grid - make sure that it's the same origin and cell size as the original DTM.
- Run a Combine between your built areas raster and your DTM - note that the built areas will have null regions so you'll only get data back in the regions where you have built areas.
- (WARNING: Big assumption!) Assuming you are only interested in classifying your raster based on height in comparison to the built areas, note the max height in the combine output (in the DTM column), and classify your original DTM based on this - any area of DTM >= max height is upstream or lateral, otherwise downstream.
This doesn't take into account that the region of the DTM might not be directly downstream of the built area, just that it's altitude is lower. If you are interested in directly downstream it becomes a bit more difficult (the following is just one way you could try for your result):
- Based on your grid of built areas (from step one above) run a Region Group to separate built areas into contiguous objects. Alternately we can just use the polygons.
- Make a new raster as the -ve DTM as we're looking at downstream.
- Run Flow direction on your -ve DTM - you may need to Fill or Sink the dataset to smooth it.
- Run a Watershed with the new flow direction and the grouped built areas as sources. Watershed selects everything upstream, but we've reversed this, so rather everything downstream is selected.
- (WARNING: Another assumption) We can assume that everywhere on the DTM that is not in a watershed is therefor Upstream of our built areas, and can classify as such.
- Any built area that edges onto the watershed of another built area is Downstream, and can be classified as such.
- Any remaining buildings can be classified as Upstream
- Any remaining areas of watershed can be classified as Downstream.
You might want to experiment with expanding to get lateral areas, and depending on the size of the area and the slop angle, firstly classifying your DTM based on a relative flatness. Hope this has given you something to try at least!