Split a large model into multiple buildings with individual metadata

Hello,

We’re a bit confused in our team regarding uploading multiple buildings with individual metadata. We have a large 3D model of an entire city consisting of multiple smaller meshes. Whenever we upload the model the buildings aren’t separate and there’s no way to add metadata to to it or the whole model.

What’s an appropriate format we can use that:

  • Allows us to upload multiple buildings without combining them into a single 3d object
  • Allows each building to have its own metadata
  • Still allows us to adjust the position of the entire set of buildings but also of individual buildings, if possible

Hello @zoodinger, welcome to the forum. The two options for this are:

  1. CityGML
  2. KML/COLLADA

Typically, software like CityEngine, Rhino, 3DCityDB, SketchUp, and others will allow you to export your city data in one of these formats. How is the data being generated?

Here is some information about KML/COLLADA: Create 3D Tiles from KML/COLLADA with Per-Building Data – Cesium

Here is a sample KML file (with just one building):

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
  <name>Name of Feature</name>
  <Model>
    <Link>
		<href>filename.dae</href>
	</Link>
	<Location>
		<longitude>xxx.xxx</longitude>
		<latitude>xxx.xxx</latitude>
		<altitude>xxx</altitude>
	</Location>
	<Orientation>
		<heading>xxx</heading>
		<tilt>xxx</tilt>
		<roll>xxx</roll>
	</Orientation>
	<Scale>
		<x>1</x>
		<y>1</y>
		<z>1</z>
	</Scale>
  </Model>
</Placemark>

Using CityGML or KML/COLLADA will allow you to upload multiple buildings without combining them into a single 3D object, and it will also allow each building to have its own metadata. You can test the metadata by clicking on a building in Sandcastle.

As for adjusting the positions of the buildings, could you tell me more about the workflow you’re looking for there? If the source data is already georeferenced via CityGML or KML/COLLADA, you wouldn’t be able to use the Adjust Tileset Location GUI option in ion, but you could reposition the buildings in the source data itself. You may also be able to move them client-side using CesiumJS, if that’s what you’re looking for.

Here is some general information on file formats accepted by the tilers: Tiler Data Types and Formats – Cesium

Matt