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 GH.gh (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.