{"id":2862682,"date":"2025-07-11T08:16:36","date_gmt":"2025-07-11T15:16:36","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2862682"},"modified":"2025-07-15T07:35:05","modified_gmt":"2025-07-15T14:35:05","slug":"enhance-a-building-layer-to-support-downstream-workflows","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows","title":{"rendered":"Enhance a building layer to support downstream workflows"},"author":166382,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23771,615021,23851],"tags":[30371,761202,778552,760762,176662],"industry":[],"product":[36561],"class_list":["post-2862682","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","category-aec","category-data-management","tag-bim","tag-building-layer","tag-digital-models","tag-ifc","tag-revit","product-arcgis-pro"],"acf":{"short_description":"Understand and improve the building layer to support the downstream workflows.","flexible_content":[{"acf_fc_layout":"content","content":"<h2>Introduction<\/h2>\n<p>Facility managers in both municipal and private sectors are increasingly requiring digital deliverables\u2014particularly 3D Building Information Models (BIM)\u2014as part of their workflows.\u00a0 When integrated with GIS, these models provide a comprehensive, spatially aware view of assets, allowing facility managers to identify issues, track maintenance history, and visualize potential vulnerabilities. However, there remains a gap in understanding the data structures necessary to fully realize these benefits. This integration will drive the evolution of facility management into a more proactive, data-driven discipline.<\/p>\n<p><strong>Before you begin<\/strong><\/p>\n<ul>\n<li>Ensure that all models are already\u00a0<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/geolocating-a-digital-model-revit-or-ifc-in-arcgis-pro\/\">georeferenced<\/a>.<\/li>\n<li>Create a single dataset with all the relevant models, using the workflow in <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/combine-multiple-digital-models-into-a-single-building-scene-layer\">Combine multiple digital models into a single building scene layer<\/a>.<\/li>\n<\/ul>\n<p><strong>What you need<\/strong><\/p>\n<ul>\n<li>The ArcGIS Notebooks notebook included with this post<\/li>\n<li>ArcGIS Pro 3.3 or later<\/li>\n<\/ul>\n<p>Now that multiple digital models have been combined as a single feature dataset, you can explore the resulting model to see if it meets the requirements for the downstream workflows (in this case operation and maintenance). The images below show a considerable number of elements in the generic model layer, which do not meet the requirements for the workflows.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863002,"id":2863002,"title":"Overview of the Generic Model elements","filename":"GenericModel_bl.png","filesize":1116606,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/genericmodel_bl","alt":"Overview of the Generic Model elements","author":"166382","description":"Generic Model elements","caption":"Overview of the Generic Model elements","name":"genericmodel_bl","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 18:49:59","modified":"2025-06-26 19:00:32","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1696,"height":1173,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl.png","medium-width":377,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl.png","medium_large-width":768,"medium_large-height":531,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl.png","large-width":1562,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl-1536x1062.png","1536x1536-width":1536,"1536x1536-height":1062,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl.png","2048x2048-width":1696,"2048x2048-height":1173,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl-672x465.png","card_image-width":672,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_bl-1562x1080.png","wide_image-width":1562,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>If you look in more detail at the images below, you can see that the generic model layer includes street furniture, catenary masts, escalators, and more. To meet operation and maintenance (O&amp;M) requirements, you must move these elements to more appropriate and specific categories.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863082,"id":2863082,"title":"Example of Generic Model Elements","filename":"GenericModel_ZoomIn_multi.png","filesize":481803,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/genericmodel_zoomin_multi","alt":"Generic Model Elements deatil","author":"166382","description":"","caption":"Example of Generic Model Elements","name":"genericmodel_zoomin_multi","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 18:58:46","modified":"2025-06-26 18:59:29","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1006,"height":381,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","medium-width":464,"medium-height":176,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","medium_large-width":768,"medium_large-height":291,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","large-width":1006,"large-height":381,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","1536x1536-width":1006,"1536x1536-height":381,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","2048x2048-width":1006,"2048x2048-height":381,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi-826x313.png","card_image-width":826,"card_image-height":313,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/GenericModel_ZoomIn_multi.png","wide_image-width":1006,"wide_image-height":381}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Before you can move elements between the feature classes to fit the requirements, review the Generic Model feature class to find a way to identify the elements in a programmatic way so this process can be automated. After inspecting the feature class Generic Model, use the <strong>Family<\/strong> attribute to split the elements from the Generic Model feature class into categories.<\/p>\n<p>Also, to improve performance and facilitate streamlined data management, you will mix the BIM File Workspace schema for Revit and IFC into a single building layer (bl) that will support the requirements.<\/p>\n<p>As you can see below, the BIM file workspace for the Revit infrastructure discipline is focused on bridges while the BIM file workspace for the IFC infrastructure discipline covers rails, roads, and bridges layer.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863112,"id":2863112,"title":"Infrastructure schema for Revit and ifc","filename":"Revit-and-IFC-schema.png","filesize":103051,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/revit-and-ifc-schema","alt":"Infrastructure schema for Revit and ifc","author":"166382","description":"","caption":"Infrastructure schema for Revit and ifc","name":"revit-and-ifc-schema","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 19:03:36","modified":"2025-06-26 19:04:27","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1006,"height":481,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","medium-width":464,"medium-height":222,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","medium_large-width":768,"medium_large-height":367,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","large-width":1006,"large-height":481,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","1536x1536-width":1006,"1536x1536-height":481,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","2048x2048-width":1006,"2048x2048-height":481,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema-826x395.png","card_image-width":826,"card_image-height":395,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Revit-and-IFC-schema.png","wide_image-width":1006,"wide_image-height":481}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Workflow<\/h2>\n<h2>Edit the building layer (Manual)<\/h2>\n<p>Complete the following steps to improve the dataset to fit the O&amp;M requirements:<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li>Optionally, make a copy of the Generic Model feature class before making any edits.<\/li>\n<li>Inspect the Generic Model feature class <strong>Family<\/strong> attribute to produce a list of elements that need to be moved or deleted.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n"},{"acf_fc_layout":"content","content":"<table border=\"1\">\n<thead>\n<tr>\n<th style=\"text-align: center\"><strong>Attribute (Family)*<\/strong><\/th>\n<th style=\"text-align: center\"><strong>Feature class (Category)<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>AT_Signage___CSC_PID<\/td>\n<td>Signals<\/td>\n<\/tr>\n<tr>\n<td>AT_Lift_Sign___645x250<\/td>\n<td>Signals<\/td>\n<\/tr>\n<tr>\n<td>AT_Signage &#8211; Pod PID<\/td>\n<td>Signals<\/td>\n<\/tr>\n<tr>\n<td>_CUSTOM_TILE_WALL<\/td>\n<td>Walls<\/td>\n<\/tr>\n<tr>\n<td>00_Shared Pod Glazing<\/td>\n<td>Walls<\/td>\n<\/tr>\n<tr>\n<td>Masts<\/td>\n<td>Masts<\/td>\n<\/tr>\n<tr>\n<td>railing_1 to railing_13<\/td>\n<td>Stairs<\/td>\n<\/tr>\n<tr>\n<td>Roof_Upstand to Roof_Upstand1<\/td>\n<td>Beams<\/td>\n<\/tr>\n<tr>\n<td>00_Shared Pod 3D_ Jx Structure AU<\/td>\n<td>StructuralFraming<\/td>\n<\/tr>\n<tr>\n<td>79_Escalator_Travelator_JX<\/td>\n<td>SpecialtyEquipment<\/td>\n<\/tr>\n<tr>\n<td>CRL_57_FUR_4 Seat Bench_JHR<\/td>\n<td>FurnitureSystem<\/td>\n<\/tr>\n<tr>\n<td>79_Lift_Door_w_Shaft_Pln_JX<\/td>\n<td>Doors<\/td>\n<\/tr>\n<tr>\n<td>42_Pod_Okoskin_HalfShell_Jx<\/td>\n<td>Doors<\/td>\n<\/tr>\n<tr>\n<td>00_Shared Pod 3D_ Jx Desk &#8211; Side No Ticket<\/td>\n<td>CurtainWallPanels<\/td>\n<\/tr>\n<tr>\n<td>00_Shared Pod 3D_ Jx Desk &#8211; Central Ticket<\/td>\n<td>CurtainWallPanels<\/td>\n<\/tr>\n<tr>\n<td>Thale High Swing Gates<\/td>\n<td>Doors<\/td>\n<\/tr>\n<tr>\n<td>57_STATION Rubbish Bin<\/td>\n<td>RubbishBin<\/td>\n<\/tr>\n<tr>\n<td>AKL-102-103-13-V1<\/td>\n<td>CatenarySystem<\/td>\n<\/tr>\n<tr>\n<td>Civil Layout<\/td>\n<td>Site<\/td>\n<\/tr>\n<tr>\n<td>%EXISTING 3D TIN<\/td>\n<td>Topography<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>*This is not a comprehensive list of all the elements that could be moved between categories.<\/p>\n"},{"acf_fc_layout":"content","content":"<p>3. Inspect the <strong>Structural Framing<\/strong> feature class Family attribute to produce a list of elements that need to be moved or deleted.<\/p>\n"},{"acf_fc_layout":"content","content":"<p>On the tables above, you see that there are four new feature classes (Masts, CatenarySystem, FurnitureSystem, and RubbishBin) that do not match the BIM file workspace schema for either IFC or Revit and two feature classes that do fit the BIM file workspace schema for IFC (Rails and Signals). You can create custom categories because the building layer allows you to create a building layer tailored to your specific category needs.<\/p>\n<p>You will use the tables above to start organizing the data to fit your needs. This process can be divided into stages: (1) create feature classes and (2) append elements to existing feature classes.<\/p>\n"},{"acf_fc_layout":"content","content":"<h3><strong>Create a feature class<\/strong><\/h3>\n<p>These steps will apply to the Signals, Rails, Masts, CatenarySystem, FurnitureSystem, and RubbishBin feature classes.<\/p>\n"},{"acf_fc_layout":"content","content":"<p>1. Click <strong>Select by attribute.<\/strong><\/p>\n"},{"acf_fc_layout":"content","content":"<ul>\n<li>For <strong>Input Rows<\/strong>, select <strong>GenericModel<\/strong>.<\/li>\n<li>For <strong>Selection Type<\/strong>, select <strong>New Selection<\/strong>.<\/li>\n<li>For <strong>Expression<\/strong>, type <u>Family LIKE &#8216;%Sign%&#8217;<\/u>.<\/li>\n<li style=\"list-style-type: none\"><\/li>\n<li style=\"list-style-type: none\"><\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2863252,"id":2863252,"title":"Select By Attribute","filename":"SelectByAttribute.png","filesize":19255,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/selectbyattribute-3","alt":"Select By Attribute Geoprocessing Tool","author":"166382","description":"Select By Attribute Geoprocessing Tool","caption":"Select By Attribute Geoprocessing Tool","name":"selectbyattribute-3","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 19:32:58","modified":"2025-06-26 19:33:50","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":707,"height":593,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","medium-width":311,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","medium_large-width":707,"medium_large-height":593,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","large-width":707,"large-height":593,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","1536x1536-width":707,"1536x1536-height":593,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","2048x2048-width":707,"2048x2048-height":593,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute-554x465.png","card_image-width":554,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute.png","wide_image-width":707,"wide_image-height":593}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>2. Click <strong>Apply<\/strong>.<br \/>\n3. Open the <strong>Copy Features<\/strong> geoprocessing tool.<\/p>\n"},{"acf_fc_layout":"content","content":"<ul>\n<li>For <strong>Input Feature<\/strong>, select <strong>GenericModel<\/strong>.<\/li>\n<li>For <strong>Output Feature Class<\/strong>, select <strong>Signals<\/strong>.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2863292,"id":2863292,"title":"Copy Feature Class Signal","filename":"CopyFeature_Signal.png","filesize":16437,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/copyfeature_signal","alt":"Copy Feature Geoprocessing Tool - Feature Class Signal","author":"166382","description":"","caption":"Copy Feature Geoprocessing Tool - Feature Class Signal","name":"copyfeature_signal","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 19:37:55","modified":"2025-06-26 19:40:55","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":509,"height":438,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","medium-width":303,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","medium_large-width":509,"medium_large-height":438,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","large-width":509,"large-height":438,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","1536x1536-width":509,"1536x1536-height":438,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","2048x2048-width":509,"2048x2048-height":438,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","card_image-width":509,"card_image-height":438,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/CopyFeature_Signal.png","wide_image-width":509,"wide_image-height":438}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>4. Click <strong>Run<\/strong>.<\/p>\n<p>Only the selected elements copy to the new feature, based on the selection made in step 1.<\/p>\n<p>5. Open the <strong>Delete Rows<\/strong> geoprocessing tool.<\/p>\n<p>6. For <strong>Input Rows<\/strong>, select <strong>Generic Model<\/strong>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863352,"id":2863352,"title":"Delete Rows Geoprocessing Tool - Selected Elements","filename":"DeleteRows_Signal.png","filesize":19087,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/deleterows_signal","alt":"Delete Rows Geoprocessing Tool - Selected Element","author":"166382","description":"Delete Rows Geoprocessing Tool - Selected Element","caption":"Delete Rows Geoprocessing Tool - Selected Element","name":"deleterows_signal","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 19:41:38","modified":"2025-06-26 19:42:26","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":509,"height":442,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","medium-width":301,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","medium_large-width":509,"medium_large-height":442,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","large-width":509,"large-height":442,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","1536x1536-width":509,"1536x1536-height":442,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","2048x2048-width":509,"2048x2048-height":442,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","card_image-width":509,"card_image-height":442,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/DeleteRows_Signal.png","wide_image-width":509,"wide_image-height":442}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>7. Click <strong>Run<\/strong>.<\/p>\n<p>Only the selected elements are deleted from the GenericModel feature class, based on the selection made in step 1.<\/p>\n<p>8. Repeat this process for the Masts, CatenarySystem, RubbishBin and Rails.<\/p>\n"},{"acf_fc_layout":"content","content":"<h3>Append elements to the existing feature class<\/h3>\n<p>These steps will apply to the rest of the elements.<\/p>\n<ol>\n<li>Click <strong>Select by attribute<\/strong>.<\/li>\n<\/ol>\n"},{"acf_fc_layout":"content","content":"<ul>\n<li>For <strong>Input Rows<\/strong>, select <strong>GenericModel<\/strong>.<\/li>\n<li>For <strong>Selection Type<\/strong>, select <strong>New Selection<\/strong>.<\/li>\n<li>For <strong>Expression<\/strong>, type <u>Family LIKE &#8216;%Escalator%&#8217;<\/u>.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2863402,"id":2863402,"title":"Select By Attribute Geoprocessing Tool","filename":"SelectByAttribute_Append.png","filesize":25649,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/selectbyattribute_append","alt":"Select By Attribute Geoprocessing Tool","author":"166382","description":"","caption":"Select By Attribute Geoprocessing Tool - Append Step","name":"selectbyattribute_append","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 19:47:03","modified":"2025-06-26 19:47:30","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":451,"height":289,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","medium-width":407,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","medium_large-width":451,"medium_large-height":289,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","large-width":451,"large-height":289,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","1536x1536-width":451,"1536x1536-height":289,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","2048x2048-width":451,"2048x2048-height":289,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","card_image-width":451,"card_image-height":289,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/SelectByAttribute_Append.png","wide_image-width":451,"wide_image-height":289}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>2. Open the <strong>Append geoprocessing tool<\/strong>.<\/p>\n"},{"acf_fc_layout":"content","content":"<ul>\n<li>For <strong>Input Datasets<\/strong>, select <strong>GenericModel<\/strong>.<\/li>\n<li>For <strong>Target Dataset<\/strong>, select <strong>SpecialtyEquipment<\/strong>.<\/li>\n<li>For <strong>Field Matching Type<\/strong>, select <strong>Use the field map to reconcile field differences<\/strong>.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2863452,"id":2863452,"title":"Append Elements to the Specialty Equipment","filename":"Append_GP.png","filesize":79756,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/append_gp","alt":"","author":"166382","description":"","caption":"Append Elements to the Specialty Equipment Feature Class","name":"append_gp","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 19:52:31","modified":"2025-06-26 19:53:30","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":536,"height":538,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","medium-width":260,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","medium_large-width":536,"medium_large-height":538,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","large-width":536,"large-height":538,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","1536x1536-width":536,"1536x1536-height":538,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","2048x2048-width":536,"2048x2048-height":538,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP-463x465.png","card_image-width":463,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Append_GP.png","wide_image-width":536,"wide_image-height":538}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>3. Click <strong>Run<\/strong>.<\/p>\n<p>In this case, you are not interested in matching attributes between the source and the target as you only need a limited number of attributes, and you know those attributes are present since they were defined on the BIM execution plan.<\/p>\n<p>4. Open the <strong>Delete Rows<\/strong> geoprocessing tool.<\/p>\n<p>5. For <strong>Input Rows<\/strong>, select <strong>GenericModel<\/strong>.<\/p>\n<p>6. Click <strong>Run<\/strong>.<\/p>\n<p>Repeat this process for all the elements on the table.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863762,"id":2863762,"title":"Result - Generic Element","filename":"Result.png","filesize":358394,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/result-9","alt":"Result - Generic Element","author":"166382","description":"Result - Generic Element ","caption":"Generic Model elements before and after the geoprocessing","name":"result-9","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 21:03:55","modified":"2025-06-26 21:04:57","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1126,"height":468,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","medium-width":464,"medium-height":193,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","medium_large-width":768,"medium_large-height":319,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","large-width":1126,"large-height":468,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","1536x1536-width":1126,"1536x1536-height":468,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","2048x2048-width":1126,"2048x2048-height":468,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result-826x343.png","card_image-width":826,"card_image-height":343,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Result.png","wide_image-width":1126,"wide_image-height":468}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>7. Run the <strong>Make building layer<\/strong> geoprocessing tool.<\/p>\n<p>Now that the building layer has been created, look at the three new categories (Masts, CatenarySystem, and RubbishBin) created. The Signals and Rails categories are defined by the BIM file workspace IFC schema so you do not have to change their placement on the building layer. The building layer places custom categories in the architectural discipline, but in this case, you want to place Masts and CatenarySystem in the electrical discipline and leave RubbishBin in the architectural.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863852,"id":2863852,"title":"default building layer after the geoprocessing","filename":"bl_prior.png","filesize":52853,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/bl_prior","alt":"","author":"166382","description":"","caption":"Default building layer after the geoprocessing ","name":"bl_prior","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 21:18:55","modified":"2025-06-26 21:19:35","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":383,"height":804,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","medium-width":124,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","medium_large-width":383,"medium_large-height":804,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","large-width":383,"large-height":804,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","1536x1536-width":383,"1536x1536-height":804,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","2048x2048-width":383,"2048x2048-height":804,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior-222x465.png","card_image-width":222,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_prior.png","wide_image-width":383,"wide_image-height":804}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>8. Drag the Masts and CatenarySystem layers to the electrical discipline.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2863892,"id":2863892,"title":"bl_after","filename":"bl_after.png","filesize":32050,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\/bl_after","alt":"","author":"166382","description":"Building layer feature layers rearrange","caption":"Building layer feature layers rearrange","name":"bl_after","status":"inherit","uploaded_to":2862682,"date":"2025-06-26 21:20:55","modified":"2025-06-26 21:21:28","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":396,"height":747,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","medium-width":138,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","medium_large-width":396,"medium_large-height":747,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","large-width":396,"large-height":747,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","1536x1536-width":396,"1536x1536-height":747,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","2048x2048-width":396,"2048x2048-height":747,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after-247x465.png","card_image-width":247,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/bl_after.png","wide_image-width":396,"wide_image-height":747}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>You can now share the data to ArcGIS Online as a building scene layer. To learn how to share a building scene layer, read <a href=\"https:\/\/learn.arcgis.com\/en\/projects\/share-digital-building-models-in-3D-web-scenes\/\"><strong>Share digital building models in 3D web scenes<\/strong><\/a>.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Edit the building layer (Automation)<\/h2>\n<p>The following code allows you to automate improving the dataset to fit the O&amp;M requirements.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"color: #24292e;background: #ffffff;padding: 1em\">\r\n<span style=\"color: #6a737d\"># Import necessary modules<\/span>\r\n<span style=\"color: #d73a49\">import<\/span> arcpy\r\n<span style=\"color: #d73a49\">import<\/span> os\r\n\r\n<span style=\"color: #6a737d\"># Set input paths and project settings<\/span>\r\ninput_feature_dataset = <span style=\"color: #032f62\">r'C:\\Projects\\Puh_NZ1\\Puh_NZ.gdb\\c5041240000MDM'<\/span>\r\narcpy.env.workspace = input_feature_dataset\r\narcpy.env.overwriteOutput = <span style=\"color: #005cc5\">True<\/span>\r\narcpy.env.addOutputsToMap = <span style=\"color: #005cc5\">False<\/span>\r\n\r\nproject_suffix = os.path.split(input_feature_dataset)[<span style=\"color: #005cc5\">1<\/span>]\r\nsplit_field = <span style=\"color: #032f62\">'Family'<\/span>\r\nscene_name = <span style=\"color: #032f62\">\"TempScene\"<\/span>\r\noutput_folder = <span style=\"color: #032f62\">r'C:\\Projects'<\/span>\r\nbuilding_layer_file = os.path.join(output_folder, <span style=\"color: #032f62\">\"TempBuildingLayer.lyrx\"<\/span>)\r\n\r\n<span style=\"color: #6a737d\"># Feature class names<\/span>\r\ngeneric_model_fc = <span style=\"color: #032f62\">f'GenericModel_<span style=\"color: #24292e\">{project_suffix}<\/span>'<\/span>\r\nstructural_framing_fc = <span style=\"color: #032f62\">f\"StructuralFraming_<span style=\"color: #24292e\">{project_suffix}<\/span>\"<\/span>\r\n\r\n<span style=\"color: #6a737d\"># Mapping dictionaries<\/span>\r\nmapping_dict = {\r\n    <span style=\"color: #032f62\">'Topography'<\/span>: [\r\n        <span style=\"color: #032f62\">'%EXISTING 3D TIN'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Signals'<\/span>: [\r\n        <span style=\"color: #032f62\">'AT_Signage - CSC PID'<\/span>,\r\n        <span style=\"color: #032f62\">'AT_Lift Sign - 645x250'<\/span>,\r\n        <span style=\"color: #032f62\">'AT_Signage - Pod PID'<\/span>,\r\n        <span style=\"color: #032f62\">'10_HOS Signs'<\/span>,\r\n        <span style=\"color: #032f62\">'AT_Signage'<\/span>,\r\n        <span style=\"color: #032f62\">'AT_Signage - Stair Band1'<\/span>,\r\n        <span style=\"color: #032f62\">'AT_Station Sign - 1200x300'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Walls'<\/span>: [\r\n        <span style=\"color: #032f62\">'_CUSTOM TILE WALL'<\/span>,\r\n        <span style=\"color: #032f62\">'00_Shared Pod Glazing'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Masts'<\/span>: [\r\n        <span style=\"color: #032f62\">'Masts%'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Stairs'<\/span>: [\r\n        <span style=\"color: #032f62\">'railing%'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Beams'<\/span>: [\r\n        <span style=\"color: #032f62\">'Roof Upstand'<\/span>,\r\n        <span style=\"color: #032f62\">'Roof Upstand Lower Roof'<\/span>,\r\n        <span style=\"color: #032f62\">'Roof Upstand Lower Roof1'<\/span>,\r\n        <span style=\"color: #032f62\">'Roof Upstand1'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'StructuralFraming'<\/span>: [\r\n        <span style=\"color: #032f62\">'00_Shared Pod 3D_ Jx Structure AU'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'SpecialtyEquipment'<\/span>: [\r\n        <span style=\"color: #032f62\">'79_Escalator_Travelator_JX'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'FurnitureSystem'<\/span>: [\r\n        <span style=\"color: #032f62\">'CRL_57_FUR_4 Seat Bench_JHR'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Doors'<\/span>: [\r\n        <span style=\"color: #032f62\">'79_Lift_Door_w_Shaft_Pln_JX'<\/span>,\r\n        <span style=\"color: #032f62\">'Thale High Swing Gates'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'CurtainWallPanels'<\/span>: [\r\n        <span style=\"color: #032f62\">'42_Pod_Okoskin_HalfShell_Jx'<\/span>,\r\n        <span style=\"color: #032f62\">'00_Shared Pod 3D_ Jx Desk - Side No Ticket'<\/span>,\r\n        <span style=\"color: #032f62\">'00_Shared Pod 3D_ Jx Desk - Central Ticket'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'RubbishBin'<\/span>: [\r\n        <span style=\"color: #032f62\">'57_STATION Rubbish Bin'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'CatenarySystem'<\/span>: [\r\n        <span style=\"color: #032f62\">'AKL-102-103-13-V1'<\/span>\r\n    ],\r\n    <span style=\"color: #032f62\">'Site'<\/span>: [\r\n        <span style=\"color: #032f62\">'Civil Layout'<\/span>\r\n    ]\r\n}\r\nrails_mapping_dict = {<span style=\"color: #032f62\">\"Rails\"<\/span>: [<span style=\"color: #032f62\">\"CRL_31_MOD_TRACK BEAM_3D_V5\"<\/span>]}\r\n\r\n<span style=\"color: #6a737d\"># Encapsulate the splitting logic in a reusable function.<\/span>\r\n<span style=\"color: #d73a49\">def<\/span> <span style=\"color: #6f42c1\">split_features_by_mapping<\/span>(\r\n    input_dataset,\r\n    source_fc,\r\n    mapping_dict,\r\n    filter_field,\r\n    project_suffix\r\n):\r\n    <span style=\"color: #032f62\">\"\"\"\r\n    For each key in mapping_dict:\r\n      - If target feature class exists, append matching features from source_fc.\r\n      - Else, create new feature class (with alias), then append.\r\n      - Delete appended features from source_fc.\r\n    \"\"\"<\/span>\r\n    fc_list = arcpy.ListFeatureClasses()\r\n    <span style=\"color: #d73a49\">for<\/span> key, family_list <span style=\"color: #d73a49\">in<\/span> mapping_dict.items():\r\n        <span style=\"color: #e36209\">print<\/span>(<span style=\"color: #032f62\">f\"Processing: <span style=\"color: #24292e\">{key}<\/span>\"<\/span>)\r\n        target_fc = <span style=\"color: #032f62\">f\"<span style=\"color: #24292e\">{key}<\/span>_<span style=\"color: #24292e\">{project_suffix}<\/span>\"<\/span>\r\n        <span style=\"color: #6a737d\"># Build where clause for selection<\/span>\r\n        like_value = <span style=\"color: #e36209\">next<\/span>((fam <span style=\"color: #d73a49\">for<\/span> fam <span style=\"color: #d73a49\">in<\/span> family_list <span style=\"color: #d73a49\">if<\/span> fam <span style=\"color: #d73a49\">and<\/span> <span style=\"color: #032f62\">'%'<\/span> <span style=\"color: #d73a49\">in<\/span> fam), <span style=\"color: #005cc5\">None<\/span>)\r\n        <span style=\"color: #d73a49\">if<\/span> like_value:\r\n            where_clause = <span style=\"color: #032f62\">f\"<span style=\"color: #24292e\">{filter_field}<\/span> LIKE '<span style=\"color: #24292e\">{like_value}<\/span>'\"<\/span>\r\n        <span style=\"color: #d73a49\">else<\/span>:\r\n            values = [<span style=\"color: #032f62\">f\"'<span style=\"color: #24292e\">{fam}<\/span>'\"<\/span> <span style=\"color: #d73a49\">for<\/span> fam <span style=\"color: #d73a49\">in<\/span> family_list <span style=\"color: #d73a49\">if<\/span> fam]\r\n            <span style=\"color: #d73a49\">if<\/span> values:\r\n                where_clause = <span style=\"color: #032f62\">f\"<span style=\"color: #24292e\">{filter_field}<\/span> IN (<span style=\"color: #24292e\">{<span style=\"color: #032f62\">', '<\/span>.join(values)}<\/span>)\"<\/span>\r\n            <span style=\"color: #d73a49\">else<\/span>:\r\n                where_clause = <span style=\"color: #032f62\">f\"<span style=\"color: #24292e\">{filter_field}<\/span> = '___NO_MATCH___'\"<\/span>\r\n\r\n        <span style=\"color: #6a737d\"># Create target feature class if missing<\/span>\r\n        <span style=\"color: #d73a49\">if<\/span> target_fc <span style=\"color: #d73a49\">not<\/span> <span style=\"color: #d73a49\">in<\/span> fc_list:\r\n            arcpy.CreateFeatureclass_management(\r\n                out_path=input_dataset,\r\n                out_name=target_fc,\r\n                geometry_type=arcpy.Describe(source_fc).shapeType,\r\n                template=source_fc,\r\n                spatial_reference=arcpy.Describe(source_fc).spatialReference\r\n            )\r\n            arcpy.AlterAliasName(target_fc, key)\r\n\r\n        <span style=\"color: #6a737d\"># Select and append features<\/span>\r\n        arcpy.MakeFeatureLayer_management(source_fc, <span style=\"color: #032f62\">\"src_lyr\"<\/span>, where_clause)\r\n        arcpy.Append_management(<span style=\"color: #032f62\">\"src_lyr\"<\/span>, target_fc, <span style=\"color: #032f62\">\"NO_TEST\"<\/span>)\r\n        <span style=\"color: #6a737d\"># Delete selected features from source_fc<\/span>\r\n        arcpy.SelectLayerByAttribute_management(<span style=\"color: #032f62\">\"src_lyr\"<\/span>, <span style=\"color: #032f62\">\"NEW_SELECTION\"<\/span>, where_clause)\r\n        arcpy.DeleteFeatures_management(<span style=\"color: #032f62\">\"src_lyr\"<\/span>)\r\n        arcpy.Delete_management(<span style=\"color: #032f62\">\"src_lyr\"<\/span>)\r\n    <span style=\"color: #e36209\">print<\/span>(<span style=\"color: #032f62\">\"\\nAll mapping keys processed.\"<\/span>)\r\n\r\n\r\n\t<span style=\"color: #6a737d\"># Split features for GenericModel<\/span>\r\nsplit_features_by_mapping(\r\n    input_dataset=input_feature_dataset,\r\n    source_fc=generic_model_fc,\r\n    mapping_dict=mapping_dict,\r\n    filter_field=split_field,\r\n    project_suffix=project_suffix\r\n)\r\n\r\n<span style=\"color: #6a737d\"># Split features for StructuralFraming<\/span>\r\nsplit_features_by_mapping(\r\n    input_dataset=input_feature_dataset,\r\n    source_fc=structural_framing_fc,\r\n    mapping_dict=rails_mapping_dict,\r\n    filter_field=split_field,\r\n    project_suffix=project_suffix\r\n)\r\n\r\n<span style=\"color: #6a737d\"># Create Building Layer<\/span>\r\nbuilding_layer_name = <span style=\"color: #032f62\">f\"<span style=\"color: #24292e\">{project_suffix}<\/span>_Building_Layer\"<\/span>\r\n\r\n<span style=\"color: #6a737d\"># Create temporary building layer from feature dataset<\/span>\r\ntemporary_layer = arcpy.management.MakeBuildingLayer(\r\n    in_feature_dataset=input_feature_dataset,\r\n    out_layer=building_layer_name\r\n)\r\n\r\n<span style=\"color: #6a737d\"># Save building layer to file<\/span>\r\narcpy.management.SaveToLayerFile(temporary_layer, building_layer_file)\r\n\r\n<span style=\"color: #6a737d\"># Create New Scene and Add Buildling Layer<\/span>\r\naprx = arcpy.mp.ArcGISProject(<span style=\"color: #032f62\">\"CURRENT\"<\/span>) \r\n<span style=\"color: #6a737d\">#if running outside ArcGIS Pro, use the path to your .aprx file instead of \"CURRENT\"<\/span>\r\n\r\n<span style=\"color: #6a737d\"># Check if scene already exists<\/span>\r\nexisting_maps = aprx.listMaps(scene_name)\r\n\r\n<span style=\"color: #6a737d\"># Delete scene if it exists<\/span>\r\n<span style=\"color: #d73a49\">if<\/span> existing_maps:\r\n    <span style=\"color: #d73a49\">for<\/span> m <span style=\"color: #d73a49\">in<\/span> existing_maps:\r\n        aprx.deleteItem(m)\r\n\r\n<span style=\"color: #6a737d\"># Create new scene<\/span>\r\nnew_scene = aprx.createMap(scene_name, map_type=<span style=\"color: #032f62\">\"SCENE\"<\/span>)\r\n\r\n<span style=\"color: #6a737d\"># Add building layer to new scene<\/span>\r\nnew_scene.addDataFromPath(building_layer_file)\r\n\r\n<span style=\"color: #6a737d\"># Move Layers (Optional)<\/span>\r\ntarget_layer_names = [<span style=\"color: #032f62\">\"CatenarySystem\"<\/span>, <span style=\"color: #032f62\">\"Masts\"<\/span>]\r\nreference_layer_name = <span style=\"color: #032f62\">\"ElectricalFixtures\"<\/span>\r\n\r\n<span style=\"color: #d73a49\">for<\/span> target_name <span style=\"color: #d73a49\">in<\/span> target_layer_names:\r\n    move_layer = <span style=\"color: #005cc5\">None<\/span>\r\n    ref_layer = <span style=\"color: #005cc5\">None<\/span>\r\n    <span style=\"color: #d73a49\">for<\/span> lyr <span style=\"color: #d73a49\">in<\/span> new_scene.listLayers():\r\n        <span style=\"color: #d73a49\">if<\/span> lyr.name == target_name:\r\n            move_layer = lyr\r\n        <span style=\"color: #d73a49\">if<\/span> lyr.name == reference_layer_name:\r\n            ref_layer = lyr\r\n    <span style=\"color: #d73a49\">if<\/span> move_layer <span style=\"color: #d73a49\">and<\/span> ref_layer:\r\n        new_scene.moveLayer(ref_layer, move_layer, <span style=\"color: #032f62\">\"AFTER\"<\/span>)\r\n        <span style=\"color: #e36209\">print<\/span>(<span style=\"color: #032f62\">f\"Moved '<span style=\"color: #24292e\">{move_layer.name}<\/span>' after '<span style=\"color: #24292e\">{ref_layer.name}<\/span>'.\"<\/span>)\r\n    <span style=\"color: #d73a49\">else<\/span>:\r\n        <span style=\"color: #e36209\">print<\/span>(<span style=\"color: #032f62\">f\"Could not find both '<span style=\"color: #24292e\">{target_name}<\/span>' and '<span style=\"color: #24292e\">{reference_layer_name}<\/span>' layers.\"<\/span>)\r\n\t\t\r\n\t<span style=\"color: #6a737d\"># Create Building Scene Layer Package<\/span>\r\n<span style=\"color: #6a737d\"># Get the building layer by name from the map<\/span>\r\ntarget_layer = <span style=\"color: #005cc5\">None<\/span>\r\n<span style=\"color: #d73a49\">for<\/span> lyr <span style=\"color: #d73a49\">in<\/span> new_scene.listLayers():\r\n    <span style=\"color: #d73a49\">if<\/span> lyr.name == building_layer_name:\r\n        target_layer = lyr\r\n        <span style=\"color: #d73a49\">break<\/span>\r\n\r\n<span style=\"color: #d73a49\">if<\/span> target_layer:\r\n    slpk_path = os.path.join(output_folder, <span style=\"color: #032f62\">f\"<span style=\"color: #24292e\">{project_suffix}<\/span>.slpk\"<\/span>)\r\n    <span style=\"color: #e36209\">print<\/span>(<span style=\"color: #032f62\">f\"Creating output at <span style=\"color: #24292e\">{slpk_path}<\/span>\"<\/span>)\r\n    arcpy.management.CreateBuildingSceneLayerPackage(\r\n        in_dataset=target_layer,\r\n        out_slpk=slpk_path\r\n    )\r\n<span style=\"color: #d73a49\">else<\/span>:\r\n    <span style=\"color: #e36209\">print<\/span>(<span style=\"color: #032f62\">f\"Layer '<span style=\"color: #24292e\">{building_layer_name}<\/span>' not found in map '<span style=\"color: #24292e\">{scene_name}<\/span>'.\"<\/span>)\t\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p>This automation is specific to this project but gives you an idea of how to implement it with your own data.<\/p>\n<p>&nbsp;<\/p>\n<h2>Summary<\/h2>\n<p>After following the steps in this blog article, you can improve visualization, analysis, and downstream workflows of your digital twin.<\/p>\n<p>&nbsp;<\/p>\n<h2>Acknowledgement<\/h2>\n<p>Thank you to\u00a0Eagle Technology and Auckland Transport for sharing the digital models.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><strong>Download the <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=bb22357032a249a2b97880b44c590d94#overview\">ArcGIS Notebook<\/a><\/strong><\/p>\n"}],"authors":[{"ID":166382,"user_firstname":"David","user_lastname":"Alvarez","nickname":"David Alvarez","user_nicename":"dalvarez","display_name":"David Alvarez","user_email":"DAlvarez@esri.com","user_url":"","user_registered":"2021-01-27 18:11:11","user_description":"David is a product engineer on the BIM\/CAD team and has been with Esri since 2018.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/DavidAlvarez-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":369202,"user_firstname":"Jared","user_lastname":"Kohler","nickname":"Jared Kohler","user_nicename":"jkohler","display_name":"Jared Kohler","user_email":"jkohler@esri.com","user_url":"","user_registered":"2025-02-27 20:55:45","user_description":"Jared Kohler is a Sr. Technical Consultant on a Denver-based data science team in Esri Professional Services. He's been helping customers with solution design and problem solving since 2021.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/Jared-Head-Shot-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":2706762,"post_author":"166382","post_date":"2025-03-02 20:41:46","post_date_gmt":"2025-03-03 04:41:46","post_content":"","post_title":"Automating BIM Data Publishing for ArcGIS: From Design to Digital Twin","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"automating-bim-data-publishing-for-arcgis-from-design-to-digital-twin","to_ping":"","pinged":"","post_modified":"2025-03-03 14:37:59","post_modified_gmt":"2025-03-03 22:37:59","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2706762","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2795962,"post_author":"166382","post_date":"2025-05-19 07:00:05","post_date_gmt":"2025-05-19 14:00:05","post_content":"","post_title":"Understand and improve the exterior shell of the building layer to support your digital twin","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"understand-and-improve-the-exterior-shell-of-the-building-layer-to-support-your-digital-twin","to_ping":"","pinged":"","post_modified":"2025-05-18 17:45:22","post_modified_gmt":"2025-05-19 00:45:22","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2795962","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2669862,"post_author":"166382","post_date":"2025-02-20 08:00:51","post_date_gmt":"2025-02-20 16:00:51","post_content":"","post_title":"Geolocate CAD and BIM files from the start: Strategies and Resources","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"geolocation-autodesk-autocadcivil-3drevit-and-arcgis-pro","to_ping":"","pinged":"","post_modified":"2025-02-21 09:26:05","post_modified_gmt":"2025-02-21 17:26:05","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2669862","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"show_article_image":true,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/card-2.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Banner-2.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Enhance a building layer to support downstream workflows<\/title>\n<meta name=\"description\" content=\"enhance-a-building-layer (Revit or IFC)-to-support-downstream-workflows like your operation and maintenance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enhance a building layer to support downstream workflows\" \/>\n<meta property=\"og:description\" content=\"enhance-a-building-layer (Revit or IFC)-to-support-downstream-workflows like your operation and maintenance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-15T14:35:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\"},\"author\":{\"name\":\"David Alvarez\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/91ef98666e3489083d734f74d3d8ec31\"},\"headline\":\"Enhance a building layer to support downstream workflows\",\"datePublished\":\"2025-07-11T15:16:36+00:00\",\"dateModified\":\"2025-07-15T14:35:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"BIM\",\"Building Layer\",\"Digital Models\",\"ifc\",\"Revit\"],\"articleSection\":[\"3D Visualization &amp; Analytics\",\"Architecture, Engineering, and Construction\",\"Data Management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\",\"name\":\"Enhance a building layer to support downstream workflows\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-07-11T15:16:36+00:00\",\"dateModified\":\"2025-07-15T14:35:05+00:00\",\"description\":\"enhance-a-building-layer (Revit or IFC)-to-support-downstream-workflows like your operation and maintenance.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enhance a building layer to support downstream workflows\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/91ef98666e3489083d734f74d3d8ec31\",\"name\":\"David Alvarez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/DavidAlvarez-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/DavidAlvarez-213x200.jpg\",\"caption\":\"David Alvarez\"},\"description\":\"David is a product engineer on the BIM\/CAD team and has been with Esri since 2018.\",\"sameAs\":[\"www.linkedin.com\/in\/dalvarezgeospatial\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/dalvarez\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Enhance a building layer to support downstream workflows","description":"enhance-a-building-layer (Revit or IFC)-to-support-downstream-workflows like your operation and maintenance.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows","og_locale":"en_US","og_type":"article","og_title":"Enhance a building layer to support downstream workflows","og_description":"enhance-a-building-layer (Revit or IFC)-to-support-downstream-workflows like your operation and maintenance.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-07-15T14:35:05+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows"},"author":{"name":"David Alvarez","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/91ef98666e3489083d734f74d3d8ec31"},"headline":"Enhance a building layer to support downstream workflows","datePublished":"2025-07-11T15:16:36+00:00","dateModified":"2025-07-15T14:35:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["BIM","Building Layer","Digital Models","ifc","Revit"],"articleSection":["3D Visualization &amp; Analytics","Architecture, Engineering, and Construction","Data Management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows","name":"Enhance a building layer to support downstream workflows","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-07-11T15:16:36+00:00","dateModified":"2025-07-15T14:35:05+00:00","description":"enhance-a-building-layer (Revit or IFC)-to-support-downstream-workflows like your operation and maintenance.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Enhance a building layer to support downstream workflows"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/91ef98666e3489083d734f74d3d8ec31","name":"David Alvarez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/DavidAlvarez-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/DavidAlvarez-213x200.jpg","caption":"David Alvarez"},"description":"David is a product engineer on the BIM\/CAD team and has been with Esri since 2018.","sameAs":["www.linkedin.com\/in\/dalvarezgeospatial"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/dalvarez"}]}},"text_date":"July 11, 2025","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/aec\/enhance-a-building-layer-to-support-downstream-workflows","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/Banner-2.png","primary_product":"ArcGIS Pro","tag_data":[{"term_id":30371,"name":"BIM","slug":"bim","term_group":0,"term_taxonomy_id":30371,"taxonomy":"post_tag","description":"","parent":0,"count":67,"filter":"raw"},{"term_id":761202,"name":"Building Layer","slug":"building-layer","term_group":0,"term_taxonomy_id":761202,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":778552,"name":"Digital Models","slug":"digital-models","term_group":0,"term_taxonomy_id":778552,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":760762,"name":"ifc","slug":"ifc","term_group":0,"term_taxonomy_id":760762,"taxonomy":"post_tag","description":"","parent":0,"count":16,"filter":"raw"},{"term_id":176662,"name":"Revit","slug":"revit","term_group":0,"term_taxonomy_id":176662,"taxonomy":"post_tag","description":"","parent":0,"count":23,"filter":"raw"}],"category_data":[{"term_id":23771,"name":"3D Visualization &amp; Analytics","slug":"3d-gis","term_group":0,"term_taxonomy_id":23771,"taxonomy":"category","description":"","parent":0,"count":694,"filter":"raw"},{"term_id":615021,"name":"Architecture, Engineering, and Construction","slug":"aec","term_group":0,"term_taxonomy_id":615021,"taxonomy":"category","description":"","parent":0,"count":132,"filter":"raw"},{"term_id":23851,"name":"Data Management","slug":"data-management","term_group":0,"term_taxonomy_id":23851,"taxonomy":"category","description":"","parent":0,"count":926,"filter":"raw"}],"product_data":[{"term_id":36561,"name":"ArcGIS Pro","slug":"arcgis-pro","term_group":0,"term_taxonomy_id":36561,"taxonomy":"product","description":"","parent":0,"count":2045,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-pro","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2862682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/166382"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2862682"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2862682\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2862682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2862682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2862682"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2862682"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2862682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}