This sample can be used to visualize all converted supported BIM formats (Binz, IFC, Revit, Navisworks) datasets together with their original metadata. Their geometry needs to be converted to and served as OGC 3D Tiles. Their feature information needs to be converted to and served as GeoJSON or WFS service. To convert and serve the data, you can use LuciadFusion.
All these datasets have been geolocated and converted to OGC 3D Tiles and GeoJSON through LuciadFusion. This process retains metadata information, as well as the tree-structure of the original BIM files.
The OGC 3D Tiles data is then displayed using a TileSet3DLayer. The GeoJSON data is queried via an UrlStore, the tree structure of the BIM files is shown in the top-right "BIM Tree" panel.
The sample also allows loading your own converted BIM datasets, with or without feature information. You can do this by choosing "Add a custom dataset ..." in the data selector dropdown.
The layer has been made selectable, and uses the featureID to distinguish individual objects. When you click on an object, it is highlighted and its properties are shown in the bottom-right "Selected BIM entity" panel. The sample code also shows different ways of listening to selection events, and how to retrieve relevant data from the selected object. Note that you can easily distinguish between currently visible and occluded selected items. The occluded ones only get a highlighted outline.
An asset navigation controller has been added to ease navigation. You can use the default navigation keys to move your camera left, right, forward, backward, up (E) and down (A or Q) without the restriction of walls and floors. When navigating using your mouse, you get a gizmo-controller to help you see the anchor point of navigation as well as arrows when you are panning and circles when you are rotating.
Note that for custom datasets, the initial camera position is chosen to be in the center of the bounding box of the model. Although this might put the camera at an odd position, inside a wall for example, it is the only way to make the navigation controller work. You can easily get yourself in a better position by using the navigation keys. You can also fit to a selection to get a potentially better camera position.
Properties of features are queried on-demand from the GeoJSON dataset. The sample also contains the code that would be needed to query a WFS service with the feature information.
Note that properties for custom datasets can only be queried if you provided a Features URL when adding the dataset.
This sample shows a number of visual effects that enhance the display of CAD data:
map.effects.antiAliasing): avoid aliasing effects on sharp CAD object edges.map.effects.light): enhances the 3D visualization.map.effects.ambientOcclusion): enhances realism by adding soft shadows.map.effects.environmentMap): allows showing a skybox and defining a reflection map that will be used when PBR materials are available on the model.