To have EVERY building option be optimized onto one site, EVERY building option will need it’s own inputs to drive the model, and it’s own outputs to evaluate the result.
This graph shows use of GD to take a known building (via the input slider) and position it on a site in an optimal location relative to solar performance, fit on site, and built area. The evaluations aren’t ‘real’ by any means, but it should get the point across. The graph was built in Dynamo 2.11, and requires both the Generative Design and the Solar Analysis for Dynamo package, but should run in any version of Dynamo which takese the current built of Generative Design (ie: Sandbox, FormIt, Civil 3D) once the packages are setup.
Single Building Locator + Selector V1.dyn (122.5 KB)
Resulting geometry display:
In Generative Design:
This will return a single output for the site, showing the best possible outcome for each metric relative to the intended variables. As such the building with the smallest footprint tends to win the day as it will perform much better on the solar analysis. To make this work with each building on site, there are a few changes which need to be made as I outlined above. Each building needs an input, so instead of 3 variables (U location, V location, and rotation) you need to have
3*<building_count> variables (a U, V and rotation for each). Also instead of 3 outputs, you need 3 outputs per building (though area becomes redundant as each building’s area will be consistent), and an ‘overall fit’ metric to ensure all buildings can be made to fit. You also wont’ want to visualize each building on top of each other, so setting up duplicate views side by side is likely advisable. This is the resulting graph:
Multi Building Locator + Selector V1.dyn (190.6 KB)
Resulting Geometry Display:
In Generative Design:
Obviously this allows exploration at a larger scale, but in the end owning 'building A vs building B is hard to quantify this way. Allowing GD to explore both the building option and the layout makes more sense to me, but this could get a better outcome overall.
In a more realistic scenario you could test a series of lots to have a permutation of a list of buildings, where the building list is a good bit longer than the list of lots. Then evaluate for variety of buildings, use adjacency preferences (ie: shops are near residential and office, industrial is more isolated, etc.), environmental performance, and the like.