This blog article was updated on March 3, 2025.
Owing to the geographic approach, ArcGIS allows built-environment teams to analyze, visualize, and share integrated project information as spatial data. GIS analysts federate CAD drawings and BIM models obtained from engineering and design teams together with GIS information in ArcGIS Pro. They share the authored scenes to the web for visualizing projects in real-world context and for data-intensive workflows that connect individual assets to complex enterprise processes.
This blog article focuses on sharing 3D CAD and BIM data to ArcGIS Online using ArcPy. The following describes how to automate the sharing experience for a project coordination scenario involving a multimodal transportation network. For a higher-level view of importing and publishing 3D CAD and BIM from ArcGIS Pro, check out this companion blog article.
Scenario: Railway track segment replacement
Maintaining transportation networks requires collaboration between city planners, surveyors, civil and environmental engineers, field teams, project and asset managers, and many other roles. As a GIS analyst, your responsibilities include maintaining a web scene of a multimodal transportation network throughout a project to replace a railway track segment. Instead of manually maintaining the scene and sharing updates to a portal, you can automate workflow steps using ArcPy.
For this example, railway corridors are stored in Autodesk® Civil 3D® drawings. Overhead rail lines and bridge components originate from Autodesk Revit® (.rvt) models and Industry Foundation Classes (.ifc) files. All files contain real-world coordinates and a projected coordinate system.

Workflow steps to create and publish scene layer packages
Publishing from ArcGIS Pro using scene layer packages involves the steps illustrated below.

- Key ArcPy methods for this illustrative workflow include the following:
-
- For BIM data:
- arcpy.management.MakeBuildingLayer() to organize Revit (.rvt) and IFC (.ifc) files into structured building layers.
- arcpy.management.CreateBuildingSceneLayerPackage() to package building scene layers into .slpk files for sharing.
- For 3D CAD data:
- arcpy.management.MakeFeatureLayer() to make multipatch feature class from .dwg files as a feature layer
- arcpy.management.SaveToLayerFile() to save multipatch feature layer as a layer file
- arcpy.management.Create3DObjectSceneLayerPackage() to organize multipatch features into packaged .slpk files for sharing.
- For BIM data:
Create scene layer packages
The web scene for the railway track replacement project integrates 15 Civil 3D files representing rail lines, as well as Revit and IFC files containing models of bridges and tunnels. To automate the replacement of existing web scene layers, the example script illustrated below scans through the workspace folder, finds all CAD and BIM files, and processes them separately to create a scene layer package (.slpk). This approach allows GIS analysts to efficiently generate scene layer packages for scheduled updates during large-scale projects.

For each CAD file, the script processes all 3D content from Civil 3D (.dwg) and MicroStation (.dgn) files. It first saves multipatch feature class from .dwg as a layer file (.lyrx) with Save To Layer File. The Create 3D Object Scene Layer Content tool converts the layer file into a 3D object scene layer package (.slpk).
Tip: When generating scene layer packages, only 3D content like multiptach is included. Examples include railway corridors from the Civil 3D files stored in the CorridorAssembly feature class.
For each BIM file, run Make Building Layer to generate a building layer that categorizes feature classes by discipline: Architectural, Structural, Electrical, Mechanical, Piping, and Infrastructure. The Create Building Scene Layer Content tool then packages the building layer into a building scene layer package (.slpk) ready for publishing. Building scene layers optimize the visualization of BIM file workspaces. Visualizing them using the Building explorer tool on ArcGIS Online allows for interactions such as isolating layers using the Level picker and choosing a construction phase to display.
Tip: If you need to combine multiple BIM files or need to be able to edit the BIM files as GIS features, you will need to first store content in a geodatabase using BIM File To Geodatabase. You can add customized functions that delete unwanted elements, update attributes, and copy elements between categories.
The script will look for the associated projection file (.prj) and automatically be used when creating scene layer packages. It follows a hierarchy to determine the correct spatial reference. If the model-specific projection exists, it will prioritize it before the universal projection file (ESRI_CAD.prj). If neither is found, it will default to the WGS 1984 coordinate system (EPSG:4326).

Publish building scene layer packages to the web
After creating the scene layer packages, the next step is to publish them as web scene layers. The script below automates this by logging into the active ArcGIS portal as an authenticated user. Each .slpk file is uploaded and published to the portal for use in the web scene.
To maintain up-to-date project data, the script includes a function to replace an existing scene layer with a newly published scene layer. It checks a predefined list of service item IDs, which correspond to scene layers that may need updates. This list is initialized with empty strings, matching the number of .slpk files generated. If an .slpk file needs to replace an existing scene layer, its corresponding service item ID is inserted at the appropriate index in the list. This ensures that layer replacement is applied in the correct order, keeping the web scene current.

Tip: When sharing the script, make sure to hide the username and password.
Automating publishing workflow steps for the transportation network allows the GIS analyst to focus on other spatial analysis, visualization, and sharing tasks. The web scene combines the published layers of rail lines, bridges, and tunnels into one interface for project coordination. Other teams also benefit from these automations, such as a project manager needing timely access to the current design for the replacement railway track segment.
Automating the publishing workflow reduces time spent on repetitive tasks and better allows downstream stakeholders to coordinate in context on the latest design for the railway track segment.
Start automating your CAD and BIM publishing workflows
You can use these workflows to adopt approaches that reduce manual efforts as part of model federation and publishing. Leverage automation, schedule scripts that update web scene layers with improved consistency and scalability, and reduce the effort required to perform repetitive tasks.
Read the BIM and GIS resources to learn more about integrating design and engineering data in GIS. Apply the concepts from this article on scene layer packages to automate more of your publishing workflows.
Commenting is not enabled for this article.