Skip to content

Commit

Permalink
many small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
kenohori committed Feb 6, 2024
1 parent 74ccdf1 commit 962f19e
Show file tree
Hide file tree
Showing 16 changed files with 158 additions and 137 deletions.
5 changes: 3 additions & 2 deletions 3dbook.tex
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@

\title{3D modelling of the built environment}
\author{Ken Arroyo Ohori \hspace{7mm} Hugo Ledoux \hspace{7mm} Ravi Peters}
\date{\texttt{v0.8}}
\date{\texttt{v0.9}}

\publishers{\centerline{\includegraphics[width=\linewidth]{front-back/campus.png}}}

Expand Down Expand Up @@ -203,7 +203,7 @@

\tableofcontents % Output the table of contents

% \listoffigures % Output the list of figures
\listoffigures % Output the list of figures

% Comment both of the following lines to have the LOF and the LOT on different pages
% \let\cleardoublepage\bigskip
Expand All @@ -217,6 +217,7 @@
% MAIN BODY
%----------------------------------------------------------------------------------------

\cleardoublepage
\mainmatter
\setchapterstyle{kao} % Choose the default chapter heading style

Expand Down
16 changes: 8 additions & 8 deletions 3dcm/3dcm.tex
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ \section{Semantic 3D city models}
\begin{figure*}
\centering
\includegraphics[width=\linewidth]{figs/ssc}
\caption{A building is semantically decomposed into different objects, and each objects is defined with geometry. This building has good spatio-semantic coherence}%
\caption[A building is semantically decomposed into different objects]{A building is semantically decomposed into different objects, and each objects is defined with geometry. This building has good spatio-semantic coherence}%
\label{fig:ssc}
\end{figure*}
that the objects can be further decomposed into semantically homogeneous parts, in 3D city modelling these are often the parts of a buildings (\eg\ an extension to a house) and the type of surfaces (roof, façade, window, door).
Expand All @@ -87,7 +87,7 @@ \section{Semantic 3D city models}
\begin{figure*}
\centering
\includegraphics[width=\linewidth]{figs/denhaag.jpg}
\caption{Part of the semantic 3D city model of The Hague, in the Netherlands. Notice that each building is decomposed into its semantic surfaces (wall, roof, and ground) and there are attributes for each. The model is not textured, but semantic models can have textures too.}%
\caption[Part of the semantic 3D city model of The Hague]{Part of the semantic 3D city model of The Hague, in the Netherlands. Notice that each building is decomposed into its semantic surfaces (wall, roof, and ground) and there are attributes for each. The model is not textured, but semantic models can have textures too.}%
\label{fig:denhaag}
\end{figure*}

Expand Down Expand Up @@ -128,13 +128,13 @@ \section{Semantic 3D city models}
\begin{figure*}
\centering
\includegraphics[width=0.95\linewidth]{figs/citygml_uml_core}
\caption{Overview of the UML model for the core of CityGML\@. (Figure \textcopyright\ 2021 Open Geospatial Consortium, Inc.)}%
\caption[Overview of the UML model for the core of CityGML]{Overview of the UML model for the core of CityGML\@. (Figure \textcopyright\ 2021 Open Geospatial Consortium, Inc.)}%
\label{fig:citygml_uml_core}
\end{figure*}
\begin{figure*}
\centering
\includegraphics[width=0.95\linewidth]{figs/citygml_uml_building}
\caption{Overview of the UML model for the core of CityGML\@. (Figure \textcopyright\ 2021 Open Geospatial Consortium, Inc.)}%
\caption[Overview of the UML model for the core of CityGML]{Overview of the UML model for the core of CityGML\@. (Figure \textcopyright\ 2021 Open Geospatial Consortium, Inc.)}%
\label{fig:citygml_uml_building}
\end{figure*}

Expand Down Expand Up @@ -176,7 +176,7 @@ \subsection{Levels-of-detail (LoDs)}%
\begin{marginfigure}
\centering
\includegraphics[width=\linewidth]{figs/lod4}
\caption{The subdivision of the interior of a building can be modelled. [Figure from \citet{Lowner16}]}%
\caption[The subdivision of the interior of a building can be modelled]{The subdivision of the interior of a building can be modelled. Figure from \citet{Lowner16}}%
\label{fig:lod4}
\end{marginfigure}
We usually assume that lower LoDs have less geometrical and semantical details than higher ones.
Expand All @@ -188,7 +188,7 @@ \subsection{Levels-of-detail (LoDs)}%
\begin{marginfigure}
\centering
\includegraphics[width=\linewidth]{figs/lod_ambiguity_b}
\caption{Two buildings represented in CityGML as LoD2 models. Both are valid LoD2 models.}%
\caption[Two buildings represented in CityGML as LoD2 models]{Two buildings represented in CityGML as LoD2 models. Both are valid LoD2 models.}%
\label{fig:lod_ambiguity}
\end{marginfigure}
a building with roof overhangs can be modelled as LoD2 with them, or without (and therefore the size of its footprint would be larger).
Expand All @@ -198,7 +198,7 @@ \subsection{Levels-of-detail (LoDs)}%
\begin{figure}
\centering
\includegraphics[width=0.9\linewidth]{figs/refinedLODs}
\caption{The improved LoDs for buildings; they are generally referred to as the \emph{TUDelft LoDs}.}%
\caption[The TUDelft LoDs]{The improved LoDs for buildings; they are generally referred to as the \emph{TUDelft LoDs}.}%
\label{fig:refinedLODs}
\end{figure}

Expand Down Expand Up @@ -407,7 +407,7 @@ \subsection{City objects are ``flattened out''}
\begin{figure}
\centering
\includegraphics[width=0.7\linewidth]{figs/cityjson_co}
\caption{The implemented CityJSON classes (same name as CityGML classes) are divided into 1st and 2nd levels.}%
\caption[The CityJSON classes]{The CityJSON classes (same name as CityGML classes) are divided into 1st and 2nd levels.}%
\label{fig:cityjson_co}
\end{figure}

Expand Down
23 changes: 12 additions & 11 deletions LoD2recon/LoD2recon.tex
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ \chapter{3D building reconstruction}%
\caption{}%
\label{subfig:bk-mesh}
\end{subfigure}
\caption{Building reconstruction transforms a point cloud (a) into a mesh model (b).}%
\caption[Building reconstruction transforms a point cloud into a mesh model]{Building reconstruction transforms (a) a point cloud into (b) a mesh model.}%
\label{fig:bk-building-recon}
\end{marginfigure}
It can be considered as one step in the geoinformation chain, since we essentially transform 'raw' and unorganised point measurements into more structured and semantically rich 3D models.
It can be considered as one step in the geoinformation chain, since we essentially transform `raw' and unorganised point measurements into more structured and semantically rich 3D models.
Compared to a point cloud, such models are much more useful for applications such as environmental simulations of wind, air pollution, and noise propagation, but also building energy demand estimation and urban planning in general.
Many of these applications require knowledge about the volume or surface area of a building, or the distinction between the interior and exterior of a building, which is evidently much easier to derive from a mesh with a clearly defined boundary than from a point cloud.
In addition, meshes are typically more compact which makes them more efficient to store and process.
Expand Down Expand Up @@ -75,7 +75,8 @@ \subsection{Reconstruction challenges}
\label{fig:debrug}
\end{figure}

Secondly, we need to consider the quality and completeness of the input data. This mostly relates to how the input data, \ie\ the point cloud, was acquired (compare \eg\ Figure~\ref{fig:pc-quality:low} to \ref{fig:pc-quality:high}).
Secondly, we need to consider the quality and completeness of the input data. This mostly relates to how the input data, \ie\ the point cloud, was acquired (compare \eg\ Figure~\ref{fig:pc-quality:low} to
~ref{fig:pc-quality:high}).
\begin{marginfigure}
\centering
\begin{subfigure}{\linewidth}
Expand All @@ -89,7 +90,7 @@ \subsection{Reconstruction challenges}
\caption{}%
\label{fig:pc-quality:high}
\end{subfigure}
\caption{Varying point cloud qualities. a) low point density with missing facades, b) high point density and points on facades.}%
\caption[Varying point cloud qualities]{Varying point cloud qualities. (a) low point density with missing facades, (b) high point density and points on facades.}%
\label{fig:pc-quality}
\end{marginfigure}
Most building reconstruction methods work with point clouds that are captured from an airplane.
Expand All @@ -109,7 +110,7 @@ \section{Data driven versus model driven building reconstruction}

\begin{marginfigure}
\includegraphics[width=\linewidth]{figs/data-driven.png}
\caption{Data driven reconstruction based on a triangulation of the input points \citep{Axelsson99}}%
\caption[Data driven reconstruction based on a triangulation of the input points]{Data driven reconstruction based on a triangulation of the input points \citep{Axelsson99}}%
\label{subfig:data-driven}
\end{marginfigure}
The data driven approach strongly relies on the quality and completeness of the input data.
Expand All @@ -119,7 +120,7 @@ \section{Data driven versus model driven building reconstruction}

\begin{marginfigure}
\includegraphics[width=\linewidth]{figs/model-driven.png}
\caption{Model driven reconstruction by fitting parametrised roof models \citep{Lafarge10}}%
\caption[Model driven reconstruction by fitting parametrised roof models]{Model driven reconstruction by fitting parametrised roof models \citep{Lafarge10}}%
\label{subfig:model-driven}
\end{marginfigure}
The model driven approach, on the other hand, relies on strong modelling assumptions about the building shape.
Expand Down Expand Up @@ -188,7 +189,7 @@ \subsection{Method overview}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{figs/reconstruction-overview.pdf}
\caption{The main steps in the reconstruction algorithm. 1) the classified (aerial) point cloud is cropped on the 2D footprint, 2) planes and their boundaries are detected in the point cloud, 3) from the roof planes the intersection lines and boundary lines are extracted, 4) the lines are regularised and projected onto the 2D footprint, 5) the roof-partitions is created. This is a DCEL where each face is labeled with the corresponding plane (from 2, compare colors). 6) the roof-partition is extruded into a 3D mesh. \\If a terrain plane is assigned to a face from the roof-partition, that face is removed (2 and 5).}%
\caption[The main steps in the reconstruction algorithm]{The main steps in the reconstruction algorithm. 1) the classified (aerial) point cloud is cropped on the 2D footprint, 2) planes and their boundaries are detected in the point cloud, 3) from the roof planes the intersection lines and boundary lines are extracted, 4) the lines are regularised and projected onto the 2D footprint, 5) the roof-partitions is created. This is a DCEL where each face is labeled with the corresponding plane (from 2, compare colors). 6) the roof-partition is extruded into a 3D mesh. \\If a terrain plane is assigned to a face from the roof-partition, that face is removed (2 and 5).}%
\label{fig:method-overview}
\end{figure}

Expand Down Expand Up @@ -269,7 +270,7 @@ \subsubsection{Construction of the roof-partition}
After the optimisation is complete, the edges for which the two incident faces are assigned to the same roof plane are removed from the partition.
The faces in the resulting \emph{final roof-partition} are referred to as \emph{roof-parts}.

\subsubsection{Extrusion}
\subsubsection{Extrusion}%
\label{sec:extrusion}
The final roof-partition is transformed into a 3D building mesh using extrusion.
This is done by exploiting the topological information that is available in the the DCEL of the roof-partition, as illustrated in Figure~\ref{fig:extrusion}.
Expand All @@ -286,7 +287,7 @@ \subsubsection{Extrusion}
\caption{}%
\label{subfig:3ddcel}
\end{subfigure}
\caption{The roof-partition is represented as a DCEL (a). When extruding to a 3D mesh (b), each edge in the roof-partition becomes a wall face in the 3D Mesh. Each vertex in the roof-partition (\eg\ $v_1$) needs to be replicated for each incident face: \eg\ $v_{1A}$, $v_{1B}$, $v_{1C}$ in the 3D Mesh.}%
\caption[The roof-partition represented as a DCEL]{The roof-partition is represented as a DCEL (a). When extruding to a 3D mesh (b), each edge in the roof-partition becomes a wall face in the 3D Mesh. Each vertex in the roof-partition (\eg\ $v_1$) needs to be replicated for each incident face: \eg\ $v_{1A}$, $v_{1B}$, $v_{1C}$ in the 3D Mesh.}%
\label{fig:extrusion}
\end{figure}
Notice that the building mesh consists of three types of faces, \ie\ the floor, the roof and the wall faces.
Expand All @@ -295,7 +296,7 @@ \subsubsection{Extrusion}
\begin{marginfigure}
\centering
\includegraphics[width=\linewidth]{figs/extrusion-edge.pdf}
\caption{The edge $e$ (comprising of two halfedges $e_A$ and $e_B$) is incident to two faces ($f_A$ and $f_B$) and two vertices ($v_1$ and $v_2$). In case of a roof-partition, the height at $v_1$ on face $f_A$ is denoted as $h_{1A}$.}%
\caption[An edge incident to two faces]{The edge $e$ (comprising of two halfedges $e_A$ and $e_B$) is incident to two faces ($f_A$ and $f_B$) and two vertices ($v_1$ and $v_2$). In case of a roof-partition, the height at $v_1$ on face $f_A$ is denoted as $h_{1A}$.}%
\label{fig:extrusion-notation}
\end{marginfigure}

Expand All @@ -306,7 +307,7 @@ \subsubsection{Extrusion}
\begin{figure}
\includegraphics[width=\linewidth]{figs/extrusion-edge-cases.pdf}
% \caption{Various possible roof face configurations at edge $e$}%
\caption{Determining wall face geometry and vertex order. $h_{1A}$ denotes the elevation at vertex $v_1$ on face $f_A$ (see Figure~\ref{fig:extrusion-notation}).}%
\caption[Determining wall face geometry and vertex order]{Determining wall face geometry and vertex order. $h_{1A}$ denotes the elevation at vertex $v_1$ on face $f_A$ (see Figure~\ref{fig:extrusion-notation}).}%
\label{fig:extrusion-cases}
\end{figure}
Notice that an edge in the roof-partition can generate 0 (if the incident planes intersect exactly at the edge), 1 or 2 wall faces.
Expand Down
16 changes: 8 additions & 8 deletions bim/bim.tex
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ \section{How BIM came to be}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{figs/volumetric.pdf}
\caption{BIM models focus on volumetric physical elements (centre), whereas 3D GIS models focus on semantic surfaces (left) and the voids between them (right).}%
\caption[BIM models vs.\ 3D GIS models]{BIM models focus on volumetric physical elements (centre), whereas 3D GIS models focus on semantic surfaces (left) and the voids between them (right).}%
\label{fig:volumetric}
\end{figure}

Expand Down Expand Up @@ -118,7 +118,7 @@ \subsection{General organisation of the standard}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{figs/IFC4LayeredArchitecture.png}
\caption{{The four layers in which the Industry Foundation Classes are organised. Source: IFC4.1 specification}}%
\caption[The four layers in the Industry Foundation Classes]{The four layers in which the Industry Foundation Classes are organised. Source: IFC4.1 specification}%
\label{fig:ifclayers}
\end{figure}

Expand Down Expand Up @@ -161,7 +161,7 @@ \subsection{Formats, encodings and federated models}
#416= IFCQUANTITYLENGTH('GrossPerimeter',$,$,0.,$);
#419= IFCQUANTITYAREA('GrossArea',$,$,0.,$);
\end{lstlisting}
\caption{Excerpt of a typical IFC file encoded in STEP\@.
\caption[Excerpt of a typical IFC file encoded in STEP]{Excerpt of a typical IFC file encoded in STEP\@.
After a short metadata header, a file consists of a series of lines, where every line starts with a hash sign (\#), followed by the definition of an entity.
An entity is assigned a numeric ID, followed by an equals sign (=), the name of the entity, and a tuple of its parameters.
These parameters can be empty (\texttt{\$}), a number, a list (a comma separated list enclosed by parentheses), a text string (enclosed by single quotes), or the ID of another entity, among others.}%
Expand Down Expand Up @@ -208,7 +208,7 @@ \subsection{Geometry}
#17083= IFCAXIS2PLACEMENT2D(#17081,#17079);
#17084= IFCRECTANGLEPROFILEDEF(.AREA.,'',#17083,0.885,2.01);
\end{lstlisting}
\caption{Defining a rectangular profile (\ie\ \texttt{IfcRectangleProfileDef}) parametrically.
\caption[Defining a rectangular profile parametrically]{Defining a rectangular profile (\ie\ \texttt{IfcRectangleProfileDef}) parametrically.
The rectangle extends 0.885 units along the x-axis, which is defined by the direction given in its \texttt{IfcAxis2Placement2D} \((1,0)\), and 2.01 units along the \(y\)-axis (perpendicular to the \(x\)-axis).}%
\label{fig:parametric}
\end{figure}
Expand All @@ -224,7 +224,7 @@ \subsection{Geometry}
\includegraphics[width=\linewidth]{figs/letter_profiles}%
\label{subfig:letter-profiles}
\end{subfigure}
\caption{The IFC standard supports parametric instantiated objects, such as these extrusions of (a) shape profiles and (b) letter profiles.}%
\caption[The IFC standard supports parametric instantiated objects]{The IFC standard supports parametric instantiated objects, such as these extrusions of (a) shape profiles and (b) letter profiles.}%
\label{fig:profiles}
\end{figure}

Expand All @@ -239,7 +239,7 @@ \subsection{Geometry}
#243=IFCHALFSPACESOLID(#242,.F.);
#244=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#237,#243);
\end{lstlisting}
\caption{Removing part of a volume by subtracting a half-space from it using a Boolean operation.}%
\caption[Removing part of a volume using a Boolean set operation]{Removing part of a volume by subtracting a half-space from it using a Boolean set operation.}%
\label{fig:csg}
\end{figure}

Expand All @@ -253,7 +253,7 @@ \subsection{Geometry}
\includegraphics[width=\linewidth]{figs/ifc-2}%
\label{subfig:ifc-2}
\end{subfigure}
\caption{The IFC standard supports objects defined through sweeps, which are defined by (a) an \texttt{IfcPCurve} (black spiral) and a \texttt{SweptArea} (blue disk), in this case resulting in (b) a screw shape.}%
\caption[The IFC standard supports objects defined through sweeps]{The IFC standard supports objects defined through sweeps, which are defined by (a) an \texttt{IfcPCurve} (black spiral) and a \texttt{SweptArea} (blue disk), in this case resulting in (b) a screw shape.}%
\label{fig:sweeps}
\end{figure}

Expand All @@ -264,7 +264,7 @@ \subsection{Geometry}
#124= IFCCARTESIANPOINT((15.,13.,0.));
#126= IFCPOLYLOOP((#120,#122,#124));
\end{lstlisting}
\caption{Defining a simple polygon (\ie\ \texttt{IfcPolyLoop}) using B-rep.
\caption[Defining a simple polygon using B-rep]{Defining a simple polygon (\ie\ \texttt{IfcPolyLoop}) using B-rep.
Every point is defined as an \texttt{IfcCartesianPoint}, then the polygon is defined by a list of points.}%
\label{fig:brepbim}
\end{figure}
Expand Down
Loading

0 comments on commit 962f19e

Please sign in to comment.