Point Clouds to BIM

Point Clouds to BIM
Methods for Building Parts Fitting in Laser Scan Data
Christian Tonn1, Oliver Bringmann2
1, 2 FARO
3D Software GmbH
1 [email protected], [email protected]
Abstract. New construction within existing buildings requires documentation of the
existing buildings, in a form that one is familiar with from new construction or
architectural design. Laser scanning is a powerful tool to survey the built reality. It
provides a replica of the existing building in the form of a point cloud. The difficulty is
to analyse the resulting amounts of data that has been generated and being able to
interpret it as a Building Information Model (BIM). This article proposes a new generic
approach for pattern recognition of architectural objects. The procedure is introduced
through the use of two examples - polygon fitting, which is important for the generation
of new building element classes and wall detection. The second part describes how
individual components can be automatically connected to consistent networks. BIM
systems walls should be aligned, within predefined limits of accuracy, either
perpendicular to or in line with each other.
Keywords: point cloud, BIM, pattern recognition, components, wall alignment.
1
Fully automated versus semi-automated pattern recognition
Obviously every user wants automatic and error free pattern recognition of components
in point clouds. But in the real world of architecture, fully automated procedures come
very quickly on their limits. The subsequent time required for fault detection and
correction exceeds the initial advantage of the automated procedure. Workflows are
required, that leave control with the user, but at the same time, significantly improve
the manual modelling.
As has already been explained in [1], fully automated methods are inadequate in
practice for the following reasons:



Interference objects in point clouds such as furniture, panelling and room
plants inhibit automated pattern recognition as they are not capable of being
modelled or singled out in the target system.
Real objects are not as abstract as they are modelled in the BIM system.
Instead, in reality there are many more details (see Fig. 1) and characteristics
than can currently be simulated in the computer.
Point clouds are partly incomplete because of shadows, which the computer
should invent, to create a correct model.
Fig. 1. A high definition point cloud of a ground floor with façades
Semi-automated procedures involving the user, have a clear advantage in this situation,
because they can utilise the user's expertise and experience for modelling and pattern
recognition as well as make the whole procedure more accurate and quicker than by
just simply tracing over it manually.
2
Polygon Fitting
The task of 2D-polygon fitting is, after a very roughly estimate of the polygon to be
defined, to determine its optimum location within the point cloud. The best degree of
quality is when the sum of the distances of all polygon segments to the densest points
in the point cloud is at a minimum. To enable a complex search (e.g. by using simulated
annealing [3]), an extremely fast computable and at the same time a very clear measure
of quality is introduced. Especially with many independent parameters, such as when
fitting a polygon, efficiency becomes important.
Fig. 2. Section through the point cloud (black) with the initial polygon (red) used for fitting
Figure 2 shows an initial polygon (red), used as the starting position, over a section
through the point cloud (black). Now polygon parameters are now optimised by using
an iterative process. In this example, the parameter set consists of the point coordinates
of the polygon corners. This set of parameters is varied in all possible combinations by
an ever decreasing epsilon value. An error function calculates the measure of quality of
the new parameter set and uses this new parameter set for the polygon, if its measure
of quality is better (simulated annealing procedure). Here the main loop as pseudo code:
Repeat until the measure of quality is satisfactory.
Select a parameter at random.
Slightly modify the parameter.
Calculate the measure of quality.
Accept or reject parameter variation.
The main problem with this approach lies in the effort required for the calculation of
the measure of quality, which must be determined many times, especially with a lot of
parameters.
Fig. 3. Equidistant points along the polygon (red) on a distance transformed point cloud
For this the following approach [4] is suggested:
1.
2.
3.
The error function is smoothed out in a look-up image, in which the section
through the point cloud is distance-transformed and filtered into a so called
"Potential Profile" (see Fig. 3).
The polygon is divided equally by polygon segment points.
Now the smallest distance of each polygon segment point to the point cloud
can be quickly determined. This is achieved by simply reading the pixel value
in the "Potential Profile". The sum of these values read from the look up values
results in the measure of quality for the current polygon fit.
Through this preliminary computation approach of the "Potential Profile" it is possible
to very quickly optimise of the polygon fitting and to adapt the topologically and
diagrammatically defined polygon to the point cloud.
Calculate the Potential Profile.
Repeat until the measure of quality is satisfactory.
Select a parameter at random.
Slightly modify the parameter.
Very quickly calculate the measure of quality.
Accept or reject the varied parameter.
3
Wall Fitting
In the current BIM system you must first select the wall type together with the
appropriate wall thickness before creating a wall. Then select the precise start and end
points of the wall axis.
Fig. 4. Point cloud slice as a floor plan point density image with threshold
When fitting the walls the information to wall type and wall thickness together with the
correct wall axis should be derived from the point cloud. The problem to be solved is,
with just two mouse clicks anywhere inside of the wall, to determine the position and
type of the wall and insert the wall entity.
The procedure first reduces the three-dimensional point data of the floor level to be
analysed to a grey scale image (floor plan point density image with threshold, see Fig.
4). It is assumed the wall is vertical and straight. The approximate height of the wall is
also given. This allows the problem to be reduced to a 2D analysis. The relevant section
of the image (see Fig. 6) is converted, by using a customised distance transformation,
into a second image, which shows the shortest distance of each image point to the next
densest point cloud cell (see Fig. 7).
In contrast to the previously discussed polygon fitting procedure to create the
"Potential Profile", in this use case, a grey scale image (floor plan point density image
with threshold) is converted in to the "Potential Profile". This approach also takes into
account the point density information in the point cloud. The grey scale image is simply
split into 8 luminous intensity segments, which in turn can be considered as a distance
transformed black and white image. These 8 distance transformed images are then
weighted again according to their original luminous intensity values and combined into
a "Potential Profile".
Furthermore, the "Potential Profile" is split into two separate fields. The boundary is
the initial line clicked by the user. Based on this border two separate fields are formed,
an upper and a lower field, where the point cloud density images can be, independently
of each other, converted into a "Potential Profile". Thereby one avoids the possibility
that point cloud points on one side of the line initially clicked can influence the line
fitting results of the opposite side.
These distance images allow a local minimisation of two parallel lines which can be
performed extremely quickly. These lines represent the inner and outer surfaces of a
straight, vertical standing wall.
d1
α
d2
Clicked points
Fig. 5. Diagram of wall fitting
The three optimising parameters to be determined for this wall fitting function are:
1.
2.
3.
the angle of rotation α of the wall axis to the initially clicked line,
the "upper" distance d1 of the wall surface and
the "lower" distance d2 of the wall surface to the rotated click line (see Fig.
5).
In contrast to a fully automated procedure the user can here additionally use corrective
intervention, if the wrong line segment (e.g. of a window etc.) was found for the local
optimum of the wall surface. After a first quick optimisations iteration, the user has the
option to click on up to 4 correction points in the image, which will have a corrective
effect on the start position of the two line segments. After entering a correction point a
new optimisations iteration is carried out in order to adapt the inner and outer sides of
the wall onto the point cloud.
Fig. 6. The wall fitting optimisation procedure - find two parallel lines
Fig. 7. A distance image with red lines detected on the local minimum
Fig. 8. Detected wall thickness and location - showing the pre-sorted wall type catalogue
After the wall thickness information has been obtained, the user can select the
appropriate wall type from the pre-sorted BIM catalogue of all wall types (see Fig. 8)
and draw it, or the precise wall thickness measurement can be appropriately rounded to
a meaningful value and continued to be used.
4
Align Walls
In the next step the fitted walls, all of which have precisely the measured values from
the point cloud, will be adapted to meet the requirements of a generalised BIM model
[2]. These requirements include: perpendicularity, parallelism, continuous alignment
with changing wall thicknesses and automated trimming/extending of wall segments
(see Fig. 9). The core problem is to form the optimal wall disjoint clusters. Within a
cluster, the requirements are enforced to minimise the deviation from the point cloud.

Fig. 9. Wall segments of a floor plan before and after the "Align Walls" function. The walls in
a reference system are aligned perpendicular to, parallel and in-line with each other.
Fig. 10. Align Walls in PointSense for Revit: The automatically detected reference systems are
shown in colour.
The algorithm for this purpose can be roughly divided into three steps, which are
processed in sequence (see fig. 11):
1. Rotate – Each wall segment is rotated so that it lies within its "maximum
deviation for reference systems", and that parallel clusters are created. A
reference system consists of a main direction angle and an increment angle
(usually 90°) in the XY ground plane. Such a reference system will be assigned
to each of the walls (see Fig. 10).
2. Axial alignment – It is checked to see whether all parallel walls within their
"maximum deviation for wall axis alignment" can be moved onto a common
axis. This axis can lie on either the inside or the outside of the wall. The side
having the smallest deviation from the fitted start position of the wall is
chosen. Once again clusters are formed for creating the wall axes.
3. Wall Trimming – Within a specified search radius, all the ends of the wall
segments are automatically trimmed or extended to create a closed floor plan.
Original
Step 1 - after rotate
Step 2 - after axial
alignment
Step 3 - after wall
trimming
Fig. 11. The three steps of the algorithm
Below the algorithm is semi-formally explained in more detail:
Rotate
1. The total number of walls is W = {w…}
2. Generate user-defined reference systems URS = {urs…} by the combining of:
a. If applicable: a single one for North (with main direction angle 0°)
b. If applicable: for each reference direction manually created by the user
There are so many clusters formed C = {c...}, as there are entries in the URS
Each cluster has access to its main direction c.direction
3. Try to assign all walls w, to the best fitting cluster c, i.e.
w is an element of c, precisely for all c' (c' not equal to c) where:
angle(w.direction, c.direction + n * increment angle) <
angle(w.direction, c‘.direction + n * increment angle)
AND
angle(w.direction, c.direction + n * direction angle) < angular tolerance
with natural number n
4.
5.
6.
7.
with natural number n, that leads to a minimum angle
In exceptions some walls are left over.
Generate, by automated clustering the possible directions ARS = {ars...} of the
remaining walls AW := W - (union of all walls c).
There are minimum 0 maximum |AW| clusters AC = {ac } formed.
Arrange all items from AW in an ac analogous to rule (3) above.
C := C + AC
Rotate all walls of a cluster c on the c.direction n * increment angle
with natural number n, that leads to a minimum angle
This should always be possible for a cluster.
Axial Alignment
8. Create by automated clustering of possible axes A = (a ...) for all subsets of
parallel walls.
The axis of an axially aligned cluster fc is fc.a
9. Move all of the walls of a cluster fc to fc.a, if permitted by the "maximum
deviation for wall axis alignment", if more than one is applicable use the best
one.
This should always be possible for a cluster.
Wall Trimming
10. Now considered the wall segment ends. All nearby intersection points in the XYplane are joined to neighbouring wall segments, which lie within the search radius.
These intersections will be formed from the respective wall segment ends that are
being considered.
11. Now the wall segment end is extended or shortened to its most remote intersection
point with the adjoining segments.
12. The wall in the BIM system being used is defined by its mean centre line. Given
that the wall axes are now topologically and geometrically correctly joined, the
BIM system being used takes over the precise detailed modelling of the wall
connections.
Below is described how "automated clustering" works, when used for both rotating and
axial alignment. The described algorithm is adopted from the k-nearest neighbour
algorithm [5]. The difference is, that in our case the number of clusters has to be
computed to meet the user defined deviation parameters. First, the rotation should be
considered:
1.
Generate for each wall a separate reference system, that does not already exist
for this main direction angle. At this point the error (i.e. the "maximum deviation
for reference systems") should still be zero.
2.
If the error is below the given tolerance, proceed as follows:
a. Reduce the number of reference systems by the one whose sum of the
squares of all of the errors results in the smallest increase in error. Also check
all reference systems for possible "omission".
b. Add the walls belonging to the removed reference system to the most
suitable reference system still remaining.
c. Calculate the resulting maximum error. If it exceeds the "maximum
deviation for reference systems" immediately exit the loop or otherwise
continue from "Point a.".
In this way the necessary number of reference systems together with their main
direction angle are automatically determined, to keep them within a certain maximum
deviation.
The same procedure is employed for the automated clustering for axial alignment.
Start with all of the walls in a single "axial alignment" group and then remove the group
with the smallest error as long as you are still within the user-defined tolerance.
Fig. 12. "Align walls" - Coloured wall axes in a three storied building.
This approach obviously is an algorithm involving mean square time complexity in
relation to the number of walls. The approach can be speeded up by heuristics, where
the group of the walls to be examined has been previously subdivided. So, for example,
in wall groups that could never be aligned with each other because of the set error
tolerance. Because the individual calculation and error evaluation steps themselves are
not so time consuming, the procedure can be applied to entire buildings in a reasonable
amount of time. The three floors of the building shown (see Fig. 12) required around 3
seconds for the computation of "Align walls" on a commercially available desktop PC
(Core i5-3570; 3.4 GHz).
5
Outlook
The "Fitting" method presented in the article should also be used for fitting other BIM
component types. It is worth mentioning here that they would assist in the detection of
windows, doors and openings as well as beams and pipes. Similarly alignment, axial
alignment and trimming should also be extended to other BIM component types. The
semi-automated workflows presented, together with their own algorithms facilitate an
efficient work process. There is a wide range of potential applications for pattern
recognition in point clouds.
References
1. Braunes, J.:, Von der Punktwolke zum Building Information Model (BIM) - Konsequenzen
und Wege für die Bestandserfassung, in VDVmagazin 2/14, 132-136 (2014)
2. Bringmann, O.: Vom Bauaufmaß zum konsistenten Bauwerksmodell, in Nutzerorientierte
Bausanierung, Verlag der Bauhaus-Universität Weimar, Weimar, 21–26 (2010)
3. Lengauer, T.: Combinatorial Algorithms for Integrated Circuit Layout, B. G. Teubner,
Stuttgart (1990)
4. Rosenfeld, A. and Pfalz, J.: Distance Functions in Digital Pictures, Pattern Recognition Vol.
1, 33-61 (1968)
5. Altman, N. S.: An introduction to kernel and nearest-neighbor nonparametric regression, in
The American Statistician 46 (3), 175–185 (1992)