Here are some more modificaton of the particle system.
I made a Python script which bakes particles along the splines of an open street maps file. Each particle is then given a certain object, in this case a high poly element of a facade. Since each house should only use facade elements which fit together they have to be sorted.
This sorting process is what I optimized in the source code. It actually was possible in vanilla Blender but it was prohibitively slow.
Now after optimizing the code it works pretty decently.
Here are some tests:
In the first image you can see the facade elements out of which all the buildings are constructed.
It should be possible to use as many elements as you like to.