How to segment point cloud and assign IDs to segmented instances?

The Sandcastle demo 3D Tiles Point Cloud Classification highlight different objects in the point cloud using existing object IDs.

classificationTileset.style = new Cesium.Cesium3DTileStyle({
  color: {
    conditions: [
      ["${id} === 'roof1'", "color('#004FFF', 0.5)"],
      ["${id} === 'towerBottom1'", "color('#33BB66', 0.5)"],
      ["${id} === 'towerTop1'", "color('#0099AA', 0.5)"],
      ["${id} === 'roof2'", "color('#004FFF', 0.5)"],
      ["${id} === 'tower3'", "color('#FF8833', 0.5)"],
      ["${id} === 'tower4'", "color('#FFAA22', 0.5)"],
      ["true", "color('#FFFF00', 0.5)"],
    ],
  },
});

My point cloud lacks segmented instance IDs. How can I segment the point cloud and assign IDs to instances?