We’re excited to announce the first release of 2025! This update brings a host of powerful new features designed to enhance how you explore and share 3D stories. With key updates focused on improving layer support, Scene Viewer continues to evolve as the go-to tool for immersive 3D experiences.
View multiple BIM models
The experience of exploring Building Scene Layers (BSL) in Scene Viewer has come a long way since its initial release. With the new feature to toggle on or off “Show Full Model”, you’ll enjoy a more intuitive and detailed view of all BSL models in your scene. This enhancement makes it easier for you to compare and analyze structures, helping you make more informed decisions. Whether you’re managing assets, inspecting construction sites, or exploring expansive areas like campuses and airports, this update is designed to streamline your overall experience.

Add Cover, Caption, and Legend in Presentation Mode
Scene Viewer’s updated presentation mode takes your presentations to the next level by letting you integrate rich, dynamic content. With new features such as the ability to capture legends, or adding slide descriptions as captions or cover, you can prepare your slides for an interactive and compelling 3D storytelling. Whether you’re showcasing a new urban design proposal or presenting analysis results, this enhancement helps you communicate your ideas more effectively.

New Mobile User Interface
We’ve also improved Scene Viewer’s mobile user interface to provide a more intuitive and streamlined experience. Now, you can easily navigate and access 3D content representing a small community to a massive city, even on a smaller screen. Explore the 3D Web Scene of Cantabria, Spain, featuring more than 51.9 billion LiDAR data points on your mobile device to experience the improvements.

Support OGC Web Coverage Service (WCS) layer type
Esri’s open vision for advancing global geospatial interoperability is powerfully demonstrated by our expanded support for the OGC Web Coverage Service (WCS) layer type. The WCS standard enables seamless access to rich raster datasets—such as elevation values from digital elevation models (DEMs) or multispectral pixel values from satellite imagery—by delivering geospatial “coverages.” By integrating WCS support, we reinforces our commitment to open standards, ensuring users worldwide can connect effortlessly to the data they need.

Duplicate Feature Layer and Scene Layer
The long-requested ability to duplicate Feature and Scene Layers in Scene Viewer is now here, making it easier to replicate work without starting from scratch. You can quickly create exact copies of layers, saving time and ensuring consistency across projects.

Pop-up configurations for Voxel layer
Scene Viewer now supports Voxel layers pop-up configuration. When you click and highlight features in your scene, pop-ups display in-depth information about your features. In Layer Properties settings, you can configure pop-ups for point, line, polygon, 3D object and also Voxel layers. Customize the way pop-ups display so the important information stands out better.
Additional Editing tools
Another enhancement is the addition of a Drawing toolbar and shared templates in the Editor tool. The Editor now includes a draw toolbar in create workflows, making it easy to switch between different drawing tools when creating features. The new tools for polygons include freehand, rectangle, and circle, while freehand-polygon is available for polylines.

We’re excited to see how these new features and improvements will empower you to explore even more possibilities in 3D. Stay tuned for future updates and tutorials to help you get the most out of Scene Viewer!
Will this data be coming to the Living Atlas any time soon?
Let me check with the team to find whether this can be made available via Living Atlas. Thanks for the suggestion.
Just an FYI: I finally got a sample map service running with that data and it is accessible publicly.
https://sampleserver6.arcgisonline.com/arcgis/rest/services/NYTimes_Covid19Cases_USCounties/MapServer
here is a blog where I describe how I prepared my data etc.
https://www.esri.com/arcgis-blog/products/arcgis-pro/real-time/working-with-and-sharing-latest-from-live-data-in-arcgis-pro/
Hi – the layer package for the data reads that it was created with Pro 2.6, which none of us have yet because it hasn’t been released? We’re all at 2.5
Thanks David for letting me know. Sorry about that. I will try to fix it as soon as I can.
Just updated the layer package with v2.5. Please let me know if you run into any issue. Appreciate it.
Will do thanks Tanu
Hi Tanu
Great post. I’m not sure how you created the 3D map with total cases and exaggerated extrusions. Would you provide instructions? Thank you!
Manoj
Thanks Manoj for finding this post helpful.
As you know, now that you have polygon features joined with the time series table, the total cases attribute is part of each polygon. All you need to do is to (a) add the layer in a Scene view, (b) may need to move that layer inside ‘3D layers’ category and (c) set the extrusion from the Appearance tab on the ribbon.
here is the help on how to do that: https://pro.arcgis.com/en/pro-app/help/mapping/layer-properties/extrude-features-to-3d-symbology.htm
Tanu
I have the table joined and updated, but there is no attribute for total cases. The current field has cases for that particular day. When I try to make a 3D map is only extrudes based on the cases of the last date. Am I doing something wrong? I am able to make a chart because it give an option to aggregate values, but I see no option to do so in a map. Thank you
Hi Manoj,
> When I try to make a 3D map is only extrudes based on the cases of the last date
Did you make the layer time aware? And using time slider to go from one day to another?
Yes I did that. When you go from one day to the next it shows counties with cases that particular day. It doesn’t show the accumulation of cases for each county. The last day on the slider should be a thematic map with high concentrations in the expected area, but it only shows the case count for that day.
NY Times data are already accumulated. Count for each is actually (count from the previous day + new cases). There are new cases or new deaths.
Therefore what you are seeing is good.
If the data were just new cases for each day, then we’d have to take a different approach.
very helpful Tanu!
lovely work!
Thanks. I’m glad you liked it 🙂
অনেক ধন্যবাদ !
How does this data differ from the Johns Hopkins University feature service? Are they compiling data from similar sources?
Andy,
Are you asking about the Johns Hopkins University Feature Service I used in the following blog?
If so, then that feature service only has the latest updates. There is no data (at least til last week) from the past updates e.g. if you want to go back last week and see what was total count, you won’t be able to do that.
https://www.esri.com/arcgis-blog/products/arcgis-pro/real-time/visualize-us-county-polygons-with-latest-coronavirus-cases-in-arcgis-pro/
whereas NY Times github repo stores count for each day starting from 1/24 .
Please let me know if I misunderstood your question.
I hope that you can help me understand the field mapping component of the Python script. I am trying to adapt to another CSV file but I don’t know what each part of the field mapping string represents (true, true, false, etc). I can sense what some of them are but I am not getting it right because my tables are coming over empty. It worked great with the NYT data but I would like to pull some other files as well. Thank you!
Hi,
here is help document on Field Mapping. https://pro.arcgis.com/en/pro-app/help/analysis/geoprocessing/basics/field-map.htm
i hope this will help, otherwise please let me know.
also is the link to the help on field mapping in script
https://pro.arcgis.com/en/pro-app/arcpy/get-started/mapping-fields.htm
Hi, when I join the data, the results from the county table are Null (Case, Date, etc). Do you know why?
Sorry for the delayed response. It seems like matches not found. Please make sure the field type and values in FIPS field are same in both county and time series tables.
~~~
arcpy.management.SelectLayerByAttribute(tableView, “NEW_SELECTION”, “county = ‘Unknown'”, None)
if int(arcpy.GetCount_management(tableView)[0]) > 0:
arcpy.management.DeleteRows(tableView)
~~~
I had to add this because I recieved the following:
~~~
2020-03-20,Unknown,Kentucky,,1,0
2020-03-20,Unknown,Louisiana,,5,0
2020-03-20,Unknown,Maine,,3,0
2020-03-20,Unknown,Massachusetts,,18,0
2020-03-20,Unknown,Missouri,,1,0
2020-03-20,Unknown,Nevada,,11,0
2020-03-20,Unknown,New Jersey,,3,0
2020-03-20,Unknown,Puerto Rico,,14,0
2020-03-20,Unknown,Rhode Island,,44,0
~~~
my understanding is that when NY Times can’t assign a case to any specific county, they label them Unknown. If you remove them, computing total cases for a given States or for the entire USA will produces incorrect results.
~~~
arcpy.management.SelectLayerByAttribute(tableView, “NEW_SELECTION”, “county = ‘Lac qui Parle’ And state = ‘Minnesota'”, None)
arcpy.management.CalculateField(tableView, “county”, “Lake of the Woods”, “PYTHON3″, ”)
~~~
Changed Lac qui Parle,Minnesota to Lake of the Woods,Minnesota to match feature class
~~~
OBJECTID 1 NAME Lake of the Woods STATE_NAME Minnesota
Line 8820: 2020-03-23,Lac qui Parle,Minnesota,27073,1,0
Line 10119: 2020-03-24,Lac qui Parle,Minnesota,27073,1,0
Line 11541: 2020-03-25,Lac qui Parle,Minnesota,27073,1,0
Line 13138: 2020-03-26,Lac qui Parle,Minnesota,27073,1,0
Line 14863: 2020-03-27,Lac qui Parle,Minnesota,27073,1,0
Line 16693: 2020-03-28,Lac qui Parle,Minnesota,27073,1,0
Line 18625: 2020-03-29,Lac qui Parle,Minnesota,27073,1,0
Line 20659: 2020-03-30,Lac qui Parle,Minnesota,27073,1,0
Line 22791: 2020-03-31,Lac qui Parle,Minnesota,27073,1,0
Thanks for letting me know. I will try to update that in the county layer.
Section 2: Join time series table with county layer is a confusing section since you are joining multiple covid records to a single county. That a 1 to many relationship but a simple join doesn’t handle that. That’s a relate and as much as I’ve gone through, reread and applied a join, it still does not show multiple joined records when selecting a single county with the identify tool. Is there something I am doing wrong in Pro or is there something missing in Section 2?
Hello Todd,
Sorry about the delay.
Yes, you are right – there is a 1-M relationship between the county layer and the table. The only way you can draw features in ArcGIS Pro using attributes from their related records is by joining them first.
May be there is a bug in Pro that prevents you from seeing all records in a popup when time slider is not active.
One thing you can also do is to define a relate between them (in the map or in the database) to see related records in the popup window.
@Tanu Hoque Hi, I’m having trouble running the code.
import arcpy
ModuleNotFoundError: No module named ‘arcpy’ this is the error from Python
Hello Joy,
sorry for the delay. Do you happen to have ArcGIS Pro installed on the machine you are running the script? That seems to the issue here.
some of fields shows after joining data
hiw to sort this error ? thank you.
Tanu,
Excellent tutorial. Can you tell me where/how you got the other data used in your map? It looks like your final map has 4 tables. Additionally, you have a rolling count field showing changes accumulated in the last several days. The NYTimes data does not include population, which will be necessary to symbolize the data appropriately.
Cheers.
Hello Tim,
So sorry for the delayed response.
As per the population data, I believe I have this available here: https://www.arcgis.com/home/item.html?id=53935d5d1c8540539d290072fcda77c1
As per the rolling count etc., I meant to write another blog explaining how I did that. I did say that in https://www.esri.com/arcgis-blog/products/arcgis-pro/real-time/working-with-and-sharing-latest-from-live-data-in-arcgis-pro/. Alas, I didn’t get a chance to write that either. But I do have the script that does that, if you are interested, I can share that with you. Please email me.
best regards.
Hope you can help understand this section of the python code.
In the “outGDB=…” section, what exacly should I place here? I understant it is the path for an existing gdb file. However I’m failing to understant which gdb file, as, at this point, I have no gdb file in my folder.
Thanks in advance for your help.
Sorry Ricardo for the delayed response. I hope your problem is resolved by now.
Just in case, since you don’t have file gdb, you need to create one and use the file gdb path in there.
The script does not create any file gdb.
hope this helps. Pls let me know if you have any question.