The PlanningSynthesis system is primarily a collection of C# libraries for the automatisation of architectural and urban planning processes. We collect methods to evaluate spatial cofigurations and to sythesize them automatically by using optimization techniques. Below we explain and provide the main technical components of the PlanningSynthesis system.

The base technologies of the PlanningSynthesis system are evolutionary many-criteria optimization (EMO) and self-organizing maps (SOM). We use SOM because of its capability to simplify representations of complex data. EMO can be considered as a kind of navigation system for DSE. The combination of SOM and EMO is used as control mechanism for the systematic generation of alternative partial or complete designs.


First, you need to download the source code of the PlanningSynthesis system. There is a good overview for the project and the code base on OpenHUB. The repository itself is hosted on BitBucket [], or you can download the compiled dlls. Clone the repository with your preferred git tool (e.g. Git Extensions). For using the git, please follow this branching concept. If you don't know how to merge branches, please look at this manual. The code is written in C++ and C#. We use VisualStudio 2012.

To open all projects related to the PlanningSynthesis system, navigate to BasicSystems\CPlan_All and open the file CPlan_All.sln. This solution contains all individual projects integrated so far into the PlanningSynthesis system. But usually it is better to use the simplified solution.

To compile the project FW_GPU_NET (used for all-pair shortest path calculations), you need to download and link boost. Therefore follow these instructions from a stackoverflow post:

  1. Un-archive the latest version of boost (1.47.0 as of writing) into a directory of your choice (e.g. C:\boost_1_47_0).
  2. Create a new empty project in Visual Studio.
  3. Open the Property Manager and expand one of the configuration for the platform of your choice.
  4. Select & right click Microsoft.Cpp.<Platform>.user, and select Properties to open the Property Page for edit.
  5. Select VC++ Directories on the left.
  6. Edit the Include Directories section to include the path to your boost source files.
  7. Repeat steps 3 – 6 for different platform of your choice if needed.

In the VisualStudio project explorer window select the C# project UrbanPatternInteraction, right click and "Set as StartUp Project". This project contains the graphical user interface (GUI) and uses all the other projects as shown in the solution architecture diagram (Figure 1):

Figure 1: UrbanPatternInteraction solution architecture diagram.

In case there you want to change something of the C++ code (c.f. architecture diagram in Figure 1), please relink references to the projects in the solution, since currently they are linked to the dll's at the ExternalLibraries folder.

Simplified Solution

There is a simplified solution, which is usually sufficient for developing new applications: Navigate to BasicSystems\UrbanSynthesis and open the file PlanningSynthesis.sln. This solution contains only the C# projects of the PlanningSynthesis system (Figure 2). Sometimes there is a problem with the PureGeom3D.dll in the References at the UrbanPatternInteraction project. If this project doesn't compile, delete the reference, build it again and eventually relink the dll.

150613_Dependencies Graph
Figure 2: Simplified solution architecture diagram.


You should be able to compile all projects or the complete solution, now. But there will be still some errors during runtime. For the EMO functions of the PlanningSynthesis system you need to set the path to your PISA folder (containing the selector mechanisms). You can do this via the GUI by 'AppSettings'. You need to copy your local path to the PISA folder: pathOnYourComputer\ExternalLibraries\PISA\  – copy this path and past it into 'PathToPISA'. At the moment this setting is not set permanently and gets lost after restarting the application. For a permanent setting go to the UrbanPatternInteraction project into the Properties folder and edit the Settings.settings file. You can copy your PISA path into the 'PathToPISA' variable.

There is a issue with the PISA selectors with the point/comma decimal separator. You need to use point separator, otherwise the selectors won't work. You can change your settings via your system control: Control Panel –> Clock, Language and Region –> Change the date, time, or number format. It might be sufficient to change the separator: Click on Additional settings button. Or you change your settings to English (UK) – this works definitely.

Self Organizing Maps (SOM)

For visualizing the variants colected in the PISA archive, we use a SOM to arrange the variants in a way that similar ones are placed beside each other. For computing the SOM we use the Databionic ESOM tools. You need to install them (instructions) to use the corresponding functions of the PlanningSynthesis system. You find them on the GUI at Optimization -> Visualization -> show SOM order. User another visualization if you don't have the ESOM tools.