Presented project can be considered as an exploration of various ways of generating floor plans for public
buildings. Public buildings were chosen because of their complex and non-standardized structure. The aim was to
try different approaches, choose the best methods and incorporate them into my own algorithm.
Project Team:
Egor Gavrilov (Author), Reinhard König (Supervisor), Sven Schneider (Supervisor), Martin Dennemark (Supervisor)
Introduction
For architects as well as developers and urban planners working on the floor plans or estimating the shape and dimensions of large buildings is always a challenge. This task requires some knowledge and what is more important – even with understanding of the process it is a very time-consuming task. One should take into consideration the arrangement of all rooms as well as adjacencies and connections of main spaces. Generally, for every different shape or position of the building’s footprint the whole new room structure should be created.
The statement was put on as a starting point: Each of the rooms in a building is somehow accessible from any other room. It means that the whole communication structure is interlinked and thus forms the core. It could be said that the first step of the generation would be developing an evacuation plan, which can later be converted into more intelligible communication network.
Every room is extended by a corridor, which goes along one, two or four of its sides. Rooms are placed one-by-one in such a way, that every placed room should be attached to the main corridor structure with its own corridor. Additionally, every room should be adjacent with all required rooms. This process continues until there is no suitable space left for the next room. After that the new iteration starts and a new variant is generated. Simultaneously previously computed solutions are developed with the help of quasi-evolutionary algorithm. Eventually, the generator produces a huge number of solutions and then the best one is chosen, according to the evaluation function (generally number of the rooms placed or the total area of the rooms placed provide the most comprehensible evaluation results).
Generation Algorithm
// PREPARE INPUT
- rotate boundary
- sort rooms by their connectivity
- find first room
// ITERATION 1
- Place 1st room
- Find the room that is connected with 1st room -> place it
- Find the room that is most interconnected with currently placed rooms -> place it
- If the room can’t be placed -> stop iteration and start over
- Generate couple of solutions in this way -> choose 5 best of them and remove others
// ITERATION N
New iteration: improve previous solutions and generate new ones:
- If (iteration % 3 == 0) -> Take all previous solutions, remove last 1-5 rooms and try to place them differently again.
- If possible to place more rooms than originally, then replace old solution with this one.
- If (iteration % 3 != 0) -> develop new solution
// END OF ITERATIONS
- Generate couple of solutions in this way -> choose 5 best of them and remove others
- Choose the best solution and generate output from it
- If needed, remove dead ends and convert halls to corridors
User interface
Ease of use was considered as a crucial feature since the beginning of a project. Therefore, a simple solution for managing a room program of a house was created for the grasshopper environment. It enables user to set basic parameters, such as room name, area, room connections, entrance location, type of space (room/hall).
Tutorial Videos please!
At the top of this post, there is a video and some .gh files. Have you looked at them?
I’m crying… how do I do that.
Yes I did! By the way, there is one problem in this program, when I tried generating the example file. The texts doesn’t appear at all. What do you think is the problem?
Thank you !!!! You’re a genius
Hello
i use magnetizing but it dosnt work. Magnetizigroom-ES get an error. it says:( index was out of range. must be non-negative and less than the size of the collection.) but what`s the meaning it. Iteration or maxadjdistance
hie
trying to work on Magnetizing Floor Plan Generator, please provide tutorial videos. not been able to understand its components.
Hi ,
Could anybody help me in opening the example file? I am trying to open “Rhino MDG example file” provided by the author. I receive an error regarding not having these plugins: Heteroptera 0.4.9.3 , Human 1.1.0 and EleFront 0.1.0.0
These versions of the plugins do not exist. Anyway I installed the latest versions and still get the same error….Any idea?
Hi Shahrzad!
Sorry that it took me so long to answer you. If you still have the problem you could write me on my e-mail hellguz@gmail.com. Moreover, you could try new version which is available on Food4Rhino (https://www.food4rhino.com/app/magnetizing-floor-plan-generator). There in comments I also posted a super-alpha-beta new version, where I tried to fix some of the known bugs. Unfortunately I have not so much time now to fix everything, but I’m always open for your feedback and can help you with your particular troubles!
PS. The listed plugins are used only for display purposes, so you could easily use MagnetizingFPG without these plugings, you’ll just need to manage how the output-structure is displayed on your own, though it’s not so hard to do.
Hi Egor, I am trying to download Magnetizing_FPG_2 but the .gha file downloaded from dropbox, copied into Grasshopper’ Component folder doesn’t work (noone component appear on grasshopper menu).
I am matching the same probem with DecodingSpaces, which isn’t more on Food4Rhino.
Could Magnetizing work without decoding space?
Can you help me finding out a solution?
Thanks in advance,
David
Hello, I am a student from China. I have downloaded your GH plug-in. But show “The Grasshopper display routines have gone intoultra-paranoid mode in a last-ditch attempt tominimize damage. One or more objects will probablybe cated as blank rectangles with error The messagesDisplay performance might be affected for this session “, and the screen appears red. How to solve this problem?
Hi
I have being trying use the plugin the script is running but im not able get the color display and text for each of the rooms.
How can i achieve that ?? please help
Brilliant! You guys are just out of this world..
Amazing tool! But what is the display symbol called with text, brep and curve at the end? would be a big help! Thanks in advance
Hi! Great Plugin!
Is there any documentation that explains the description of FF Balance and ProportionThreshold parameters in the spring systems component ?
Hi I have an error when I tried to open Rhino MDG example file provided by the author. I got an error regarding not having these plugins: Heteroptera 0.4.9.3 , Human 1.1.0 and EleFront 0.1.0.0. And also the others components
Could you tell me how to fix this problems? Thank you!
Have you tried to install them from food4rhino?
Versions of these plugin are harder to find
Hi, I´ve tried this but the names appeared in disorder and there was no color for each ambient. Does someone knows how to fix this?
Every time I am working with the plugin I am getting this error ‘Array dimensions exceeded supported range.’. Does anyone know what causes it?
Hello, did anyone here already run the plugin on Rhino 7? In my rhino 7, there is an error that occurred on the room instance battery that stated, “Object reference not set to an instance of an object. The grasshopper display routines have gone into ultra-paranoid mode in a last-ditch attempt to minimize damage. One or more objects will probably be drawn as blank rectangles with error messages.”
Does anyone have an idea of what is wrong with the battery? or probably plugins installation?
Hi. I have the same problem with Rhino 6. Did you found a solution for that?
Yup, same here, doesn’t work with Rhino 7 and grasshopper 1.0.0007.
The room object has a big problem with this new version, the houseinstance also doesn’t look right.
Any idea why ?
You’re not the only one
#36091
The houseinstance and the roominstance are no longer compatible with Rhino 7 and the new grasshopper, beware
Here’s the error that grasshopper throws : “Input parameter Chunk is missing . Archive is corrupt”
Nay updeates on fpg in rhino 7?
Is there any way to rotate the way the solution puts down the rooms? I have tried to rotate the c-plane, but the rooms are still having the same orientation.
The links below the video won’t work and food for rhino files still won’t work, it’s a way to get these files
There has been a minor update to have this running on Rhino 7 and 8 , check out the page on food 4 rhino.