We have a customer from the building industry. He wants to see boreholes visualized in 3D with the ArcGIS Runtime .NET.
So, I made some tests with a single subsurface geometry, prepared in a scene layer package.
I used the following code, by the way.
<SPAN class="keyword token">var</SPAN> scene <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Scene</SPAN><SPAN class="punctuation token">(</SPAN>BasemapType<SPAN class="punctuation token">.</SPAN>Topographic<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">await</SPAN> scene<SPAN class="punctuation token">.</SPAN><SPAN class="token function">LoadAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> arcGisSceneLayer <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ArcGISSceneLayer</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Uri</SPAN><SPAN class="punctuation token">(</SPAN>AppDomain<SPAN class="punctuation token">.</SPAN>CurrentDomain<SPAN class="punctuation token">.</SPAN>BaseDirectory <SPAN class="operator token">+</SPAN> <SPAN class="string token">@"\data\Baugrube_WGS84.slpk"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">await</SPAN> arcGisSceneLayer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">LoadAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
scene<SPAN class="punctuation token">.</SPAN>OperationalLayers<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>arcGisSceneLayer<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> elevationSource <SPAN class="operator token">=</SPAN>
<SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ArcGISTiledElevationSource</SPAN><SPAN class="punctuation token">(</SPAN>
<SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Uri</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token"><SPAN>"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fscene.arcgis.com%2Farcgis%2Frest%2Fservices%2FBerlin_DTM%2FImageServer" target="_blank">http://scene.arcgis.com/arcgis/rest/services/Berlin_DTM/ImageServer</A><SPAN>"</SPAN></SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> sceneSurface <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Surface</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
sceneSurface<SPAN class="punctuation token">.</SPAN>ElevationSources<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>elevationSource<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
scene<SPAN class="punctuation token">.</SPAN>BaseSurface <SPAN class="operator token">=</SPAN> sceneSurface<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> targetGeometry <SPAN class="operator token">=</SPAN> arcGisSceneLayer<SPAN class="punctuation token">.</SPAN>FullExtent<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> camera <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Camera</SPAN><SPAN class="punctuation token">(</SPAN>targetGeometry<SPAN class="punctuation token">.</SPAN><SPAN class="token function">GetCenter</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">354.0970719164464</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">67.441317295290986</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
scene<SPAN class="punctuation token">.</SPAN>InitialViewpoint <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Viewpoint</SPAN><SPAN class="punctuation token">(</SPAN>targetGeometry<SPAN class="punctuation token">,</SPAN> camera<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
MySceneView<SPAN class="punctuation token">.</SPAN>Scene <SPAN class="operator token">=</SPAN> scene<SPAN class="punctuation token">;</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
The problem is, that I have no chance to see the data in subsurface. The ground is not transparent, the camera could not be rotated below the surface.
Only the top of the geometry is visible, which is above the ground. (that's the situation the customer will have later, too. The boreholes are filled up with cement and will have an overlap of a few centimeters above surface).

With setting the
sceneSurface<SPAN class="punctuation token">.</SPAN>ElevationExaggeration <SPAN class="operator token">=</SPAN> <SPAN class="number token">0.9</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
I could see the full geometry:

But then I will not get a feeling of how deep the geometry is below surface.
(by the way - this seems not to be a solution for geometries which are located in oceans as I did not succeed in making data visible this way)
My questions:
- Am I right or did I make any mistakes? Is there a solution for my scenario?
- If it is not possible so far: how is the roadmap, when will this be possible?