Download and use QuickFloor
30th March 2015
Today I will show you how to download the QuickFloor program and use the QuickFloor Creator module to create a basic floor plan to use for home-automation GUI programs.
Note that QuickFloor is an alpha release and has a couple of issues. The main one is the lack of a "back" button if you enter data incorrectly. You need to enter all details correctly the first time.
The only other known issue is that certain unusual room layouts next to internal corners can class one of the room's external walls as "internal". This is rare and will be fixed by the next release.
Requirements and download.
To use QuickFloor you will need Python 3 installed on your system. On Linux systems this should be installed. For Windows click here for a tutorial on how to install Python
Once you have Python ready to go you can download QuickFloor from here.
Extract the folder to your home folder. You will find two text files, a LICENSE text and a README text. The LICENSE file says you can use, modify and share QuickFloor however you like. The README text provides a basic description and directs you to this series of articles. There are several .dat files which I will cover in a later article. There are also three Python files.
The Python file we are using in this article is quick_floor_creator_01.py. Open this file in IDLE 3.
With the code open in IDLE, select Run then Run Module.
The initial window will open. Select New.
You will now see the Details window.
Enter a house name and a ceiling height.
If your home layout is like figure A, enter 0 for Vertical Offset. If your layout is like figure B, enter the vertical offset (V) in metres.
In this example I am creating the shape from figure B with a three-metre vertical offset.
Click Continue to go to the Wall entry window
You enter the exterior walls in a clockwise direction from the starting point. The direction for your first wall will be East.
I am building the shape from a nine metre cube with a three-metre cutout, so the first wall is three-metres long.
There is wall one
Wall two will run North and measure three metres, which you will remember is the Vertical Setback we entered in the Details window.
Next we'll move East again with a length of six-metres for wall three to make our overall nine-metre dimensions.
Now our northerly walls are done, wall four will travel South by the full nine-metres.
Next we move West by nine-metres with wall five.
Finally, we go North six-metres for wall six
We are now back at our starting point and our perimeter is finished.
To create each room for you home you will need to enter a room name, the adjoining wall number and the distance clockwise from the beginning of the wall.
You also need to enter length one (The length of the room abutting the adjoining wall), and length two (The depth of the room away from the adjoining wall).
In the first example above I am adding a room called Bed1 attached to wall one. Because it starts at the very beginning of wall one the Distance is 0.
Length One is three-metres and Length Two, the depth, is four-metres.
In the second example I am attaching a hallway to wall three. Once again I have entered 0 for Distance because it starts from the beginning of wall three.
Length One, in this case the width of the hall, is 1.5 metres, and Length Two is nine-metres, the full vertical depth of the house.
Next we'll attach a Lounge to the beginning of wall four. Because we are now attaching to a vertical wall, Length One is now the length the room travels along wall four. Length Two is now the horizontal depth away from wall four.
To demonstrate another change in direction we'll attach a kitchen to wall five. Because we are moving clockwise around the house the kitchen starts at the beginning of wall five, so we once again have a Distance of zero.
This time, Length One is the horizontal length of the room along wall five and Length Two is the vertical depth of the room.
Now we'll attach a bathroom to wall five. To position this room horizontally we will enter a Distance for the beginning of the room. In this case the Distance is the combined width of the hall and kitchen, which is six-metres.
Once again Length One is the horizontal length of the bathroom and Length Two is the vertical depth from wall five.
It may take time to get your head around Length One and Length Two changing direction as you move around the house, but just remember you are working "clockwise" and you should be fine.
That is all the rooms we need, click Continue to proceed.
To add each opening you select an Opening Type (Door, Window or door-less Opening), the room containing the opening and the side of the room to place the opening.
The Verticle Position is the height from ground to the sill of the window. The Horizontal Position is the clockwise distance along the room's wall to the beginning of the opening.
The Opening Width is the width of the opening and the Top Height is the height of the top of the opening.
In the example above I am attaching a door to the north end of the Hall. Because it is a door the Vertical Position is zero. The Horizontal position is .25 metres, which is the Hall-width minus the opening-width then divided by two. This centers the door inside the hall.
The Opening Width is one-metre and the top height is two-metres.
Click Add to enter the opening.
There is our northern door, let's put another one at the south end of the hall.
This one was easy because they are matching doors. You simply change the Side of Room to South, instead of North, and leave all other fields as they were.
Now we'll attach a window to the north wall of Bed1. This is similar to adding a door. Select Window in the drop-down menu.
I have entered one metre for the vertical height of the window. This means the sill is one metre off the ground.
Once again, to center the two-metre window in the room the Horizontal Position was room-width minus opening-width divided by two.
Next we'll add a door between Bed1 and the hall.
You could attach this door to the west wall of the hall and the result would be the same. I am attaching it to the east wall of Bed1.
The last type of opening is a door-less opening. This method can also be used to create L-shaped rooms.
Here we'll add a full-height opening between the kitchen and lounge. Select Opening from the drop-down menu.
Positioning works the same as doors and windows. The main difference is in the drawing the wall is completely removed for the width of the opening.
Notice I have entered three-metres for the Top Height, which is the height I entered for a ceiling-height at the beginning. This can tell your programs there is no bulkhead and they can take this into account when studying temperature levels between rooms.
Once you have added all of your openings, click Continue.
Enter a save name ending in .dat and click save. The save file can then be imported into QuickFloor Base.
Advanced room layout
Now we have the basics covered, let's look at some more advanced layout options. Below is a floor plan I made for my home.
The Hall and Entry form an L-shaped room, and the Lounge and Dining are also joined. This is done by creating the two rooms then adding an Opening with zero Distance and a width the same as the room.
Notice the doors in the image above all have a small nib protruding whenever they butt into a perpendicular wall. This is automatically added to represent a door jamb and architrave. If you choose Opening in the drop-down menu and place it identically there will be no nib.
External wall identification
QuickFloor keeps a list of all external walls in each room to share with your programs, but there is currently one layout that can cause it to falsely class a wall as internal rather than external.
Notice in the image below that the Lounge stretches back past the inner corner of the house.
I attached the Lounge to wall four during the set up, and the program knows that the Lounge's east wall is external. However, because the Lounge's north wall is longer than the wall three, QuickFloor sees the entire wall as internal. You can attach the Lounge to wall three instead with a negative Distance, but then the entire north wall of the Lounge is classed as external, including the internal section of the wall leading to the Hall.
I have already solved this issue but not in time for this release.
Next week, in the third article, I'll introduce QuickFloor Base and show you how to add the floor plans you built today.
I'll also show you how to import and run a simple home-automation program on the platform.
Previous article: Features in QuickFloor
Next article:QuickFloor Base, your home-automation GUI