IFC feature classes to building scene layer in AGOL using ArcGIS Pro/Python API

02-23-2021 02:59 AM
Esri Contributor
1 0 1,412

Building scene layer service is increasingly used among BIM-GIS users to share 3D BIM data on ArcGIS online environment. One example is 3D models in Revit (.rvt) format that is directly readable as a Building Layer in ArcGIS Pro, or they can be converted into feature classes using BIMtoGeodatabase tool. Either approach can be followed to create building scene layers packages from (.rvt) data to be published to ArcGIS Online. Industry Foundation Class (.ifc) file is another data format that will be addressed in this blog. It is wildly used among AEC professionals for exchanging 3D models. Since the road map in this article shows that IFC format is going to be supported in the near-term, it is worth mentioning that the workflow explained in this blog about IFC data can be applied on data from a different file format. Moreover, data from different sources can be combined in one building scene layer using ETL tools (combining data is not tested for the purpose of this blog). This blog solely explains a way around to creating a building scene layer package in ArcGIS Pro using feature classes derived from an (.ifc) file. Note that, in order to implement this workflow, you need to install the Data Interoperability extension. Links to the documentation of the GP tools that are used for this workflow are provided for each step, this includes pieces of code example that are useable in Python API. For if you would like to automate this workflow using Python API, refer to this StoryMap and this GitHub repository (for that you need a bit of scripting skills in Python). 

What is IFC?

Industrial Foundation Classes (IFC) is a wildly used data format to describe data in the industry of architecture, building and construction. Since it can be edited or read by "almost" any platform, it is commonly used for exchanging data among practitioners.

What is building scene layer?

Building scene layer allows using 3D data, of a model derived from Revit, in ArcGIS Online environment. 3D information can also be derived from BIM data types using BIM File To Geodatabase tool or it, as in our case, can be derived from IFC data type. A 3D building scene layer structure, described here, contains Overview Layer. The overview layer allows you to view the 3D building as a single layer, and it can be created from the exterior shell. If this layer is missing or empty, no overview is created. In the steps, we will see how an overview can still be created in data derived from an IFC file. 

IFC to Building Scene Layer workflow in ArcGIS Pro:

  • Using FME, there are many ways to load IFC data into geodatabase as feature classes. For this workflow, I will Import the IFC at hand into ArcGIS Pro using quick import tool (from the Data Interoperability toolbox) specify the format of the input file (Industry Foundation Class) IFC, see figures 1 and 2. Click the Coordinate System browse button to define a spatial reference (optional).
    The output if this step will be feature classes imported into a geodatabase file, here I named SmallBlock_withSP, see figure 3. Note: if the model file is not georeferenced, you can georeference the feature classes at this point using edit tab tools, figure 4.
    Figure 1: Geoprocessing tools pane - Quick Import toolFigure 1: Geoprocessing tools pane - Quick Import toolFigure 2: Specify Data Source dialog boxFigure 2: Specify Data Source dialog boxFigure 3: Quick Import tool dialog boxFigure 3: Quick Import tool dialog boxFigure 4: using edit tools to georeference feature classesFigure 4: using edit tools to georeference feature classes


  • Create a new feature dataset in a geodatabase file using Create Feature Dataset tool (The feature dataset can be created in the same GDB file created in the previous step), see Figure 5, 6, and 7.
    Figure 5, creating new Feature DatasetFigure 5, creating new Feature Dataset


    Figure 6, Feature Dataset - smallBlockRD_NewFigure 6, Feature Dataset - smallBlockRD_New


  • Export all 3D features into the dataset created using Feature Class To Geodatabase tool, or simply drag the 3D features into the Feature Dataset layer within the catalog pane, see Figure 7. 
    Before moving to the following step, it is important, for leveraging the power of the Building Explorer in ArcGIS Online, to name a feature class ExteriorShell, figure 7. It can be any feature class that is not empty. ExteriorShell feature is necessary for the Building Explorer in ArcGIS Online so that it shows the model in layers, see Figure 11. 

    Figure 7, Feature Dataset - smallBlockRD_NewFigure 7, Feature Dataset - smallBlockRD_New


  • Create a building layer using Make Building Layer tool, figure 8. Note it is important to have a feature class named ExteriorShell as explained in the previous step.
    The output building layer should have a structure similar to the one shown in Figure 9. At this phase, you can change the discipline of some feature classes/layers, if you would like to. This can be done by simply dragging them to the desired discipline layer. For testing purposes, I moved three random feature layers into DisciplineStructural, figure 9.Figure 8, Make Building Layer toolFigure 8, Make Building Layer tool


    Figure 9, Resulting building layerFigure 9, Resulting building layer


  • Create Building Scene Layer Package tool, using the building layer at hand, now produces a (.slpk) file that shows disciplines' layers in ArcGIS Online. 

    Figure 10: Create Building Scene Layer Package toolFigure 10: Create Building Scene Layer Package tool


  • If you now upload the (.slpk) file generated to ArcGIS Online, it will show layers in disciplines similar to one derived from a Revit file, see figure 11.
    Figure 11: resulting Scene Layer from the IFC data in ArcGIS OnlineFigure 11: resulting Scene Layer from the IFC data in ArcGIS Online



    Happy GIS&BIM integration!

    Discussion and recommendations

  • This workflow is tested on a model in IFC format, however, in this blog, it is not tested what attributes are imported with the model. Therefore, it is advised to review that before adopting the workflow. And you might need to apply some process to populate data from 2D features/classes to 3D feature classes.
  • Building Layer and Building Scene Layers are designed based on Revit files schema. This means that Disciplines and layers within the Disciplines follow the schema of Revit files. And generalizing that on IFC or other data formats such as CAD and Civil 3D is difficult. Note, it is expected that ArcGIS Pro will support a direct read of IFC data soon (not official yet)
  • This workflow works on data in one GDB file stemming from one source. Combining data from different sources and in multi-GDB files is possible, however, that requires a deeper understanding of the data structure if you wish to change it, especially within the disciplines. 

    I would like to thank David Alvarez for his help and the significant information he provided me with for this work.

    For any questions about this blog or any other questions, feel free to reach out.  

    My name is Khaled Alhoz, an intern at Esri Nederland graduating from a master's program in Geomatics at Tu Delft University in Delft, The Nederlands. My main focus is GIS&BIM-integration-related topics.

    Contact info:
    Khaled Alhoz
    GIS-BIM intern at Esri Nederland 


    My contribution is to find on the following GitHub repositories