Coding is part of my job (but not FS2020) and the underlying logic required does seem a pretty simple fix using OpenStreetMap definitions for urban area boundaries.
The following is not code, but written as if it were
for each 2 storey apartment block class location
___If a 2 storey apartment block lies inside an OSM urban boundary
______Place a 2 storey apartment block (current option)
___else
______Place a barn (a large grey block is a reasonable start and still an improvement)
___endif
next
The most complex element is probably adding the OSM urban boundaries collection, (if not already included) against which each the position of instance needs checking. I admit that I am not familiar with detail mechanics and effort required for doing this, but the logic is simple enough.
It would work for the >95% (probably >99%) of the UK instances of such buildings. Sure a few around the periphery of urban boundaries may be wrong, but it would greatly improve the default scenery away from towns, especiailly from dusk to dawn as Barns are rarely lit.
If it causes problems in elsewhere, add another simple ‘if’ statement could limit this option for the UK (and other similar countries/regions) locations although other barn styles may need defining.
I struggle to see how this would cause problems elsewhere as it only addresses one class of building and maybe only in limited geographic areas.