{"id":2697072,"date":"2025-05-28T06:00:35","date_gmt":"2025-05-28T13:00:35","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2697072"},"modified":"2025-08-28T14:24:52","modified_gmt":"2025-08-28T21:24:52","slug":"distance-constraint-rules","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules","title":{"rendered":"Enforcing Distance on Utility Network Containment Associations"},"author":37241,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[777102,23851,25741],"tags":[32551,302212,35461,660431],"industry":[],"product":[36561,515312],"class_list":["post-2697072","blog","type-blog","status-publish","format-standard","hentry","category-arcade","category-data-management","category-electric-gas","tag-arcade","tag-attribute-rules","tag-utility-network","tag-utility-network-api","product-arcgis-pro","product-utility-network"],"acf":{"short_description":"Learn how to create and test distance constraint attribute rules","flexible_content":[{"acf_fc_layout":"content","content":"<p>Recently, there was a question about how to use attribute rules to prevent containment associations based on distance for utility network features. Containment associations help to identify assets that are contained within other assets\u2014such as a fuse device within a fuse bank assembly. This question is particularly interesting for several reasons:<\/p>\n<p>One, associations do not have to be colocated, which means they don\u2019t have to share the same spatial location. Two, it identifies the need to improve data quality beyond what the system identifies as data quality issues. Attribute rules provide a way to do platform-wide checks for data editing workflows by extending editing capabilities. Another reason is that utilities tend to have a large team of data editors, so using attribute rules to extend editing capabilities can be useful in the context of improving data quality. Lastly, not all data quality checks are appropriate to include as a part of the utility network dataset. In other words, some checks and balances are built directly into the utility network, such as network topology errors that are discovered during validation of the network topology.<\/p>\n<p>However, enforcing distance checks on containment associations is outside the scope of the system check. Therefore, the utility network does not enforce any sort of distance constraints on containers and their content. In this example, the goal of creating rules is to allow utility network features to abide by a set of business validation logic to ensure the data remains clean, or as clean as possible. This post will show how to use attribute rules to enforce a distance constraint on utility network association features and test those rules by performing edits to verify the expected behavior during an update event.<\/p>\n"},{"acf_fc_layout":"content","content":"<h4><strong>Assembly-Device use case<\/strong><\/h4>\n<p>In most use cases, features that are related in a network are, typically, spatially close. For example, fuses (device class) are contained within the fuse bank (assembly class) or transformers (devices) within a transformer bank (assembly). There are no constraints for the maximum distance that can separate two associated records, which means \u201cclose\u201d proximity could be 100 miles, but this is <em>not<\/em> something we would realistically expect, therefore we should prevent edits that are too far apart. So, we can introduce a little more logic when we <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/3.3\/help\/data\/utility-network\/associations.htm\">modify associations<\/a> by adding a constraint attribute rule. The reason we introduce the constraint rule is because when we update the association status, in other words, modify association, it impacts both the container and the content participating in that association. Therefore, we add an attribute rule to the update event for both the assembly and device classes.<\/p>\n"},{"acf_fc_layout":"content","content":"<h4><strong>Constraint attribute rule example<\/strong><\/h4>\n<p>In our example here, we are going to create an attribute rule that prevents an association from being created if the distance between the features is too large (for example, 3,000 feet). We will do this between the assembly class and the device class\u2014the transformer bank (assembly) and transformer (device). The basic logic of the edit is to create a containment relationship between assembly and device. When using the modify associations pane, this edit will cause an update event to fire on the device and the assembly. We then capture this event and do the association query using <a href=\"https:\/\/developers.arcgis.com\/arcade\/function-reference\/featureset_functions\/\">FeatureSet functions<\/a> to find the container and\/or content, calculate the distance, and if the distance is too large, the edit will fail. This is a <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/constraint-attribute-rules.htm#:~:text=Constraint%20rules%20specify%20permissible%20attribute,are%20met%20on%20a%20feature.\">constraint attribute rule<\/a>.<\/p>\n<p>Here\u2019s how this is done:<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<h4><strong>Distance Constraint Rule<\/strong><\/h4>\n","image_reference":false,"layout":"code_snippet","image_reference_figure":"","snippet":"\/\/establish container variable\r\nvar container = FeatureSetByAssociation($feature, \"container\");\r\nvar GETID = [];\r\nvar i = 0;\r\n\r\n\/\/Get GLOBALID for each row returned in container FeatureSet\r\nfor (var c in container){\r\n    GETID[i++] = c.GLOBALID\r\n}\r\n\/\/IF container is not empty do this...\r\nif (c != null){\r\n\/\/ establish variable for assembly table\r\nvar assembly = FeatureSetByName($datastore, \"main.ElectricDistributionAssembly\")\r\n\r\n\/\/Find container record in assembly table\r\nvar filtered = filter(assembly, 'GLOBALID IN @GETID')\r\n\r\nfor (var d in filtered){\r\n    \/\/calculate distance \r\n    var dist = distance(d, $feature, 'feet')\r\n\r\n    \/\/check distance\r\n    if (dist &lt; 3000){return true};\r\n}} else{\r\n\r\n\/\/IF container FeatureSet is empty, just, allow the edit\r\nif (c == null) return true;\r\n}\r\n","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h4><strong>Testing Edge Cases<\/strong><\/h4>\n<p>To test the rule, we\u2019ll use two edge cases. The first edge case is one assembly with multiple valid contents; in this case, the edits should apply. And the second case is to modify associations using one valid content and one invalid content; however, in the test case, one edit should apply and the other should return the attribute rule error.<\/p>\n<p><em>So, what happens if we move the assembly feature far away from its contents (or containing devices)?<\/em><\/p>\n<p>The current constraint rule on the device will not catch this edit. Therefore, we need to add the constraint rule on the update event for the assembly features. This is essentially the same rule we created for the device features to identify the container, but instead we are identifying the contents of the container feature.<\/p>\n"},{"acf_fc_layout":"kaltura","video_id":"1_vw43h6xt","time":false,"start":0,"stop":""},{"acf_fc_layout":"content","content":"<p><em>Now, how do we catch bad cases that are already in the system?<\/em><\/p>\n<p>For example, bad cases can come from existing data loading, and these cases will not be caught by constraint rules. In this case, we can add the same rule as a <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/3.3\/help\/data\/geodatabases\/overview\/validation-attribute-rules.htm\">validation rule<\/a> and create error features on the assembly\/device classes that are too far apart.<\/p>\n<p>This simple example was intentionally designed to be straightforward to show how to perform a distance check on feature associations attribute rules. However, for the device class, it only checks for the containment associations, and on the assembly class, it only checks for the content associations. Therefore, the constraint rule shown here is limited to the container and content association types, but ideally, if we needed to expand the rule to evaluate other types of associations such as attachments, we could. Check out the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/featuresetbyassocaitions-new-utility-network-arcade-api-to-work-with-associations-2-5-10-8\/\">FeatureSetByAssociation using Utility Network<\/a> post for more examples of attribute rules with different association types.<\/p>\n"}],"related_articles":[{"ID":655692,"post_author":"7511","post_date":"2020-02-07 06:21:38","post_date_gmt":"2020-02-07 14:21:38","post_content":"","post_title":"FeatureSetByAssociations - New Utility Network Arcade API to work with Associations (2.5\/10.8)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"featuresetbyassocaitions-new-utility-network-arcade-api-to-work-with-associations-2-5-10-8","to_ping":"","pinged":"","post_modified":"2024-11-11 12:31:13","post_modified_gmt":"2024-11-11 20:31:13","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=655692","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"1","filter":"raw"}],"authors":[{"ID":37241,"user_firstname":"Koya","user_lastname":"Brown","nickname":"Koya Brown","user_nicename":"kbrown","display_name":"Koya Brown","user_email":"kbrown@esri.com","user_url":"","user_registered":"2020-05-22 19:46:58","user_description":"","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/headshot_formal2-213x200.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"show_article_image":true,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/EnforcingDistanceARs.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/EnforcingDistanceARs_banner.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>Enforcing Distance on Utility Network Containment Associations<\/title>\n<meta name=\"description\" content=\"Learn how to create and test distance constraint attribute rules on Utility Network features.\" \/>\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\/utility-network\/arcade\/distance-constraint-rules\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enforcing Distance on Utility Network Containment Associations\" \/>\n<meta property=\"og:description\" content=\"Learn how to create and test distance constraint attribute rules on Utility Network features.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules\" \/>\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-08-28T21:24:52+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=\"5 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\/utility-network\/arcade\/distance-constraint-rules#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules\"},\"author\":{\"name\":\"Koya Brown\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/65fdafa28ce19be09d072605aab16f23\"},\"headline\":\"Enforcing Distance on Utility Network Containment Associations\",\"datePublished\":\"2025-05-28T13:00:35+00:00\",\"dateModified\":\"2025-08-28T21:24:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules\"},\"wordCount\":7,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"arcade\",\"attribute rules\",\"utility network\",\"Utility Network API\"],\"articleSection\":[\"Arcade\",\"Data Management\",\"Electric &amp; Gas Utilities\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules\",\"name\":\"Enforcing Distance on Utility Network Containment Associations\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-05-28T13:00:35+00:00\",\"dateModified\":\"2025-08-28T21:24:52+00:00\",\"description\":\"Learn how to create and test distance constraint attribute rules on Utility Network features.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enforcing Distance on Utility Network Containment Associations\"}]},{\"@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\/65fdafa28ce19be09d072605aab16f23\",\"name\":\"Koya Brown\",\"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\/2022\/10\/headshot_formal2-213x200.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/headshot_formal2-213x200.png\",\"caption\":\"Koya Brown\"},\"jobTitle\":\"product engineer\",\"worksFor\":\"Esri\",\"url\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Enforcing Distance on Utility Network Containment Associations","description":"Learn how to create and test distance constraint attribute rules on Utility Network features.","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\/utility-network\/arcade\/distance-constraint-rules","og_locale":"en_US","og_type":"article","og_title":"Enforcing Distance on Utility Network Containment Associations","og_description":"Learn how to create and test distance constraint attribute rules on Utility Network features.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-08-28T21:24:52+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules"},"author":{"name":"Koya Brown","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/65fdafa28ce19be09d072605aab16f23"},"headline":"Enforcing Distance on Utility Network Containment Associations","datePublished":"2025-05-28T13:00:35+00:00","dateModified":"2025-08-28T21:24:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules"},"wordCount":7,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["arcade","attribute rules","utility network","Utility Network API"],"articleSection":["Arcade","Data Management","Electric &amp; Gas Utilities"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules","name":"Enforcing Distance on Utility Network Containment Associations","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-05-28T13:00:35+00:00","dateModified":"2025-08-28T21:24:52+00:00","description":"Learn how to create and test distance constraint attribute rules on Utility Network features.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/arcade\/distance-constraint-rules#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Enforcing Distance on Utility Network Containment Associations"}]},{"@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\/65fdafa28ce19be09d072605aab16f23","name":"Koya Brown","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\/2022\/10\/headshot_formal2-213x200.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/headshot_formal2-213x200.png","caption":"Koya Brown"},"jobTitle":"product engineer","worksFor":"Esri","url":""}]}},"text_date":"May 28, 2025","author_name":"Koya Brown","author_page":false,"custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/EnforcingDistanceARs_banner.png","primary_product":"ArcGIS Utility Network","tag_data":[{"term_id":32551,"name":"arcade","slug":"arcade","term_group":0,"term_taxonomy_id":32551,"taxonomy":"post_tag","description":"","parent":0,"count":113,"filter":"raw"},{"term_id":302212,"name":"attribute rules","slug":"attribute-rules","term_group":0,"term_taxonomy_id":302212,"taxonomy":"post_tag","description":"","parent":0,"count":35,"filter":"raw"},{"term_id":35461,"name":"utility network","slug":"utility-network","term_group":0,"term_taxonomy_id":35461,"taxonomy":"post_tag","description":"","parent":0,"count":61,"filter":"raw"},{"term_id":660431,"name":"Utility Network API","slug":"utility-network-api","term_group":0,"term_taxonomy_id":660431,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"}],"category_data":[{"term_id":777102,"name":"Arcade","slug":"arcade","term_group":0,"term_taxonomy_id":777102,"taxonomy":"category","description":"","parent":0,"count":98,"filter":"raw"},{"term_id":23851,"name":"Data Management","slug":"data-management","term_group":0,"term_taxonomy_id":23851,"taxonomy":"category","description":"","parent":0,"count":920,"filter":"raw"},{"term_id":25741,"name":"Electric &amp; Gas Utilities","slug":"electric-gas","term_group":0,"term_taxonomy_id":25741,"taxonomy":"category","description":"","parent":0,"count":253,"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":2037,"filter":"raw"},{"term_id":515312,"name":"ArcGIS Utility Network","slug":"utility-network","term_group":0,"term_taxonomy_id":515312,"taxonomy":"product","description":"","parent":36981,"count":141,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=utility-network","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2697072","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\/37241"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2697072"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2697072\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2697072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2697072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2697072"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2697072"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2697072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}