How to get features in BIM Model

I’m trying to get 3D Models (most likely from Navisworks) into Cesium and allow feature picking as seen in the Sandcastle BIM Model example 3D Tiles BIM.
I have had success with the actual model being tiled and displayed by converting it to both FBX and OBJ formats, however the scene.pick function returns an anonymous object:

{content: Batched3DModel3DTileContent, primitive: Cesium3DTileset}

When I inspect the content object, the features property is undefined.

whereas in the Sandcastle example the same picking code returns:

Cesium3DTileFeature {_content: Batched3DModel3DTileContent, _batchId: 21230, _color: Color}

The content of this object has heaps of features.

I must be missing something fairly fundamental in how this all works, and haven’t been able to find much in the way of documentation on how to get this information into the Model / Tiles.

Unfortunately I’m not very familiar with Navisworks and am trying to allow users to import 3D Models to be tiled but I need to know how to prepare the models in order to obtain the features in Cesium picking.


After doing more research and playing around, I have realised that this is due to the information not being transmitted from Revit to FBX or OBJ during the export. I have used a trial version of FME to convert from a Revit IFC directly to 3D Tiles and uploaded those with great success.

I guess the only follow up query (which I may have to create another topic for?) would be does anyone know if there is progress on supporting IFC to 3D Tiles using ION?

Hi @sunsworth,

Thanks for your question and for investigating on your end. Supporting this is something we want to do, but unfortunately we do not have a timeline for it at this time.


Hi @sunsworth, would it be possible for you to share any info/documentation related to the FME script? Sounds interesting!

1 Like

Hi @TomPovey ,
using FME Desktop was very simple, all I did was:
Add Reader

  • drag my IFC file onto the workspace. There are two IFC formats available 1) Industry Foundation Classes STEP/XML and IFC with Data Views - I needed the one called IFC with Data Views.
  • select the appropriate Coordinate System mine was in MGA 56
  • you can either apply different transformations for individual feature types or just merge them into one… for my purposes I just merged them into one by selecting ‘Single Merged Feature Type’
    Add Writer
  • Click ‘Writer’ on the toolbar
  • select ‘Cesium 3D Tiles’ in the Format
  • specify a Folder to output to in ‘Dataset’ field
  • set the coordinate system to LL-WGS84
    Execute Transformation and upload to Cesium
  • just click Run
  • find the output folder where you have the tileset.json file and a data folder.
  • compress the tileset.json file and the data folder together into a zip file
  • add this zip file as a new asset using the 3D Tiles format
  • DONE

I also verified you can use workspace created above in a command line so you can execute subsequent transformations in a scripted workflow. see FME Command Line

FME seems extremely powerful, but comes at a price tag to suit.
the files I tested with were real-world designs from a Civil Construction Project; exported from Revit, and everything just worked seemlessly as described above.