Научная статья на тему 'Three-dimensional topological models of Buildings'

Three-dimensional topological models of Buildings Текст научной статьи по специальности «Математика»

CC BY
125
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Вестник МГСУ
ВАК
RSCI
Область наук
Ключевые слова
HALF-FACE / HALF-EDGE / ТОПОЛОГИЯ / TOPOLOGY / SKELETON / ЗДАНИЕ / BUILDING / ТРЕХМЕРНЫЙ / THREE-DIMENSIONAL / БОКОВОЕ ИЗОБРАЖЕНИЕ / ПОЛУРЕБРО / КАРКАС

Аннотация научной статьи по математике, автор научной работы — Bil'Chuk Irina Leonidovna, Pahl Peter Jan Pahl Peter Jan

A novel data structure for the topology of three-dimensional skeletons of buildings is presented. Each face of the skeleton is mapped to two half-faces in the topological model. The boundary of a half-face consists of a cycle of half-edges. Each edge is mapped to a bundle of half-edges containing one half-edge for each half-face at the edge. The bundle is decomposed into two dihedral cycles, one for each direction of the edge, containing the half-edges ordered according to dihedral angle. The topological model is constructed by partitioning three-dimensional space. Each partition subdivides a specified cell into two convex cells. Cells can be merged if the resulting cell is convex. The partition and merge operations are efficient because they are performed on a small subset of the elements of the model in the vicinity of the affected cell and are thus independent of the size of the model.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Three-dimensional topological models of Buildings»

УДК 692.297

I.L. Bil'chuk, P.J. Pahl*

Moscow State University of Civil Engineering, *Technische Universität Berlin THREE-DIMENSIONAL TOPOLOGICAL MODELS OF BUILDINGS

A novel data structure for the topology of three-dimensional skeletons of buildings is presented. Each face of the skeleton is mapped to two half-faces in the topological model. The boundary of a half-face consists of a cycle of half-edges. Each edge is mapped to a bundle of half-edges containing one half-edge for each half-face at the edge. The bundle is decomposed into two dihedral cycles, one for each direction of the edge, containing the half-edges ordered according to dihedral angle. The topological model is constructed by partitioning three-dimensional space. Each partition subdivides a specified cell into two convex cells. Cells can be merged if the resulting cell is convex. The partition and merge operations are efficient because they are performed on a small subset of the elements of the model in the vicinity of the affected cell and are thus independent of the size of the model.

Key words: half-face, half-edge, topology, skeleton, building, three-dimensional.

1. Building Skeletons.

The topology of a three-dimensional building is described by means of its skeleton. The beams and columns are mapped to edges of the skeleton, the walls, floors and roofs to faces, and the rooms and spaces to cells. The skeleton is extended by attaching data and functions to the vertex, edge, face and cell elements to describe the geometry, physics and functionality of the building for specific applications such as computer aided design, construction management or facility management.

The skeleton is a polytope consisting of vertices, edges, faces and cells as shown in figure 1. The edges and faces of the skeleton are undirected geometric elements. In the topological model of the skeleton, the edges and faces are replaced by several directed elements. Computer models of skeletons are designed so that their user is aware of the nodes and cells, and of the undirected edges and faces only. 1

cell 5

и; IZ 15 8 K.

17

cell vertices

1 1 2 11 10 4 5 14 13

2 2 3 12 11 5 6 15 14

3 4 5 14 13 7 8 17 16

4 5 6 15 14 8 9 18 17

5 10 11 12 13 14 15 16 17

18 19 20 21 22

21 22

Fig. 1. Skeleton of a building with cell-vertex index table

6

9

The purpose of topological models of skeletons is efficient treatment of adjacency, connectivity and containment relations. Neighbourhood of components plays an important role in architectural design which deals extensively with the relative arrangement of spaces. Structural detailing connects neighbouring of sets of structural components and evacuation control considers alternate paths between spaces and exits.

The traditional tool for the description of skeleton topology is the index table [1]. Twelve types of index table relating the vertices, edges, faces and cells can be constructed for a three-dimensional skeleton. All tables have variable length, but some tables have a constant and others a variable number of entries per row. Figure 1 shows the index table which relates the cells and

© Bil'chuk I.L., Pahl P.J., 2012

289

ВЕСТНИК

10/2012

vertices of a skeleton. The other index tables can be derived from this table and the coordinates of the vertices, or they can be specified directly if unique identifiers are specified for the edges and faces. The index tables must be recomputed after every change in the topology of the building.

Advanced data structures have been developed for two-dimensional polytopes which restrict changes in the topological model to the vicinity of the face which is added or removed in the model, thus enhancing the efficiency of the topological algorithms [2, 3]. As an example figure 2 shows the half-edge data structure [4] for a simple floor plan. Each undirected edge of the skeleton is mapped to two directed half-edges in the topological model. The inner faces are bounded, the outer face is unbounded. The half-edges on the boundary of a face form a boundary cycle, the edges leaving a vertex form a vertex cycle.

f

J да

fx

fi

4 Jl C6

v 1 <.........................v2«............

e, e„

* 5

■ e

1 7

4--3f-----*

* e 4

e 4 _____

4 e<

boundary cycles of half-edges

Fig. 2. Half-edge data structure for a two-dimensional skeleton

vertex-cecles of half-edges

2. Half-face Data Structure

Several researchers have extended the half-edge data structure from two-dimensional to three-dimensional polytopes. The resulting data structures are complex. For example, the combinatorial maps which have been implemented in CGAL [5] require explicit incidence and adjacency relations between cells. The half-face data structure [6] which is presented in this paper does not require incidence and adjacency relations between cells. This data structure is based on the following concepts:

Each undirected face of the skeleton is mapped to two directed half-faces of the topological model as shown in figure 3. The half-faces consist of the same point set in M but their normal vectors have opposite directions. They are called twins.

Each undirected edge of an undirected face is mapped to two directed half-edges which point in opposite directions as shown in figure 3. The half-edges are called twins.

The boundary of each half-edge consists of a cycle of half-edges which is oriented in the counter-clockwise direction if the half-face is viewed in the direction which is opposite to that of its normal vector.

Let a set of n faces meet at an undirected edge E of a skeleton. For each face in the set, edge E is mapped to twin half-edges as shown in figure 4. Thus edge E is mapped to a bundle of 2n half-edges. The half-edge bundle is the principal conceptual difference between the half-edge data structure for two-dimensional skeletons and the half-face data structure for three-dimensional skeletons.

The half-edge bundle to which an undirected edge E is mapped is decomposed into two subsets of equal dimension as shown in figure 4. The half-edges of a subset point in the same direction and are ordered in a dihedral cycle according to their dihedral angles. The dihedral cycle for a set of half-edges is oriented in a counter-clockwise direction if the plane normal to edge E is viewed in the direction opposite to that of the half-edges.

e

e

7

>V 5

v

V

4

6

e

e

7

e

e

e

e

e

2

2

4

6

e

e

v

V

2

: 3 "з/

••-.if-twin half-faces

plane 3

plane 2

dihedral angles

Fig. 3. Exploded view of twin half-faces and example of dihedral angles

dihedral cycle <ex, e2, e3> dihedral cycle <e, e2, e3>

Fig. 4. Exploded view of the decomposition of an edge bundle into dihedral cycles

The number of attributes in the vertex, edge, face and cell objects in the half-face data structure is constant and independent of the specific skeleton:

edge:

vertex: coor [ ]

pivotEdge org face twin next rot

pivotEdge cell

pivotFace

face:

cell:

global coordinates

one of the half-edges leaving this vertex vertex at the origin of this half-edge half-face whose boundary contains this half-edge other half-edge of the undirected edge of the half-face next half-edge in the boundary cycle containing this half-edge next half-edge in the dihedral cycle of the half-face one of the half-edges in the boundary cycle of the face cell whose boundary contains this half-edge one of the half-faces in the boundary of this cell 3. Navigation in the Half-face Data Structure

The attributes of the objects of the half-face data structure support efficient navigation. In addition to the relations which are read directly in an object, such as vertex e.org at the origin of half-edge e and half-edge e.next as successor of half-edge e in the boundary cycle of e.face, the following concatenations are useful in implementations of the data structure: e.twin.org vertex at the destination of half-edge e

e.rot.face half-face succeeding e.face in the dihedral cycle of half-edge e

e.twin.face twin half-face of half-face e.face

f.pivotEdge.twin.face half-face which is the twin of half-face f e.twin.next.twin half-edge which precedes half-edge e in the boundary cycle

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

n

v

4

n

v

2

n

ВЕСТНИК 10/2012

Other relations are determined by searching the data structure. The two basic methods for topological search collect the half-edges which leave a given vertex and the half-faces in the boundary of a given cell.

h.twin.next

4.X*

half-edges leaving vertex v

half-faces of cell c

n

n

n

Fig. 5. Relationships for algorithms which search the data structure

3.1. Collection of the half-edges which leave a given vertex. The half-edges of the topological model are to be collected whose origin is a given vertex v. Two arrays of variable

length are used to store the following variables:

set[ ] half-edges which leave vertex v

stack[ ] half-edges leaving v whose dihedral cycle has not yet been searched

1. Enter half-edge v.pivotEdge in the stack.

2. Remove the last entry e from the stack and add it to the set.

3. Loop over the half-edges h in the dihedral cycle of half-edge e.

4. Add half-edge k = h.twin.next to the stack if it is not yet contained in the set or in the stack.

5. Terminate the procedure if the stack is empty. Otherwise continue with step 2.

Half-edge k is the only half-edge in the topological model with the same origin v as

half-edge h which belongs to the twin of the half-face containing half-edge h.

3.2. Collection of the half-faces of a given cell. The half-faces of the topological model which are contained in the boundary of a given cell c are to be collected. Two arrays of variable length are used in the method to store the following variables:

set[ ] half-faces in the boundary of cell c

stack[] half-faces of cell c whose boundary cycle has not yet been searched

1. Enter half-face c.pivotFace in the stack.

2. Remove the last entry f from the stack and add it to the set.

3. Loop over the half-edges h in the boundary cycle of half-face f.

4. Add half-face k = h.twin.rot.face to the stack if it is not yet contained in the set or in the stack.

5. Terminate the procedure if the stack is empty, otherwise continue with step 2.

Half-face k is the half-face of the cell which neighbors on half-face f at edge h.

3.3. Collection of the cells which contain a given vertex '.The basic algorithms in sections 3.1 and 3.2 are used as tools in other methods of navigation. For example, the cells of the topological model whose boundary contains a given vertex v can be collected in an array cell []. The method collects the half-edges which leave vertex v in a set[] as described in section 3.1 and traverses this set. Each half-edge in the set yields exactly one unique cell set[i].face.cell whose boundary contains vertex v.

4. Construction of Topological Models

A topological model with half-face data structure is constructed by partitioning three-dimensional space. At the start of the construction a brick-shaped box is specified as shown

in figure 6 which will contain all vertices of the model. The space outside the box is not partitioned during the construction. The first plane partitions the convex box into two convex cells. The second plane partitions one of these cells into two cells. The procedure is continued to yield a set of convex cells filling the box.

initial box 1. partition 2. partition

Fig 6. Construction of a topological model by partitioning of cells

2

1

/ / / / / / / / / / )

3. partition

The topological model can also be modified by merging two cells after the half-faces at their intersection have been removed. Only merge operations which preserve the convexity of the cells are permitted. Extended topological models can contain non-convex cells which are the union of basic convex cells.

4.1. Identification of the cell which is to be partitioned. The cell which is to be partitioned is identified by one of its points T. In order to identify the cell containing the test point T, an arbitrary vertex V is connected to T with a directed straight line L as shown in figure 7. Starting at vertex V, the sequence of cells intersecting line L is determined. Line L leaves a cell and enters a new cell at points A to D. The search ends with the cell which contains the test point T.

D

Fig. 7. Search along the directed line L for the cell containing test point T

The search algorithm starts with the set of cells which contain the vertex V. At least one cell C contains vertex V as point of entry and another boundary point as point of exit of the directed line L. A new cell set is collected at the point of exit. If the point of exit is a vertex, the set consists of all cells containing the vertex. If the point of exit is an inner point of a half-edge, the set consists of all cells containing the half-edge. If the point of exit is an inner point of a half-face F, the set consists of the cell whose boundary contains the twin of half-face F. The procedure is repeated until the test point lies between the points of entry and exit of line L in a cell.

4.2. Partitioning of a cell. The plane which partitions the cell is specified with three points spanning the plane. The plane P intersects the cell as shown in figure 8. The cell is partitioned by a new half-face with vertex cycle <A,B,C,D> and a half-face with vertex cycle <D,C,B,A>.

ВЕСТНИК

10/2012

P

D

v

v

Fig. 8. Partitioning of a cell by a plane p

The set of half-edges of the cell which are intersected by the plane is determined and used to collect the half-faces of the cell which are intersected by the plane as shown in figure 8. Starting with an arbitrary intersected half-edge a. of half-facef the set of intersected half-edges is searched for the second intersected half-edge bl of half-face f The dihedral cycle of b..twin contains half-edge a2 = bj.twin.rot of the boundary of half-face f = a2.face of the cell which touches half-facef at half-edge b.. The collection of the intersected half-faces is continued with half-edge a2 and ends when half-edge a. is reached.

If a point of intersection is an existing vertex, that vertex is used for the partition; otherwise a new vertex is constructed. The vertices subdivide the intersected half-edges and their twins into two half-edges each. Additional half-edges and their twins are constructed to subdivide the intersected half-faces of the cell. These half-edges form the boundaries of the two half-faces which subdivide the cell. Finally, the two half-faces and the new cell are constructed.

4.3. Merging of two cells. Two cells which are to be merged are identified with a point in the catch zone of the face which is to be removed. The algorithm determines a cell which contains the test point, as described in section 4.1. It loops over the half-faces of this cell to determine the half-face whose catch zone contains the test point. A convexity test is performed on the merged cell and the transaction is aborted if the cell is not convex. The elements of the topological model which become superfluous due to the merger are removed. In some cases, half-faces and half-edges of the merged volume can also be merged after the superfluous elements have been removed.

5. Conclusions

The geometric details of the algorithms for the half-face data structure have been developed and an application has been programmed on the Java platform which implements the half-face data structure. The prototype implementation shows that the data structure and the methods of the topological model are readily programmed because

the attribute structure of the objects in the model is simple. The methods are efficient because the operations partition and merge are performed on the topological elements in the vicinity of the added or removed cell, so that the effort is independent of the size of the topological model.

References

1. Bungartz H.-J., Griebel M. and Zenger C., 2002. Einführung in die Computergraphik. Wiesbaden, Vieweg Verlag.

2. Lawson C.L. Properties of n-dimensional Triangulations. Computer Aided Geometric Design, no. 3(1986), pp. 231—246.

3. Aurenhammer F., 1991. Voronoi diagrams-a Survey of a Fundamental Geometric Data Structure. ACM Comput. Surveys, 23 (1991), pp. 345—406.

4. Kettner L. Halfedge Data Structures. CGAL Open Source Project Release 4.0, March 2012, Chapter 26. Available at: http://www.cgal.org. Date of access: March 2012.

5. Damiand G. Combinatorial Maps. CGAL Open Source Project Release 4.0, March 2012, Chapter 27. Available at: http://www.cgal.org. Date of access: March 2012.

6. Pahl P.J. Topology of Buildings. Lecture Notes, Fachgebiet Bauinformatik, Technische Universität Berlin, 2012, 124 p.

Поступила в редакцию в сентябре 2012 г.

About the authors: Bil'chuk Irina Leonidovna — Candidate ofTechniclal Sciences, Associate Professor, Department of Building Informatics, Moscow State University of Civil Engineering (MGSU), 26 Yaroslavskoe shosse, Moscow, 129337, Russian Federation; +7 (499) 188-51-10;

Pahl Peter Jan—Prof. Dr. Dr. h. c. mult., Department of Civil Engineering, Technical University Berlin (TUB), Straße des 17 Juni 135, D-10623, Berlin, Federal Republic of Germany; pahl@ifb.bv.tu-berlin.de, +49 (0)30 314-0; +49 (0)30 314-23222.

For citation: Bil'chuk I.L., Pahl P.J. Three-dimensional Topological Models of Buildings. Vestnik MGSU [Proceedings of Moscow State University of Civil Engineering]. 2012, no. 10, pp. 289—296.

И.Л. Бильчук, П.Я. Паль*

ФГБОУ ВПО «МГСУ», *Технический университет Берлина

ТРЕХМЕРНЫЕ ТОПОЛОГИЧЕСКИЕ МОДЕЛИ ЗДАНИЙ

Представлена инновационная структура данных, необходимых для трехмерного топологического отображения каркасов зданий. Каждая плоскость каркаса отображается в составе топологической модели в виде двух боковых изображений. Граница бокового изображения состоит из последовательности полуребер. Каждое ребро отображается как расслоение полуребер, в составе которого имеется по одному полуребру для каждого бокового изображения. Данное отображение раскладывается на две двугранные последовательности, по одной для каждого направления ребра, которые имеют в своем составе полуребра, соответствующие двугранным углам. Топологическая модель конструируется путем разделения трехмерного пространства. Каждый разделитель превращает ячейку в две выпуклые ячейки. Ячейки могут объединяться, если в результате получится выпуклая ячейка. Операции по разделению и объединению ячеек являются эффективными, поскольку производятся на небольшом подмножестве элементов модели возле видоизменяемой ячейки, поэтому не зависят от размера модели.

Ключевые слова: боковое изображение, полуребро, топология, каркас, здание, трехмерный.

Библиографический список

1. Bungartz H.-J., Griebel M. and Zenger C., 2002. Einführung in die Computergraphik. Wiesbaden, Vieweg Verlag.

2. Lawson C.L. Properties of n-dimensional Triangulations. Computer Aided Geometric Design, no. 3(1986), pp. 231—246.

3. Aurenhammer F., 1991. Voronoi diagrams-a Survey of a Fundamental Geometric Data Structure. ACM Comput. Surveys, 23 (1991), 345—406.

ВЕСТНИК 10/2012

4. Kettner L. Halfedge Data Structures. CGAL Open Source Project Release 4.0, March 2012, Chapter 26. Режим доступа: http://www.cgal.org. Дата обращения: март 2012 года.

5. Damiand G. Combinatorial Maps. CGAL Open Source Project Release 4.0, March 2012, Chapter 27. Режим доступа: http://www.cgal.org. Дата обращения: март 2012 года.

6. Pahl P.J. Topology of Buildings. Lecture Notes, Fachgebiet Bauinformatik, Technische Universität Berlin, 2012, 124 p.

Об авторах: Бильчук Ирина Леонидовна — кандидат технических наук, доцент, доцент кафедры строительной информатики, ФГБОУ ВПО «Московский государственный строительный университет» (ФГБОУ ВПО «МГСУ»), 129337, Москва, Ярославское шоссе, д. 26, +7 (499) 188-51-10;

Паль Питер Ян — доктор наук, профессор, кафедра инженерно-строительных наук, Технический университет Берлина (ТУБ), D-10623, Берлин, ул. 17 июня, д. 135, Федеративная республика Германия; pahl@ifb.bv.tu-berlin.de, +49 (0) 30 314-0; +49 (0) 30 314-23222.

Для цитирования: Bil'chuk I.L., Pahl P.J. Three-dimensional Topological Models of Buildings // Вестник МГСУ. 2012. № 10. С. 289—296.

i Надоели баннеры? Вы всегда можете отключить рекламу.