{"id":1811282,"date":"2023-01-24T08:32:03","date_gmt":"2023-01-24T16:32:03","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1811282"},"modified":"2025-06-05T07:26:05","modified_gmt":"2025-06-05T14:26:05","slug":"offline-utility-networks-in-arcgis-maps-sdks-for-native-apps","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps","title":{"rendered":"Offline utility networks in ArcGIS Maps SDKs for Native Apps"},"author":6351,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23341,37101,738191],"tags":[23711,24291,24831,33401,23081],"industry":[],"product":[765412,36871,36881,36891,36901,36911,36921,763892],"class_list":["post-1811282","blog","type-blog","status-publish","format-standard","hentry","category-analytics","category-announcements","category-developers","tag-mobile","tag-runtime","tag-trace","tag-un","tag-utilities","product-maps-sdk","product-api-net-win-desktop","product-api-for-android","product-api-ios","product-api-java","product-api-mac-osx","product-api-cqt","product-runtime-sdk"],"acf":{"authors":[{"ID":6351,"user_firstname":"Jennifer","user_lastname":"Nery","nickname":"Jennifer Nery","user_nicename":"jenniferdnery","display_name":"Jennifer Nery","user_email":"JNery@esri.com","user_url":"","user_registered":"2018-03-02 00:18:18","user_description":"Jennifer Nery is a Principal Software Development Engineer for the ArcGIS Maps SDK for .NET with over 15 years of experience in designing and developing APIs, toolkits, samples, and applications for desktop and mobile. Jennifer actively participates in the full development of utility networks, enhancement of feature layers, expanding support for branch versioning and session management, and is passionate about seeing these awesome features come to life for developers in ArcGIS Maps SDK for Native Apps!","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.","flexible_content":[{"acf_fc_layout":"content","content":"<p><em>Code examples for this blog are written in C# using ArcGIS Maps SDK for .NET but all the concepts apply to Java, Qt, Swift, and Kotlin.<\/em><\/p>\n<p>ArcGIS Maps SDKs for Native Apps (<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/announcements\/introducing-the-arcgis-maps-sdks\/\" target=\"_blank\" rel=\"noopener\">formerly known as ArcGIS Runtime SDK<\/a>) have improved in some exciting ways in the past few releases, especially when it comes to supporting utility networks and disconnected workflows. We&#8217;ll be releasing a series of blogs to share the latest capabilities available to developers working with utility networks in mobile and offline native applications.<\/p>\n<p>In this first blog of the series, we&#8217;ll show how you can take advantage of the most significant new features for developers working with utility networks by exploring capabilities that allow you to perform analysis and tracing offline with a sneak peek into its future.<\/p>\n<p><em>Check out the\u00a0<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/announcements\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-2\/\">second part<\/a> and <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/announcements\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-3\/\">third part<\/a> of this blog series, where we cover how the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/announcements\/whats-new-in-arcgis-maps-sdks-for-native-apps-200-1\/\">200.1 release of the Native Maps SDKs<\/a> has grown in offline tracing functionalities for utility networks in mobile geodatabases including sync-enabled geodatabase from an updated ArcGIS Enterprise 11.1 server.<\/em><\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Working offline<\/h1>\n"},{"acf_fc_layout":"content","content":"<p>Before we go too far into the details, let&#8217;s talk about working while disconnected. Work started on feature-service-based utility networks in ArcGIS Runtime 100.6, with each new release bringing new functionalities. The 200.0 release of the ArcGIS Maps SDK for Native Apps has brought many of these capabilities to utility networks in mobile geodatabases.<\/p>\n<p>When working offline, you&#8217;ll need access to a mobile geodatabase, which can be one of the following:<\/p>\n<ul>\n<li>a stand-alone <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/manage-mobile-gdb\/mobile-geodatabases.htm\" target=\"_blank\" rel=\"noopener\">mobile geodatabase<\/a> that is exported from ArcGIS Pro 2.7 or higher<\/li>\n<li>a sync-enabled mobile geodatabase that is generated from ArcGIS Enterprise Feature Service 10.9 or higher using a <em>GeodatabaseSyncTask <\/em>or <em>OfflineMapSyncTask<\/em><\/li>\n<\/ul>\n"},{"acf_fc_layout":"sidebar","content":"<p>When using a geodatabase source, create and load a geodatabase whose tables are used to create the layers and utility networks on the map.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"var geodatabase = await Geodatabase.OpenAsync(pathToGeodatabaseFile);\r\n\r\nvar map = new Map(BasemapStyle.ArcGISStreetsNight);\r\nmap.OperationalLayers.Add(new FeatureLayer(geodatabase.GetGeodatabaseFeatureTable(0)));\r\n\r\nmap.UtilityNetworks.Add(geodatabase.UtilityNetworks[0]);","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h1>Querying associations<\/h1>\n"},{"acf_fc_layout":"image","image":{"ID":1812092,"id":1812092,"title":"associations","filename":"associations.jpg","filesize":41274,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\/associations-2","alt":"A transformer highlighted with blue-dotted lines that depict its connectivity with fuses and connection points.","author":"6351","description":"","caption":"","name":"associations-2","status":"inherit","uploaded_to":1811282,"date":"2023-01-09 19:11:31","modified":"2023-01-09 19:26:33","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1224,"height":811,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","medium-width":394,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","medium_large-width":768,"medium_large-height":509,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","large-width":1224,"large-height":811,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","1536x1536-width":1224,"1536x1536-height":811,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","2048x2048-width":1224,"2048x2048-height":811,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations-702x465.jpg","card_image-width":702,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/associations.jpg","wide_image-width":1224,"wide_image-height":811}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Associations enable the modeling of connectivity, containment, and structure attachment between non-spatial and non-coincident network features. The ability to query these associations is an important workflow for mobile users and has historically required you to be connected to a feature-service-based utility network. As of ArcGIS Runtime 100.11 and ArcGIS Enterprise 10.9, you can now use a utility network in mobile geodatabases to query associations for a specific utility element or an area of interest using the same code for a feature-service-based utility network.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>The following code uses an element for retrieving containment associations, and an extent for determining attachment and connectivity associations of its contents.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"\/\/ Specify a utility element container\r\nvar containments = await utilityNetwork.GetAssociationsAsync(container, UtilityAssociationType.Containment);\r\n            \r\n\/\/ Get features for its contents\r\nvar contents = from containment in containments select containment.ToElement;\r\nvar contentFeatures = await utilityNetwork.GetFeaturesForElementsAsync(contents);\r\n\r\n\/\/ Get an extent for its contents\r\nvar featureGeometries = from content in contentFeatures select content.Geometry;\r\nvar contentExtent = GeometryEngine.CombineExtents(featureGeometries);\r\n\r\n\/\/ Specify an area of interest\r\nvar associations = await utilityNetwork.GetAssociationsAsync(contentExtent);\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>When your map contains partial feature data, associations are returned with some elements potentially marked invalid. This means that while the association type, the utility element&#8217;s global ID, and network source remains accurate, the utility element&#8217;s object ID, asset group, and asset type cannot be determined; and therefore, <em>GetFeaturesForElements<\/em>, will not be able to return features for such elements.<\/p>\n<p>You can have partial feature data through any of the following means:<\/p>\n<ul>\n<li>having a subset of layers and tables<\/li>\n<li>providing a definition expression on the tables<\/li>\n<li>requesting for a smaller area of interest than the utility network extent<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Tracing the network<\/h1>\n"},{"acf_fc_layout":"image","image":{"ID":1812942,"id":1812942,"title":"offline-trace","filename":"offline-trace.jpg","filesize":188117,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\/offline-trace","alt":"Highlighted result of a subnetwork trace on a stand-alone mobile geodatabase with Naperville Electric data.","author":"6351","description":"","caption":"","name":"offline-trace","status":"inherit","uploaded_to":1811282,"date":"2023-01-09 23:52:35","modified":"2023-01-09 23:54:37","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1919,"height":840,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace.jpg","medium-width":464,"medium-height":203,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace.jpg","medium_large-width":768,"medium_large-height":336,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace.jpg","large-width":1919,"large-height":840,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace-1536x672.jpg","1536x1536-width":1536,"1536x1536-height":672,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace.jpg","2048x2048-width":1919,"2048x2048-height":840,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace-826x362.jpg","card_image-width":826,"card_image-height":362,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/offline-trace.jpg","wide_image-width":1919,"wide_image-height":840}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>One of the most requested features for utility networks is the ability to trace a utility network while disconnected. If you didn&#8217;t already know, we added this capability in the 200.0 release of ArcGIS Maps SDK for Native Apps.<\/p>\n<p>First, load the utility network that is created from your mobile geodatabase. Once loaded from the source, the utility network\u2019s definition includes the capabilities the <em>UtilityNetwork<\/em> object supports, such as whether tracing and\/or querying associations are supported.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>The following code checks\u00a0that the capability is supported\u00a0before running the trace.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"if (utilityNetwork.Definition?.Capabilities.SupportsTrace == true)\r\n{\r\n     var traceResults = await utilityNetwork.TraceAsync(traceParameters);\r\n}\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>At a minimum, a simple trace needs a single starting point that can be supplied by creating a utility element from either a feature or an asset type. You can repeat this process if you need to add additional starting locations or even barriers. Some asset types support more than one terminal; in these cases, you will need to specify the terminal on the utility element before they can be used in a trace.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>The code below demonstrates both ways of creating a utility element.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"\/\/ Get an asset type from the utility network definition\r\nvar networkSource = utilityNetwork.Definition?.GetNetworkSource(\"Electric  Device\");\r\nvar assetGroup = networkSource?.GetAssetGroup(\"Circuit Breaker\");\r\nvar assetType = assetGroup?.GetAssetType(\"Three Phase\");\r\n\r\n\/\/ Specify an asset type and global id to create a starting point\r\nvar startingPoint = utilityNetwork.CreateElement(assetType, Guid.Parse(\"{1CAF7740-0BF4-4113-8DB2-654E18800028}\"));\r\n\r\n\/\/ Set a terminal for asset types supporting more than terminal\r\nstartingPoint.Terminal = startingPointt.AssetType.TerminalConfiguration?.Terminals.FirstOrDefault();\r\n\r\n\/\/ Query a feature\r\nvar query= new QueryParameters(){ WhereClause = \"GlobalId like '{B9E37A9F-52F3-58FBEA4902}'\"};\r\nvar queryResult = await networkSource.FeatureTable.QueryFeaturesAsync(query);\r\nvar arcgisFeature = queryResult.FirstOrDefault() as ArcGISFeature;\r\n\r\n\/\/ Specify a feature to create a barrier\r\nvar barrier = utilityNetwork.CreateElement(arcgisFeature);\r\n\r\n\/\/ Provide these trace location elements as a starting point or a barrier\r\nvar traceParameters = new UtilityTraceParameters(UtilityTraceType.Connected, new[] { startingPoint });\r\ntraceParameters.Barriers.Add(barrier);\t\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>Specifying a trace type and a starting point is not always enough to run a trace. Subnetwork traces (<a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/utility-network-trace-types.htm#ESRI_SECTION1_1CDF6C09382C4CD29A2BECDBF1DD77A1\" target=\"_blank\" rel=\"noopener\">subnetwork<\/a>, <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/utility-network-trace-types.htm#ESRI_SECTION1_3885D93DD6D540B38454BD6F8D041E70\" target=\"_blank\" rel=\"noopener\">upstream\/downstream<\/a>) require a domain network, an <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/3.0\/help\/data\/utility-network\/utility-network-trace-types.htm#ESRI_SECTION1_64090EAC275B408299654766D6768865\" target=\"_blank\" rel=\"noopener\">isolation<\/a> trace requires a filter, and a <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/3.0\/help\/data\/utility-network\/utility-network-trace-types.htm#ESRI_SECTION1_9B8A30B516B2407F86B34A28474BEF40\" target=\"_blank\" rel=\"noopener\">shortest path<\/a> trace requires two junctions. Most workflows also require defining <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/barriers.htm\" target=\"_blank\" rel=\"noopener\">condition and function barriers<\/a> to limit traversability\u00a0 of the trace. If you have specific calculations you want your trace to perform, your trace will need to be configured with operations on network attributes to <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/configure-a-trace.htm#ESRI_SECTION1_383BDD7175084697A7E771090A410CBB\" target=\"_blank\" rel=\"noopener\">create function<\/a> results.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Tracing with named trace configurations<\/h2>\n"},{"acf_fc_layout":"content","content":"<p>While you can create trace configurations on demand, they are typically configured ahead of time by a user and then loaded in the application at runtime. One easy way to achieve this is to use named trace configurations, which require services published using ArcGIS Enterprise 10.9 or higher. This allows GIS administrators to create and share the same set of named trace configurations to all desktop, web, and mobile users. Administrators can also choose to share a subset of these named trace configurations with a web map to provide web and mobile users with trace configurations specific to those displays. You can visit the online help to learn more about <a class=\"c-link\" href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/about-trace-configurations.htm\" target=\"_blank\" rel=\"noopener noreferrer\" data-stringify-link=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/about-trace-configurations.htm\" data-sk=\"tooltip_parent\" data-remove-tab-index=\"true\">support for named trace configurations<\/a>\u00a0available in ArcGIS Enterprise Feature Service 10.9 or higher.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>The following code shows how to get named trace configurations from a specific creator with a particular tag and then run a trace with a configuration matching this search criteria.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"\/\/ Query for specific named trace configurations\r\nvar query = new UtilityNamedTraceConfigurationQueryParameters();\r\nquery.Creators.Add(\"unadmin\");\r\nquery.Tags.Add(\"electric\");\r\n\r\nvar queryResult = await utilityNetwork.QueryNamedTraceConfigurationsAsync(query);\r\n\r\n\/\/ Trace with named trace configuration\r\nif (queryResult.FirstOrDefault() is UtilityNamedTraceConfiguration config)\r\n{\r\n    var traceParameters = new UtilityTraceParameters(config, new[] { startingPoint });\r\n    var traceResults = await utilityNetwork.TraceAsync(traceParameters);\r\n}\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h3>Stand-alone mobile geodatabase<\/h3>\n"},{"acf_fc_layout":"content","content":"<p>To perform offline tracing, you will need a geodatabase with a full utility network topology which currently can only be <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/manage-mobile-gdb\/create-a-mobile-geodatabase.htm\" target=\"_blank\" rel=\"noopener\">created using ArcGIS Pro 2.7 or higher<\/a>. This includes tables necessary for querying associations and tracing with named trace configurations.<\/p>\n<p>Offline utility networks currently support connected, subnetwork, upstream, and downstream traces in partitioned domain networks with element and function results. They do not support isolation, loops, or shortest path traces in hierarchical domain networks with aggregated geometry results.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>The following code checks for supported trace types, domain networks, and result types.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"if (traceParameters.TraceType == UtilityTraceType.Connected ||\r\n    traceParameters.TraceType == UtilityTraceType.Subnetwork ||\r\n    traceParameters.TraceType == UtilityTraceType.Upstream ||\r\n    traceParameters.TraceType == UtilityTraceType.Downstream ||\r\n    traceParameters.TraceConfiguration?.DomainNetwork is null ||\r\n    traceParameters.TraceConfiguration.DomainNetwork.TierType == UtilityTierType.Partitioned ||\r\n    !traceParameters.ResultTypes.Any(r =&gt; r == UtilityTraceResultType.Geometry))\r\n{\r\n    var traceResults = await utilityNetwork.TraceAsync(traceParameters);\r\n}\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h3>Sync-enabled mobile geodatabase<\/h3>\n"},{"acf_fc_layout":"content","content":"<p>A sync-enabled mobile geodatabase can be generated directly from a feature service or by taking a web map with utility network offline. If the online utility network source is an ArcGIS Enterprise Feature Service 10.9 or higher, the resulting offline utility network will support querying associations.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>The following code generates a sync-enabled mobile geodatabase from a feature service. By default, only feature data are included unless you specify a sync mode for the utility network.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"var task = await GeodatabaseSyncTask.CreateAsync(featureServiceUri);\r\nvar parameters = await task.CreateDefaultGenerateGeodatabaseParametersAsync(areaOfInterest);\r\n\r\n\/\/ Specify a sync mode for utility network\r\nparameters.UtilityNetworkSyncMode = UtilityNetworkSyncMode.SyncSystemTables;\r\n\r\nvar job = task.GenerateGeodatabase(parameters, pathToGeodatabaseFile);\r\nvar geodatabase = await job.GetResultAsync();\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"sidebar","content":"<p>The following code gets a utility network from an offline map. By default, when the service supports it, the system tables necessary for querying associations are included in the resulting sync-enabled mobile geodatabase.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"var task = await OfflineMapTask.CreateAsync(onlineMap);\r\nvar parameters = await task.CreateDefaultGenerateOfflineMapParametersAsync(areaOfInterest);\r\n\r\nvar job = task.GenerateOfflineMap(parameters, downloadDirectoryPath);\r\nvar offlineMap = await job.GetResultAsync();\r\n\r\nvar utilityNetwork = offlineMap.OfflineMap.UtilityNetworks[0];\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"sidebar","content":"<p>To skip taking the utility network offline, you can either remove the utility network from the map before taking the map offline, or change the sync mode through a parameter override.<\/p>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"var parametersOverride = await task.CreateGenerateOfflineMapParameterOverridesAsync(offlineMapParameters);\r\n\r\nvar overrideKey = new OfflineMapParametersKey(onlineMap.UtilityNetworks[0]);\r\nvar geodatabaseParameters = parametersOverride.GenerateGeodatabaseParameters[overrideKey];\r\ngeodatabaseParameters.UtilityNetworkSyncMode = UtilityNetworkSyncMode.None;\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>Future releases of the ArcGIS Maps SDK for Native Apps and ArcGIS Enterprise will support creating geodatabases with full utility network topology using the <em>OfflineMapTask<\/em> or <em>GeodatabaseSyncTask<\/em> to enable tracing.<\/p>\n<p><span class=\"TextRun SCXW132677103 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW132677103 BCX0\">These are the currently available functionalities for a utility network from a stand-alone mobile and sync-enabled mobile geodatabase.<\/span><\/span><span class=\"EOP SCXW132677103 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1819712,"id":1819712,"title":"support-matrix","filename":"support-matrix-2.jpg","filesize":77368,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\/support-matrix-3","alt":"A table that lists supported functionalities for utility networks in a stand-alone mobile and sync-enabled geodatabase.","author":"6351","description":"","caption":"","name":"support-matrix-3","status":"inherit","uploaded_to":1811282,"date":"2023-01-18 20:26:12","modified":"2023-01-18 20:26:36","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":760,"height":600,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","medium-width":331,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","medium_large-width":760,"medium_large-height":600,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","large-width":760,"large-height":600,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","1536x1536-width":760,"1536x1536-height":600,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","2048x2048-width":760,"2048x2048-height":600,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2-589x465.jpg","card_image-width":589,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/support-matrix-2.jpg","wide_image-width":760,"wide_image-height":600}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Conclusion<\/h2>\n"},{"acf_fc_layout":"content","content":"<p><span class=\"TextRun SCXW133616119 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW133616119 BCX0\">ArcGIS Maps SDKs for Native Apps is continuously and persistently growing support for utility networks; delivering the core functionalities that were once only available for feature-service-based utility networks are now becoming more available in geodatabase-based utility networks. In fact, all the code examples shared in this blog are <\/span><span class=\"NormalTextRun SCXW133616119 BCX0\">applicable to both online and offline. <\/span><\/span><span class=\"EOP SCXW133616119 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">We invite you to look at our documentation and samples within the\u00a0<a class=\"c-link\" href=\"https:\/\/developers.arcgis.com\/net\/utility-network\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-stringify-link=\"https:\/\/developers.arcgis.com\/net\/utility-network\/\" data-sk=\"tooltip_parent\" data-remove-tab-index=\"true\">Utility network section of the .NET guide<\/a>.<\/span><\/p>\n<p>Whether you are new to ArcGIS Maps SDK for Native Apps or already using the SDK, we hope this blog has been helpful so you can write apps that also leverage the power of utility networks in disconnected environments. You can be assured that the team is working hard to deliver all utility network capabilities to better support your workflow &#8211; online or offline.<\/p>\n<p><em>Don\u2019t forget to check out\u00a0the\u00a0<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/announcements\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-2\/\">parts 2<\/a> and <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/announcements\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-3\/\">3<\/a> of this series, where we share how to configure the utility network\u2019s offline capability when downloading from a service, and leverage the new tracing workflows are available for utility networks in mobile geodatabases!<\/em><\/p>\n<p>We look forward to hearing how your native apps have explored utility networks for tracing and analysis!<\/p>\n"}],"related_articles":[{"ID":1791082,"post_author":"4091","post_date":"2022-12-14 10:46:14","post_date_gmt":"2022-12-14 18:46:14","post_content":"","post_title":"Welcome to ArcGIS Maps SDKs for Native Apps 200.0","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"welcome-to-arcgis-maps-sdks-for-native-apps-200-0","to_ping":"","pinged":"","post_modified":"2024-04-12 03:19:48","post_modified_gmt":"2024-04-12 10:19:48","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1791082","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":803661,"post_author":"4091","post_date":"2020-05-07 11:32:14","post_date_gmt":"2020-05-07 18:32:14","post_content":"","post_title":"Welcome to ArcGIS Runtime 100.8","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"welcome-to-arcgis-runtime-100-8","to_ping":"","pinged":"","post_modified":"2020-05-15 10:59:43","post_modified_gmt":"2020-05-15 17:59:43","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=803661","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":976202,"post_author":"4091","post_date":"2020-08-27 12:10:46","post_date_gmt":"2020-08-27 19:10:46","post_content":"","post_title":"Announcing ArcGIS Runtime 100.9","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"announcing-arcgis-runtime-100-9","to_ping":"","pinged":"","post_modified":"2020-08-28 00:21:42","post_modified_gmt":"2020-08-28 07:21:42","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=976202","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2007292,"post_author":"6351","post_date":"2023-07-11 08:00:55","post_date_gmt":"2023-07-11 15:00:55","post_content":"","post_title":"Offline Utility Networks in ArcGIS Maps SDKs for Native Apps: Part 2","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-2","to_ping":"","pinged":"","post_modified":"2025-06-05 06:38:11","post_modified_gmt":"2025-06-05 13:38:11","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2007292","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2011712,"post_author":"6351","post_date":"2023-07-31 08:14:24","post_date_gmt":"2023-07-31 15:14:24","post_content":"","post_title":"Offline Utility Networks in ArcGIS Maps SDKs for Native Apps: Part 3","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-3","to_ping":"","pinged":"","post_modified":"2025-06-05 06:54:10","post_modified_gmt":"2025-06-05 13:54:10","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2011712","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2683642,"post_author":"368412","post_date":"2025-03-03 10:00:37","post_date_gmt":"2025-03-03 18:00:37","post_content":"","post_title":"Offline Utility Networks in ArcGIS Maps SDKs for Native Apps: Part 4","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"offline-utility-networks-in-arcgis-maps-sdks-for-native-apps-part-4","to_ping":"","pinged":"","post_modified":"2025-03-03 11:05:01","post_modified_gmt":"2025-03-03 19:05:01","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2683642","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/article-card.jpg","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/article-banner.jpg","show_article_image":false},"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>Offline utility networks in ArcGIS Maps SDKs for Native Apps<\/title>\n<meta name=\"description\" content=\"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.\" \/>\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\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Offline utility networks in ArcGIS Maps SDKs for Native Apps\" \/>\n<meta property=\"og:description\" content=\"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\" \/>\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-06-05T14:26: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=\"9 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\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\"},\"author\":{\"name\":\"Jennifer Nery\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a3b7b2d1ed972b03f0e342613bc2b690\"},\"headline\":\"Offline utility networks in ArcGIS Maps SDKs for Native Apps\",\"datePublished\":\"2023-01-24T16:32:03+00:00\",\"dateModified\":\"2025-06-05T14:26:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\"},\"wordCount\":10,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"Mobile\",\"runtime\",\"trace\",\"UN\",\"Utilities\"],\"articleSection\":[\"Analytics\",\"Announcements\",\"Developers\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\",\"name\":\"Offline utility networks in ArcGIS Maps SDKs for Native Apps\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2023-01-24T16:32:03+00:00\",\"dateModified\":\"2025-06-05T14:26:05+00:00\",\"description\":\"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Offline utility networks in ArcGIS Maps SDKs for Native Apps\"}]},{\"@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\/a3b7b2d1ed972b03f0e342613bc2b690\",\"name\":\"Jennifer Nery\",\"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\/2023\/01\/Profile2-465x465.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg\",\"caption\":\"Jennifer Nery\"},\"description\":\"Jennifer Nery is a Principal Software Development Engineer for the ArcGIS Maps SDK for .NET with over 15 years of experience in designing and developing APIs, toolkits, samples, and applications for desktop and mobile. Jennifer actively participates in the full development of utility networks, enhancement of feature layers, expanding support for branch versioning and session management, and is passionate about seeing these awesome features come to life for developers in ArcGIS Maps SDK for Native Apps!\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/jenniferdnery\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Offline utility networks in ArcGIS Maps SDKs for Native Apps","description":"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.","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\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps","og_locale":"en_US","og_type":"article","og_title":"Offline utility networks in ArcGIS Maps SDKs for Native Apps","og_description":"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-06-05T14:26:05+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps"},"author":{"name":"Jennifer Nery","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a3b7b2d1ed972b03f0e342613bc2b690"},"headline":"Offline utility networks in ArcGIS Maps SDKs for Native Apps","datePublished":"2023-01-24T16:32:03+00:00","dateModified":"2025-06-05T14:26:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps"},"wordCount":10,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["Mobile","runtime","trace","UN","Utilities"],"articleSection":["Analytics","Announcements","Developers"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps","name":"Offline utility networks in ArcGIS Maps SDKs for Native Apps","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2023-01-24T16:32:03+00:00","dateModified":"2025-06-05T14:26:05+00:00","description":"Learn how you can leverage utility networks with ArcGIS Maps SDK for Native Apps in a fully disconnected environment.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/maps-sdk\/developers\/offline-utility-networks-in-arcgis-maps-sdks-for-native-apps#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Offline utility networks in ArcGIS Maps SDKs for Native Apps"}]},{"@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\/a3b7b2d1ed972b03f0e342613bc2b690","name":"Jennifer Nery","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\/2023\/01\/Profile2-465x465.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg","caption":"Jennifer Nery"},"description":"Jennifer Nery is a Principal Software Development Engineer for the ArcGIS Maps SDK for .NET with over 15 years of experience in designing and developing APIs, toolkits, samples, and applications for desktop and mobile. Jennifer actively participates in the full development of utility networks, enhancement of feature layers, expanding support for branch versioning and session management, and is passionate about seeing these awesome features come to life for developers in ArcGIS Maps SDK for Native Apps!","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/jenniferdnery"}]}},"text_date":"January 24, 2023","author_name":"Jennifer Nery","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/jenniferdnery","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/article-banner.jpg","primary_product":"ArcGIS Maps SDKs","tag_data":[{"term_id":23711,"name":"Mobile","slug":"mobile","term_group":0,"term_taxonomy_id":23711,"taxonomy":"post_tag","description":"","parent":0,"count":116,"filter":"raw"},{"term_id":24291,"name":"runtime","slug":"runtime","term_group":0,"term_taxonomy_id":24291,"taxonomy":"post_tag","description":"","parent":0,"count":12,"filter":"raw"},{"term_id":24831,"name":"trace","slug":"trace","term_group":0,"term_taxonomy_id":24831,"taxonomy":"post_tag","description":"","parent":0,"count":13,"filter":"raw"},{"term_id":33401,"name":"UN","slug":"un","term_group":0,"term_taxonomy_id":33401,"taxonomy":"post_tag","description":"","parent":0,"count":17,"filter":"raw"},{"term_id":23081,"name":"Utilities","slug":"utilities","term_group":0,"term_taxonomy_id":23081,"taxonomy":"post_tag","description":"","parent":0,"count":220,"filter":"raw"}],"category_data":[{"term_id":23341,"name":"Analytics","slug":"analytics","term_group":0,"term_taxonomy_id":23341,"taxonomy":"category","description":"","parent":0,"count":1328,"filter":"raw"},{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1962,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":422,"filter":"raw"}],"product_data":[{"term_id":765412,"name":"ArcGIS Maps SDKs","slug":"maps-sdk","term_group":0,"term_taxonomy_id":765412,"taxonomy":"product","description":"","parent":756692,"count":14,"filter":"raw"},{"term_id":36871,"name":"ArcGIS Runtime SDK for .NET","slug":"api-net-win-desktop","term_group":0,"term_taxonomy_id":36871,"taxonomy":"product","description":"","parent":36601,"count":65,"filter":"raw"},{"term_id":36881,"name":"ArcGIS Runtime SDK for Android","slug":"api-for-android","term_group":0,"term_taxonomy_id":36881,"taxonomy":"product","description":"","parent":36601,"count":65,"filter":"raw"},{"term_id":36891,"name":"ArcGIS Runtime SDK for iOS","slug":"api-ios","term_group":0,"term_taxonomy_id":36891,"taxonomy":"product","description":"","parent":36601,"count":55,"filter":"raw"},{"term_id":36901,"name":"ArcGIS Runtime SDK for Java","slug":"api-java","term_group":0,"term_taxonomy_id":36901,"taxonomy":"product","description":"","parent":36601,"count":59,"filter":"raw"},{"term_id":36911,"name":"ArcGIS Runtime SDK for macOS","slug":"api-mac-osx","term_group":0,"term_taxonomy_id":36911,"taxonomy":"product","description":"","parent":36601,"count":27,"filter":"raw"},{"term_id":36921,"name":"ArcGIS Runtime SDK for Qt","slug":"api-cqt","term_group":0,"term_taxonomy_id":36921,"taxonomy":"product","description":"","parent":36601,"count":80,"filter":"raw"},{"term_id":763892,"name":"ArcGIS Runtime SDKs","slug":"runtime-sdk","term_group":0,"term_taxonomy_id":763892,"taxonomy":"product","description":"","parent":756692,"count":20,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=maps-sdk","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1811282","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\/6351"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1811282"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1811282\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1811282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1811282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1811282"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1811282"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1811282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}