Table Of Contents

Previous topic

1. Concept Pages

Next topic

2.1.1. Program Description

This Page

2. User Pages

This document describes the user visible parts (and some not so visible parts) of Buildes in an effort to help the user get the best out of the program.

2.1. Introduction

Buildes is short for “building design”. It is a set of Python scripts for assisting the building designer in describing buildings. It is based on my PhD thesis titled “COMPUTER-AIDED CONCEPTUAL BUILDING DESIGN” which was completed in 2003. Following my Ph.D. Study, it was difficult to settle with the available tools in my building design process.

In 2009 I started an effort to create a building information modeling system called Kobldes using the POV-Ray scene description language (SDL). Coming from a Unix/Linux background, I feel very strongly about text-based programs and POV-Ray is a very established and very powerful text-based 3D modeling system. Besides I have a limited knowledge of actually programming computers. One of my major issues however was the need to extract 2D flat drawings from the 3D information which I understood to be non-trivial or perhaps impossible using POV-Ray.

In 2010 I came across a relatively newer program called FreeCAD which supported python plug-ins. For a few months I moved to python and tried to develop the ideas in Kobldes as a workbench for this new system, renaming the effort Buildes. Even though the project members were wonderful and provided me with much support, I found it very difficult to keep up with the changes in the framework of FreeCAD. In addition, having a limited knowledge of python, it was taking me very long periods of time to understand the complicated bodies of code from the more advanced developers working on FreeCAD. In the end, the reason I stopped developing Buildes for FreeCAD was coming across OpenSCAD. The OpenSCAD website says it all.

"OpenSCAD is a piece of software for creating solid 3D CAD objects... OpenSCAD is not an interactive modeller. Instead it is something like a 3D-compiler that reads in a script file that describes the object and renders the 3D model from this script file..."

The main thing about OpenSCAD is that unlike anything I have seen out there, it is able to cut sections from a scripted 3D model. This is the beginning of being able to extract 2D flat drawings from a 3D model. With this possibility, I stopped playing catch-up with FreeCAD in late 2012 and started with the current standalone Buildes program. My efforts with FreeCAD convinced me I could use python which is a more widely supported, more popular and a more multipurpose programming language than the POV-Ray SDL.

2.2. Buildes User Interface

Buildes is a python library. It provides the functions/keywords used in a session file to describe parts of the building. To generate building knowledge this session file is passed to Python as an argument. If you are comfortable or appreciate working with programs like POV-Ray, you will probably find Buildes interesting.

However, as effective as script-based work environments are, designing buildings is most intriguing with graphical views of the designed object. During the time I worked with FreeCAD, I came across a system called PythonOCC. With the help of the python bindings for the Qt framework called PyQt, I developed a graphical user interface call BDUI that renders the shapes of the building components using PythonOCC. It also provides other capabilities as described in the following sections. BDUI is not required to use buildes as it is possible to pass your session file to python and export the shapes to a program such as POV-Ray or OpenSCAD (which is not functional yet), however BDUI is required to browse the produced building knowledge.

2.3. Getting Started

The following are tutorials showing the different capabilities within buildes.