{"id":668832,"date":"2020-02-06T12:07:17","date_gmt":"2020-02-06T20:07:17","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=668832"},"modified":"2024-11-11T12:31:25","modified_gmt":"2024-11-11T20:31:25","slug":"originalfeature-new-attribute-rules-arcade-global","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global","title":{"rendered":"$originalFeature &#8211; New Attribute Rules Arcade Global"},"author":7511,"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],"tags":[32551,302212,25381],"industry":[],"product":[36571,36561],"class_list":["post-668832","blog","type-blog","status-publish","format-standard","hentry","category-arcade","category-data-management","tag-arcade","tag-attribute-rules","tag-geodatabase","product-arcgis-enterprise","product-arcgis-pro"],"acf":{"short_description":"$originalFeature is a new Arcade Global in 2.5\/10.8 that provides the state of the feature before it was edited.","flexible_content":[{"acf_fc_layout":"content","content":"<p>Attribute Rules are scripts that can be added to a dataset and executed on certain events such as when a feature is inserted, updated or deleted. The limitation prior to\u00a0 ArcGIS Pro 2.5 and ArcGIS Enterprise 10.8 is any update you make to the feature will trigger the attribute rule, which might not be a desired behavior.<\/p>\n<p>In this blog we will go through the new Arcade global <strong>$originalFeature<\/strong> in the attribute rules profile and see how it can help mitigate this problem.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<p>Take a look at these two attribute rules, the first one calculates the distance of the nearest point and the second one calculates a uniqueName every time the Name field is updated by appending a guid.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #998;font-style: italic\">\/\/get the feature geometry<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> g1 = Geometry($feature)\r\n<span style=\"color: #998;font-style: italic\">\/\/get the object id<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> oid = $feature.objectid\r\n<span style=\"color: #998;font-style: italic\">\/\/get the entire class <\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> fsPointClass  = FeatureSetByName($datastore, <span style=\"color: #d14\">\"pointClass\"<\/span>, [<span style=\"color: #d14\">'objectid'<\/span>], <span style=\"color: #333;font-weight: 500\">true<\/span>) \r\n<span style=\"color: #998;font-style: italic\">\/\/filter all features except this feature (we don't want the current feature to be returned)<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> allPointsExceptThis  = Filter(fsPointClass  ,  <span style=\"color: #d14\">\"objectid &lt;&gt; @oid\"<\/span>)\r\n<span style=\"color: #998;font-style: italic\">\/\/return if no rows <\/span>\r\n<span style=\"color: #333;font-weight: bold\">if<\/span> (count(allPointsExceptThis) == <span style=\"color: #008080\">0<\/span>) <span style=\"color: #333;font-weight: bold\">return<\/span> <span style=\"color: #008080\">0<\/span>;\r\n<span style=\"color: #998;font-style: italic\">\/\/calculate the minimum distance<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> distances = [];\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> c = <span style=\"color: #008080\">0<\/span>;\r\n<span style=\"color: #333;font-weight: bold\">for<\/span> (<span style=\"color: #333;font-weight: bold\">var<\/span> f <span style=\"color: #333;font-weight: bold\">in<\/span> allPointsExceptThis) {\r\n   <span style=\"color: #333;font-weight: bold\">var<\/span> d =  Distance(g1, Geometry(f), <span style=\"color: #d14\">'feet'<\/span>)\r\n   distances[c++] = d;\r\n}\r\n<span style=\"color: #998;font-style: italic\">\/\/return <\/span>\r\n<span style=\"color: #333;font-weight: bold\">return<\/span> min(distances)\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #333;font-weight: bold\">return<\/span> $feature.Name + Guid() \r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p>The scripts are executed regardless of any edit and that might not be desirable. Ideally, we want the distance to be calculated only when the feature geometry is updated (e.g. a feature is moved) and for the uniqueName to get calculated with a new guid only when the Name field is updated.<\/p>\n<p>Meet <strong>$originalFeature<\/strong>.<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>What is the $originalFeature?<\/h1>\n<p>The <strong>$originalFeature<\/strong> is a new Arcade global that presents the state of the feature before the edit giving the script author flexibility to compare the current values <strong>$feature<\/strong> with the original values of the feature.<\/p>\n<p>Let us rewrite the distance attribute rule so that we only execute the script if the geometry has changed.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #998;font-style: italic\">\/\/check if the geometry has changed or not, if it didn't simply return<\/span>\r\n<span style=\"color: #333;font-weight: bold\">if<\/span> ( Equals(Geometry($feature), Geometry($originalFeature))) <span style=\"color: #333;font-weight: bold\">return<\/span> $feature.distance\r\n\r\n<span style=\"color: #998;font-style: italic\">\/\/get the feature geometry<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> g1 = Geometry($feature)\r\n<span style=\"color: #998;font-style: italic\">\/\/get the object id<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> oid = $feature.objectid\r\n<span style=\"color: #998;font-style: italic\">\/\/get the entire class <\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> fsPointClass  = FeatureSetByName($datastore, <span style=\"color: #d14\">\"pointClass\"<\/span>, [<span style=\"color: #d14\">'objectid'<\/span>], <span style=\"color: #333;font-weight: 500\">true<\/span>) \r\n<span style=\"color: #998;font-style: italic\">\/\/filter all features except this feature (we don't want the current feature to be returned)<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> allPointsExceptThis  = Filter(fsPointClass  ,  <span style=\"color: #d14\">\"objectid &lt;&gt; @oid\"<\/span>)\r\n<span style=\"color: #998;font-style: italic\">\/\/return if no rows <\/span>\r\n<span style=\"color: #333;font-weight: bold\">if<\/span> (count(allPointsExceptThis) == <span style=\"color: #008080\">0<\/span>) <span style=\"color: #333;font-weight: bold\">return<\/span> <span style=\"color: #008080\">0<\/span>;\r\n<span style=\"color: #998;font-style: italic\">\/\/calculate the minimum distance<\/span>\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> distances = [];\r\n<span style=\"color: #333;font-weight: bold\">var<\/span> c = <span style=\"color: #008080\">0<\/span>;\r\n<span style=\"color: #333;font-weight: bold\">for<\/span> (<span style=\"color: #333;font-weight: bold\">var<\/span> f <span style=\"color: #333;font-weight: bold\">in<\/span> allPointsExceptThis) {\r\n   <span style=\"color: #333;font-weight: bold\">var<\/span> d =  Distance(g1, Geometry(f), <span style=\"color: #d14\">'feet'<\/span>)\r\n   distances[c++] = d;\r\n}\r\n<span style=\"color: #998;font-style: italic\">\/\/return <\/span>\r\n<span style=\"color: #333;font-weight: bold\">return<\/span> min(distances)\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p>We can do the same for the UniqueName attribute rule by checking if the Name field has been updated or not and return the current unqiueName.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #998;font-style: italic\">\/\/if the name didn't change don't generate a new uniquename guid<\/span>\r\n<span style=\"color: #333;font-weight: bold\">if<\/span> ($originalFeature.Name == $feature.Name) <span style=\"color: #333;font-weight: bold\">return<\/span> $feature.uniqueName\r\n<span style=\"color: #333;font-weight: bold\">return<\/span> $feature.Name + Guid() \r\n<\/code><\/pre>\n<p><a class=\"btn btn-large center-btn\" style=\"margin: 0 auto;max-width: 200px\" href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-pro\/trial\">Free ArcGIS Pro Trial<\/a><\/p>\n"}],"authors":[{"ID":7511,"user_firstname":"Hussein","user_lastname":"Nasser","nickname":"Hussein Nasser","user_nicename":"hussein-nasser","display_name":"Hussein Nasser","user_email":"HNasser@esri.com","user_url":"http:\/\/www.husseinnasser.com","user_registered":"2018-03-21 18:21:21","user_description":"Product Engineer at Esri, Author of several GIS books and Software Engineering Content Creator on YouTube and a podcast host.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/11\/script.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/11\/script21.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>$originalFeature - New Attribute Rules Arcade Global<\/title>\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\/data-management\/originalfeature-new-attribute-rules-arcade-global\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"$originalFeature - New Attribute Rules Arcade Global\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global\" \/>\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=\"2024-11-11T20:31:25+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\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\/data-management\/originalfeature-new-attribute-rules-arcade-global#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global\"},\"author\":{\"name\":\"Hussein Nasser\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/78b7647b1db598b3c791d039593e5b2b\"},\"headline\":\"$originalFeature &#8211; New Attribute Rules Arcade Global\",\"datePublished\":\"2020-02-06T20:07:17+00:00\",\"dateModified\":\"2024-11-11T20:31:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global\"},\"wordCount\":7,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"arcade\",\"attribute rules\",\"geodatabase\"],\"articleSection\":[\"Arcade\",\"Data Management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global\",\"name\":\"$originalFeature - New Attribute Rules Arcade Global\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2020-02-06T20:07:17+00:00\",\"dateModified\":\"2024-11-11T20:31:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"$originalFeature &#8211; New Attribute Rules Arcade Global\"}]},{\"@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\/78b7647b1db598b3c791d039593e5b2b\",\"name\":\"Hussein Nasser\",\"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\/2018\/06\/profile.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png\",\"caption\":\"Hussein Nasser\"},\"description\":\"Product Engineer at Esri, Author of several GIS books and Software Engineering Content Creator on YouTube and a podcast host.\",\"sameAs\":[\"http:\/\/www.husseinnasser.com\",\"https:\/\/www.linkedin.com\/in\/hnaser\/\",\"https:\/\/x.com\/hnasr\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/hussein-nasser\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"$originalFeature - New Attribute Rules Arcade Global","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\/data-management\/originalfeature-new-attribute-rules-arcade-global","og_locale":"en_US","og_type":"article","og_title":"$originalFeature - New Attribute Rules Arcade Global","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-11-11T20:31:25+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global"},"author":{"name":"Hussein Nasser","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/78b7647b1db598b3c791d039593e5b2b"},"headline":"$originalFeature &#8211; New Attribute Rules Arcade Global","datePublished":"2020-02-06T20:07:17+00:00","dateModified":"2024-11-11T20:31:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global"},"wordCount":7,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["arcade","attribute rules","geodatabase"],"articleSection":["Arcade","Data Management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global","name":"$originalFeature - New Attribute Rules Arcade Global","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2020-02-06T20:07:17+00:00","dateModified":"2024-11-11T20:31:25+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/data-management\/originalfeature-new-attribute-rules-arcade-global#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"$originalFeature &#8211; New Attribute Rules Arcade Global"}]},{"@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\/78b7647b1db598b3c791d039593e5b2b","name":"Hussein Nasser","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\/2018\/06\/profile.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png","caption":"Hussein Nasser"},"description":"Product Engineer at Esri, Author of several GIS books and Software Engineering Content Creator on YouTube and a podcast host.","sameAs":["http:\/\/www.husseinnasser.com","https:\/\/www.linkedin.com\/in\/hnaser\/","https:\/\/x.com\/hnasr"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/hussein-nasser"}]}},"text_date":"February 6, 2020","author_name":"Hussein Nasser","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/hussein-nasser","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/11\/script21.png","primary_product":"ArcGIS Pro","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":25381,"name":"geodatabase","slug":"geodatabase","term_group":0,"term_taxonomy_id":25381,"taxonomy":"post_tag","description":"","parent":0,"count":48,"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":921,"filter":"raw"}],"product_data":[{"term_id":36571,"name":"ArcGIS Enterprise","slug":"arcgis-enterprise","term_group":0,"term_taxonomy_id":36571,"taxonomy":"product","description":"","parent":0,"count":977,"filter":"raw"},{"term_id":36561,"name":"ArcGIS Pro","slug":"arcgis-pro","term_group":0,"term_taxonomy_id":36561,"taxonomy":"product","description":"","parent":0,"count":2039,"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\/668832","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\/7511"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=668832"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/668832\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=668832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=668832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=668832"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=668832"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=668832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}