CityGML Reader

CityGML is an OpenGeospatial (OGC) standard for describing 3D models of cities and landscapes. It describes buildings, roads, rivers, bridges, vegetation, and city furniture using a hierarchical XML format. CityGML has support for levels of details (LODs) which can be used to speed up loading and rendering. Recently, we have added a new CityGML reader to VTK and ParaView in order to support IARPA CORE3D, an ongoing effort which is producing Urban 3D data from satellite imagery and point clouds. The reader creates a multiblock dataset with field arrays to specify the texture file and colors (material) associated with each block.

Sample CityGML: Three LOD3 Buildings (CityGML v1.0). File read into ParaView as a multiblock.

Because VTK does not support (yet) applying texture or color to individual blocks, we use a ParaView script (see citygml-paraview-apply-texture) to flatten the multiblock dataset so we can color and texture the resulting polygonal datasets. We use a similar technique in VTK to test the reader (see TestCityGMLReader.cxx)

Sample CityGML: Three LOD3 Buildings (CityGML v1.0). Multiblock flattened, textured and colored in ParaView.

The reader has two parameters: level of detail (LOD) which specifies the LOD we read the elements from, and use transparency as opacity. Because the sample file used to generate the previous images specifies opacity values rather than transparency values, the reader needs this second option set. The figure below shows another sample CityGML file displayed in ParaView.

Sample CityGML: First v2.0 CityGML file (aka ‘Railway’) displayed in ParaView

The CityGML reader is available in VTK and ParaView source code. If you have any questions or need consulting related to this work,  please email us at

Supported by the Intelligence Advanced Research Projects Activity (IARPA) via Department of Interior/ Interior Business Center (DOI/IBC) contract number D17PC00286. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon. Disclaimer: The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of IARPA, DOI/IBC, or the U.S. Government.

Update 2020/02/12

We can now load files from the NYC 3-D Building Model and the Berlin-3D datasets as shown in the following pictures.

New York City 3D Building Model dataset, first file
Berlin 3D dataset, first file

There is also an additional parameter, number of buildings that specifies how many buildings should be read from the file.


Leave a Reply