Space Planning and Adjacencies

Hi There, I am exploring Space Planning and Adjacencies for a particular project I am currently working on. Initially I want to keep it very simple, though ultimately I would like to investigate generative design algorithms to explore the most appropriate design outcome for the project.

Is someone able to please recommend an appropriate tutorial I can read or watch to achieve Space Planning and Adjacencies as an exercise?

Thank you in advance - Chris.

1 Like

I think I remember that ThinkParametric had a series about optimizing floorplans, building plots etc.

At an entry level: amuse yourself with this:

Other than that I would strongly suggest to abandon ship if you are not an expert in coding (and you don’t have years to spend in order to discover the truth out there [if there’s any left]).

Or wait for AI to reach the masses (soon).

But in any case read this (the datum point of all things related with AEC CADD) :

PS: Also:

1 Like

Hi Tim, thank you for this suggestion - they are a great resource.

Appreciate the head’s up Peter. Some very heavy reading. Yep a very long road ahead of me. Chris.

Bad news: nobody (outside the Academic bandwagon) actually cares about the rational aspect in AEC things (look around you: a delirium of nonsense is the new status). So if you are operating in the real-life … abandon ship: it’s not worthy to spend time and effort only to discover that you are off-topic by a million miles.

1 Like

Hey Chris,

I’ve been looking around for a similar solution for the past few weeks but couldn’t find once that wasn’t buggy. I think that this is probably best reserved as an academic exercise .

Hope this helps anyone looking for a similar solution

1 - Construct a symmetric adjacency matrix on excel (leaving 0,0 cell blank and also making sure there are no commas in the names ) Also let’s call the names “ID”

2 - For the weight, use numbers ranging from 1 - 10 where 10 is the highest dependancy.

3 - Save the file as a Unicode CSV from excel

4 - Create another file on excel that has the attributes of your spaces, with the names of your spaces under the header ID (let’s start with a simple “area” and “SNo” attribute but you could add more features for sorting and manipulating your data)

5 - Open Gephi and further open your matrix CSV file

5 - Import it as “,” (comma delimited file) and make sure you check “matrix” for the data type

6 - Ensure the import is nondirectional as well (or Gephi adds silly arrows)

7 - Not gonna go into the gephi bit too much but select a force atlas layout and set the force to something high 1000 or 10000 depending on the size of the data and the attraction to a 1000th of that 1 or 10. Go to the data lab and import your excel with the attributes and append to your existing datasheet.

8 - Set the node attributes to use the area for the node size and color scheme to SNo

9 - Play around with all the layout options and finally go to your preview. Once you’re happy with it, export it to a GDF graph file.

the GDF now has the coordinates of the circles and the diameters. as well as the edge connections.

I’ve written a very amateur script that converts this to GH geometry (below)

Hope this helps someone out, I’m still figuring out the gephi streaming API but I’ve only started with python about a month ago so might take a while to get there.

You can use the second half of the GDF files to also create dependency chord diagrams online as shown in the fourth image.

GDF to (205.3 KB) Space Planning.rar (30.9 KB)

Also, I’d appreciate it if anyone could comment of the approach of my code to improve it.


Well … as I said even flirting with reality with stuff like these needs coding skills that require many years to achieve (for every member of the team involved - this is NOT a one man job).

Other than that I would strongly suggest to Google HAC clustering: you’ll need that hierarchical approach in order to start composing (and connecting in the horizontal and vertical sence) spaces on a per “most connected bottom to top” cluster node basis.

Also have in mind that in real-life we are NEVER after just one “ideal” (advisory) solution: we are talking about a bounch of candidate results that are further evaluated (and/or rejected) due to their complience with various other AEC disciplines (regulations, structural, HVAC, cost etc etc) .

Of course during the design the client can change mind at any time … meaning that the adjacency matrices (derived from the space schedules lists) are worth bananas.

Of course any client …er … wants stuff that are NOT in the space schedules. In most of cases non rational things that the Design Team should "“implement” somehow in the procedure: then the client says: NO that was not what I had in mind etc etc.


On the other hand a myriad of other factors may exist that could implicitly or explicitly play some role in any candidate solution: for instance imagine that by some miracle a client exists who wants a hospital that can adapt as quickly as possible to future tech changes (and/or demand): this in fact outlines an on purpose “not finished” topology. Say “kinda” like this:

But … for more than obvious reasons you can’t do it: it would cost a zillion AND it would be a disaster to heat/cool/maintain/repair not to mention the seismic behaviour … blah, blah.

Hi Peter,
Very interesting stuff. I’ve been trying to dip my feet into more programming based design approaches to try and develop my coding skills, I’ll definitely look into it as well as the other resources you brought up earlier.

Well …

  1. If you have plans to stay in the Academic bandwagon try to do it.
  2. If you are interested to get hired in the so called mainstream AEC business … never mention that type of stuff to anyone.
  3. If you have aspirations to join some "“avant-garde” AEC practice … NEVER mention that type of stuff to anyone AT ANY COST: go after Voronoi stuff and the likes (better safe than sorry).

The trend these days has nothing to do with anything rational: function is dead, long live the form.