Feature-Based Design of Building Forms Using an Improved CSG Tree
Fang Weidong*, Tang Ming Xi,
Liu Xiyu*
Design
Technology Research Centre, School of Design
The Hong
Kong Polytechnic University, Hong Kong
*DTRC and
Department of Computer Science
Shandong
Normal University, Jinan, China
Abstract
Evolutionary technologies can be effectively used for architectural
design supporting innovation, optimisation and planning. In this paper, we introduce
a method of generating building forms using an improved Constructive Solid
Geometry (CSG) tree. In this method, an abstract building form is represented
by the makeup of its main body and its exterior features. Traditional CSG tree
is modified for the representation of diversity building forms. In this paper,
this method is described with the presentation of the preliminary results of
the implemented system.
1.
Introduction
From the perspective of computing, an architecture form can be viewed as
a combination of many distinctive features related to the environment. To
formally define the style of a building in a CAD process is difficult. However,
it is easier to work at a level of abstraction of building style in terms of
geometric features. In [2], for example, the style of a building is interpreted
using hierarchical levels with syntactic and semantic mapping from concept to
form. Semantics are derived from the forms and result in important decisions in
the design process. In this paper, we represent the style of a building using
features from which different build forms are generated.
Feature-based design has a long history originating from the engineering
domain, where the gap between design and manufacturing must be bridged. In such
a domain, features are meaningful elements for designers and the use of them
can speed up the design process as well as provide a means for standardisation,
thus reducing the cost and time to market. Generally, a feature is considered
as:
w
a specific geometric configuration formed on a surface, edge or corner
of a work piece [3],
w
distinctive or characteristic part of a work piece, defining a
geometrical shape, which is either specific for a machining process or can be
used for configuration and/or measuring purposes [4], or
w
a generic shape which carries some engineering meaning [5].
In our method, we express the style of a building with the
characteristics of its main body construction and exterior elements. The main
body of a building can be obtained using 3D modelling method. The exterior
building elements, such as roof, wall, window, gate, and so on, are represented
as compound features. In light of this, the generation of a building consists
of two steps: (1) generating the main body with a 3D modelling method, and (2)
adding building elements to the main body (fig 1).
Fig 1 Steps to generate a
building
In the following text, we give a brief review on solid modelling
representations in section 2. In section 3, we introduce our improvements on
traditional CSG tree to meet the requirements of generating diversified
building forms. Section 4 introduces our idea to represent building elements
with feature technology. Section 5 presents the preliminary implementation of
the proposed method. Finally, we conclude this paper in section 6.
2. Solid
modelling representations
Solid modelling is a rapidly growing area of research and development in
the CAD domain. As a field, solid modelling spans several disciplines,
including mathematics, computer science, and engineering. Three major
representation schemes used in generative design are spatial partitioning,
boundary representations (B-rep), and constructive solid geometry (CSG).
In spatial-partitioning representations, a solid is decomposed into a
collection of adjoining, non-intersecting cells that are more primitive than
the original solid. The most common spatial partitioning representation schemes
include cell decomposition, spatial occupancy enumeration and cctrees. In cell
decomposition, each cell decomposition system defines a set of primitive cells
that are typically parameterised. Cell decomposition is not necessarily unique.
Spatial occupancy enumeration (also called exhaustive enumeration) is a special
case of cell decomposition in which the solid is decomposed into identical
cells arranged in a fixed and regular grid. These cells are often called
voxels. Octree is a hierarchical variant of spatial occupancy enumeration. The
essential property of octrees is that they record the shape information of an
object in a spatially ordered manner, and the highly hierarchical nature of
them suggests the use of divide-and-conquer recursive paradigms.
The boundary representation, or B-rep, represents solids in terms of
bounding surfaces, with a convention to indicate which side of boundary is
inside. It is based on complete topological information as well as geometry.
Topology (fig 2) provides mathematical basis for complete definition of
well-formed solid. A solid object is represented by a complicated data
structure giving information about each of the object's faces, edges and
vertices and how they are joined together. With B-bep, the description of the
object can be into two parts: topology records the connectivity of the faces,
edges and vertices by means of pointers in the data structure, and geometry
describes the exact shape and position of each of the edges, faces and
vertices.
Fig 2 Topology of boundary
representation
In CSG, a solid is represented as a combination of primitives, or
building blocks. Typical primitives include rectangular blocks, cones,
cylinders, spheres, tori and prisms. Primitives are first scaled based on
specified dimensions, then moved by a rigid motion, or a combination of
translations and rotations, and finally merged together by regularised Boolean
operations. There are three typical Boolean set operations: union, intersection
and subtraction. Because the final geometry changes depending on the order of
the operations performed, the order of operations can be stored in a binary
tree structure, which is called a CSG tree. Fig 3 gives an example of using CSG
tree to represent the design process of a mechanical part.
Fig 3 A CSG tree example
In reference to generative architectural form design, various methods
have been explored to generate novel building envelopes. A number of computer
models are used to simulate the development of prototypical forms that are then
evaluated on the basis of their performance in a simulated environment. In [7],
optimisation functions are integrated with the form generating processes in
order to generate new forms responding to varied design environments to be
created and determined through a series of complex mathematic transformations.
3. The
Improved CSG Tree
Among the three solid modelling representation methods mentioned in
section 2, CSG tree is highly recommended in generative design systems because
of its conciseness and easiness for genetic encoding. But the primitive numbers
and Boolean operations in a traditional CSG tree severely impair its ability in
generating diversified building forms. To address this issue, we improve the
traditional CSG tree in two aspects: primitive representation and operation
set.
3.1 Uniform
representation of CSG primitives
Most CSG modelling systems provide just a few standard primitive shapes
of a unit size, whose position, and orientation are initially set within the
primitive's local coordinate system. The designer chooses appropriate
primitives, then sizes, positions, and combines them to form complex shapes. A
primitive's size, shape, position, and orientation are controlled by specifying
the values for a small set of variables. For example, rectangular solids, or
blocks, are almost always available in a CSG system. A particular instance of a
block is produced by specifying its length, width, height, and subsequently its
location and orientation within a world coordinate system. In our method, we do
not intend to provide a specific number of primitives. Instead, we propose a
uniform representation for a wide range of primitives.
Definition 1 A primitive is
represented by a modelling method, two curves and four parameters, which can be
expressed as:
Primitive = (m, draft, step,
twist, portion, c1, c2)
Where
-
m is a creation method such as
sweeping, revolving or lofting,
-
c1 and c2 are two curves,
-
draft represents the
angle with which the swept profile is to draft out (positive) or in (negative)
while sweeping,
-
step converts a
circular sweep path into the specified number of linear segments. The results
are polygons, and the intent is to create simpler geometry by keeping faces
planar. The default is 0. This option may only be used when specifying the path
as a position and axis of revolution,
-
portion specifies the angle
to sweep around another, given in radians. The default is 2π,
-
twist represents how
much the profile twists in total as the profile is swepting along the path,
regardless of the length of the path.
In the above definition, a primitive solid can be created with three
methods: sweeping a curve along another, revolving one around another or
lofting one to another. Four parameters specify how the solid will be created
in more details.
Definition 2 A curve is defined
by a type, a flag indicating whether the curve is closed, and a collection of
control points, such that
Curve = (t, f, p1,
p2, ..., pn)
Where
-
t: the curve type, which can be
line, arc or spline,
-
f: flag indicating whether this
curve is closed,
-
Pi, i = 0, 1, …, n:
pairs of float numbers, representing the coordinates of control points,
Note that different curve types need different numbers of parameters,
and the flag is not always necessary. For example, a straight line needs two
control points; an arc needs three points and a line strip or a spline usually
needs variable number of points.
When generating a primitive solid, if the method of a primitive is
sweeping, the resulting solid will be created by sweeping curve c1 along curve
c2. In this case, c1 should be a closed curve, while c2 can be either an open
curve, e.g. a line, or a closed curve. If the method is lofting, then both c1
and c2 should be closed curves.
Some modelling tools support an even more complex sweeping method called
Variable Section Sweep (VSS). A VSS allows for the creation of some very
complex geometry by controlling how the section will change along the
trajectory for the feature. For example, in ACIS, a law provides symbolic
representations of equations that are parsed in much the same way that
equations are. A law is represented internally by a tree of C++ classes that
know their dimensions, how to evaluate themselves, and how to take their exact
(symbolic) derivatives with respect to any combination of variables. In
addition, law utility functions numerically integrate, differentiate, and find
roots. Such a method usually uses mathematical functions to control the
changing of a section. It’s too complex to be applied in the generative design
process.
It is obvious that all primitives in the existing CSG methods (say,
block, cone, wedge, cylinder, torous, etc.) can be represented by this uniform
method.
3.2 Extended
CSG operation set
CSG is a method for describing the geometry of complex models by
applying set operations to primitive objects. Traditionally a CSG tree contains
two kinds of operations, i.e. rigid Boolean operations and transforming
operations. However, a feature based generative design system should be
flexible so that the generation process can not only add new instances of
feature primitives to the model, but also can modify various aspects of the
existing features.
In our method, operations involved in the improved CSG tree include
three categories of operations: Boolean operations, transformations and feature
operations. We list the operations of each category as follows.
1)
Boolean operations
w
Union,
w
Intersection,
w
substraction.
2)
Transformations
w
Translating,
w
Rotating,
w
Scaling.
3)
Feature operations
w
Creation,
w
Deletion,
w
Modification.
By providing a uniform expression of primitives and extending the
operation set, our improved CSG tree can now generate a much wider range of
building forms than that of a traditional one. In light of the above
description, now we give the formal definition of our improved CSG tree.
Definition 3 An improved CSG
tree recursively expressed in Backus-Naur Form as:
CSG tree ::= <CSG tree> < Op> <CSG
tree> | <CSG tree>
|
<Transformation> | <Primitive Solid>
Op ::= Boolean operation | Transformations | Feature
operation
Boolean operations ::= Union | Intersection |
Substraction
Transformation ::= Translation | Rotation | Scaling
Feature operation ::= Creation | Deletion |
Modification
Primitive ::= <Method><Curve><Curve>
Method ::= Sweeping | Revolving | Lofting
4.
Representing building elements with features
Many different kinds of features have been proposed in the development
of CAD systems, such as functional features, assembly features, mating
features, physical features and even abstract features. All of these features
have to be associated with the basic shapes to which they are attached. Shah
defined the requirements a feature should at least meet [6]: a physical
constituent of a part, to be mapped onto a generic shape, engineering
significance and predictable properties.
To represent building elements, it is important to give a feature
taxonomy to classify all features in a structured way. By doing this, we can
also define features with the notion of inheritance, i.e. properties of super
classes can be inherited by subclasses without explicitly being repeated.
In our method, we adopt the feature taxonomy scheme presented by Wilson
and Pratt based on the overall shape of features and the assumption that
features will be incorporated in solid modelling systems [8]. Wilson and Pratt
distinguish explicit and implicit feature taxonomies which are related to form
feature representation. Fig 5 illustrates this taxonomy.
Fig 5 the taxonomy proposed by
Wilson and Pratt
According to this taxonomy, features can be represented either
implicitly or explicitly. In the explicit representation all geometric details
of a feature are fully defined. In the implicit representation, sufficient
information is supplied to define the feature, but the full geometric details
have to be calculated when required. A cylindrical window for example may be
defined implicitly in terms of its radius and depth or explicitly in terms of
the set of faces which compose it in a boundary representation model.
In our implemented system, we represent the building elements, e.g.
roof, door, window, podium, column, and so on, as compound features. A compound
feature is defined as a group of sibling primitive features. It is useful to
treat some features as a single entity because for example they might perform a
single function or may be machined by the same manufacturing procedure. The
members of a compound feature are treated internally as primitive features with
relationships, but externally a number of most commonly used compound features
are defined, so that designers can generate instances by simply supplying the
parameters. Choices are also given for creating new compound features by
defining the relationships between the existing primitive features.
It should be stated that in addition to building elements, special
modelling techniques for the design of building forms are also considered in
our method. Most of these techniques are related to the construction of the
main body of buildings. We view these techniques as special features and
represent them explicitly in the form of our improved CSG tree.
5.
Implementation
Present feature based CAD systems generally do not offer a facility to
easily define one's own features. Feature definition usually consists of some
kind of programming interface to the geometry modeller. In Knowledge Based
Engineering (KBE) systems, the programming interface as well as the access to
the geometry modeller is better when compared with "traditional" CAD
systems. Nevertheless, even within KBE systems, feature definition is difficult
and error prone, requiring extensive programming skills as well.
We employ the so-called Object Oriented Technology to develop our
software system. Features are viewed as design objects, belonging to some
general class, inheriting properties from their parent classes. A single
feature is defined in terms of the feature name or ID code, the feature class,
profile type, faces, parameters, a list of relationships and the feature
location and orientation. Each face of a feature is described by the face name
or ID code, the face type, face shape type, the face normal, its parent face
and surface finish. The parametric representation of features provides a
powerful way to change features with respect to their dimensions.
Fig 6 shows some preliminary results generated by the software system.
Fig 6 Some
results generated by the proposed method
6.
Conclusions
This paper presents a new idea of generating building forms using an
improved Constructive Solid Geometry (CSG) tree. The traditional CSG tree is
improved with a uniform representation of primitives and an extended operation
set.
Future work of this research will be concentrated on applying domain
knowledge to the generation of architectural forms. The generative design of
building groups using co-evolutionary technologies is also a direction of our
future endeavour.
References
[1] Tang M. X., Frazer, J. H., “An Artificial Intelligence Approach to
Industrial Design Support”, Generative Art, 1998, Milan, Italy, December, 1998.
[2] Gero, J. S. and Ding, L. (1997). Exploring style emergence in
architectural designs, in Y-T. Liu, J-H. Tsou and J-H. Hou (eds), CAADRIA'97,
Hu's Publisher, Taipei, Taiwan, pp. 287-296.
[3] CAM-I's illustrated glossary of workpiece form features,
R-80-PPP-02.1, 1981.
[4] Erve A.H. van't, Computer Aided Process Planning for Part
Manufacturing, an expert system approach, PhD thesis, University of Twente,
1988.
[5] Wingerd L., Introducing form features in product models, a step
towards cadcam with engineering terminology, Licenciate Thesis, Dept. of
Manufacturing Systems, Royal Institute of Technology, Stockholm, 1991.
[6] Shah J.J., Philosophical development of form feature concept, CAM-I
report P-90-PM-02 , 1990, 55-70.
[7] Liu X. Y., Frazer, J.H., Tang M. X., “A Generative Design System
Based on Evolutionary and Mathematical Functions”, Generative Art 2002, Milan,
Italy, December, 2002.
[8] Wilson P.R., Pratt M.J., A taxonomy of form features for solid
modeling, in Geometric Modeling for CAD applications, eds. Wozny M.J.,
McLaughlin H.W., Elsevier Science Publishers B.V. (North Holland), IFIP., 1988,
125-135.