diff --git a/3DAnalyst/CreateLineOfSight/CreateLineOfSight (C#).md b/3DAnalyst/CreateLineOfSight/CreateLineOfSight (C#).md index 0ac8b11f..75ca84e6 100644 --- a/3DAnalyst/CreateLineOfSight/CreateLineOfSight (C#).md +++ b/3DAnalyst/CreateLineOfSight/CreateLineOfSight (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/CreateLineOfSight/ReadMe.md b/3DAnalyst/CreateLineOfSight/ReadMe.md index 0ac8b11f..75ca84e6 100644 --- a/3DAnalyst/CreateLineOfSight/ReadMe.md +++ b/3DAnalyst/CreateLineOfSight/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/GetLineOfSight/GetLineOfSight (C#).md b/3DAnalyst/GetLineOfSight/GetLineOfSight (C#).md index d9a95f54..75298dff 100644 --- a/3DAnalyst/GetLineOfSight/GetLineOfSight (C#).md +++ b/3DAnalyst/GetLineOfSight/GetLineOfSight (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/GetLineOfSight/ReadMe.md b/3DAnalyst/GetLineOfSight/ReadMe.md index d9a95f54..75298dff 100644 --- a/3DAnalyst/GetLineOfSight/ReadMe.md +++ b/3DAnalyst/GetLineOfSight/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/LASDatasetAPISamples/LASDatasetAPISamples (C#).md b/3DAnalyst/LASDatasetAPISamples/LASDatasetAPISamples (C#).md index 5b8c1ede..7cf159a5 100644 --- a/3DAnalyst/LASDatasetAPISamples/LASDatasetAPISamples (C#).md +++ b/3DAnalyst/LASDatasetAPISamples/LASDatasetAPISamples (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/LASDatasetAPISamples/ReadMe.md b/3DAnalyst/LASDatasetAPISamples/ReadMe.md index 5b8c1ede..7cf159a5 100644 --- a/3DAnalyst/LASDatasetAPISamples/ReadMe.md +++ b/3DAnalyst/LASDatasetAPISamples/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/ReadMe.md b/3DAnalyst/ReadMe.md index 00bb1a1f..491599c9 100644 --- a/3DAnalyst/ReadMe.md +++ b/3DAnalyst/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: 3D Analyst -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the '3D Analyst' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the '3D Analyst' topic. ## Features diff --git a/3DAnalyst/TINApiSamples/ReadMe.md b/3DAnalyst/TINApiSamples/ReadMe.md index f9c4675b..79b9e6a4 100644 --- a/3DAnalyst/TINApiSamples/ReadMe.md +++ b/3DAnalyst/TINApiSamples/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/3DAnalyst/TINApiSamples/TINApiSamples (C#).md b/3DAnalyst/TINApiSamples/TINApiSamples (C#).md index f9c4675b..79b9e6a4 100644 --- a/3DAnalyst/TINApiSamples/TINApiSamples (C#).md +++ b/3DAnalyst/TINApiSamples/TINApiSamples (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: 3DAnalyst Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ConfigWithMap/ConfigWithMap (C#).md b/Configuration/ConfigWithMap/ConfigWithMap (C#).md index 3a3ce5f7..ab04a9ba 100644 --- a/Configuration/ConfigWithMap/ConfigWithMap (C#).md +++ b/Configuration/ConfigWithMap/ConfigWithMap (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ConfigWithMap/ReadMe.md b/Configuration/ConfigWithMap/ReadMe.md index 3a3ce5f7..ab04a9ba 100644 --- a/Configuration/ConfigWithMap/ReadMe.md +++ b/Configuration/ConfigWithMap/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ConfigWithStartWizard/ConfigWithStartWizard (C#).md b/Configuration/ConfigWithStartWizard/ConfigWithStartWizard (C#).md index e3653411..218c1e0e 100644 --- a/Configuration/ConfigWithStartWizard/ConfigWithStartWizard (C#).md +++ b/Configuration/ConfigWithStartWizard/ConfigWithStartWizard (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ConfigWithStartWizard/ReadMe.md b/Configuration/ConfigWithStartWizard/ReadMe.md index e3653411..218c1e0e 100644 --- a/Configuration/ConfigWithStartWizard/ReadMe.md +++ b/Configuration/ConfigWithStartWizard/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ProConfigWithAnimatedSplash/ProConfigWithAnimatedSplash (C#).md b/Configuration/ProConfigWithAnimatedSplash/ProConfigWithAnimatedSplash (C#).md index fcb47d89..54038e08 100644 --- a/Configuration/ProConfigWithAnimatedSplash/ProConfigWithAnimatedSplash (C#).md +++ b/Configuration/ProConfigWithAnimatedSplash/ProConfigWithAnimatedSplash (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ProConfigWithAnimatedSplash/ReadMe.md b/Configuration/ProConfigWithAnimatedSplash/ReadMe.md index fcb47d89..54038e08 100644 --- a/Configuration/ProConfigWithAnimatedSplash/ReadMe.md +++ b/Configuration/ProConfigWithAnimatedSplash/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ProStartPageConfig/ProStartPageConfig (C#).md b/Configuration/ProStartPageConfig/ProStartPageConfig (C#).md index d3d42a28..16a8d4f0 100644 --- a/Configuration/ProStartPageConfig/ProStartPageConfig (C#).md +++ b/Configuration/ProStartPageConfig/ProStartPageConfig (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ProStartPageConfig/ReadMe.md b/Configuration/ProStartPageConfig/ReadMe.md index d3d42a28..16a8d4f0 100644 --- a/Configuration/ProStartPageConfig/ReadMe.md +++ b/Configuration/ProStartPageConfig/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Configuation Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Configuration/ReadMe.md b/Configuration/ReadMe.md index 3b6d0e03..9bcf707a 100644 --- a/Configuration/ReadMe.md +++ b/Configuration/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Configuration -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Configuration' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Configuration' topic. ## Features diff --git a/Content/AddInInfoManager/AddInInfoManager (C#).md b/Content/AddInInfoManager/AddInInfoManager (C#).md index 1c1acb11..d49b1381 100644 --- a/Content/AddInInfoManager/AddInInfoManager (C#).md +++ b/Content/AddInInfoManager/AddInInfoManager (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/AddInInfoManager/ReadMe.md b/Content/AddInInfoManager/ReadMe.md index 1c1acb11..d49b1381 100644 --- a/Content/AddInInfoManager/ReadMe.md +++ b/Content/AddInInfoManager/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/ArcGISOnlineConnect/ArcGISOnlineConnect (C#).md b/Content/ArcGISOnlineConnect/ArcGISOnlineConnect (C#).md index 4db91c1f..eeb0ec31 100644 --- a/Content/ArcGISOnlineConnect/ArcGISOnlineConnect (C#).md +++ b/Content/ArcGISOnlineConnect/ArcGISOnlineConnect (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/ArcGISOnlineConnect/ReadMe.md b/Content/ArcGISOnlineConnect/ReadMe.md index 4db91c1f..eeb0ec31 100644 --- a/Content/ArcGISOnlineConnect/ReadMe.md +++ b/Content/ArcGISOnlineConnect/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/ContentFileExplorer/ContentFileExplorer (C#).md b/Content/ContentFileExplorer/ContentFileExplorer (C#).md index 26daaca5..d182053e 100644 --- a/Content/ContentFileExplorer/ContentFileExplorer (C#).md +++ b/Content/ContentFileExplorer/ContentFileExplorer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/ContentFileExplorer/ReadMe.md b/Content/ContentFileExplorer/ReadMe.md index 26daaca5..d182053e 100644 --- a/Content/ContentFileExplorer/ReadMe.md +++ b/Content/ContentFileExplorer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/CustomCatalogContext/CustomCatalogContext (C#).md b/Content/CustomCatalogContext/CustomCatalogContext (C#).md index 17cf1d84..241a22f9 100644 --- a/Content/CustomCatalogContext/CustomCatalogContext (C#).md +++ b/Content/CustomCatalogContext/CustomCatalogContext (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/CustomCatalogContext/ReadMe.md b/Content/CustomCatalogContext/ReadMe.md index 17cf1d84..241a22f9 100644 --- a/Content/CustomCatalogContext/ReadMe.md +++ b/Content/CustomCatalogContext/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/ExcelDropHandler/ExcelDropHandler (C#).md b/Content/ExcelDropHandler/ExcelDropHandler (C#).md index 087f6901..ad786c44 100644 --- a/Content/ExcelDropHandler/ExcelDropHandler (C#).md +++ b/Content/ExcelDropHandler/ExcelDropHandler (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/ExcelDropHandler/ReadMe.md b/Content/ExcelDropHandler/ReadMe.md index 087f6901..ad786c44 100644 --- a/Content/ExcelDropHandler/ReadMe.md +++ b/Content/ExcelDropHandler/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/FolderConnectionManager/FolderConnectionManager (C#).md b/Content/FolderConnectionManager/FolderConnectionManager (C#).md index b28fe305..d2685742 100644 --- a/Content/FolderConnectionManager/FolderConnectionManager (C#).md +++ b/Content/FolderConnectionManager/FolderConnectionManager (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/FolderConnectionManager/Readme.md b/Content/FolderConnectionManager/Readme.md index b28fe305..d2685742 100644 --- a/Content/FolderConnectionManager/Readme.md +++ b/Content/FolderConnectionManager/Readme.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/MetadataBrowserControl/MetadataBrowserControl (C#).md b/Content/MetadataBrowserControl/MetadataBrowserControl (C#).md index 78d3b293..47644263 100644 --- a/Content/MetadataBrowserControl/MetadataBrowserControl (C#).md +++ b/Content/MetadataBrowserControl/MetadataBrowserControl (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/MetadataBrowserControl/ReadMe.md b/Content/MetadataBrowserControl/ReadMe.md index 78d3b293..47644263 100644 --- a/Content/MetadataBrowserControl/ReadMe.md +++ b/Content/MetadataBrowserControl/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/MetadataViewer/MetadataViewer (C#).md b/Content/MetadataViewer/MetadataViewer (C#).md index 51847d07..3241468d 100644 --- a/Content/MetadataViewer/MetadataViewer (C#).md +++ b/Content/MetadataViewer/MetadataViewer (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/MetadataViewer/ReadMe.md b/Content/MetadataViewer/ReadMe.md index 51847d07..3241468d 100644 --- a/Content/MetadataViewer/ReadMe.md +++ b/Content/MetadataViewer/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/OpenItemDialogBrowseFilter/OpenItemDialogBrowseFilter (C#).md b/Content/OpenItemDialogBrowseFilter/OpenItemDialogBrowseFilter (C#).md index 16ebac66..7d8e76d8 100644 --- a/Content/OpenItemDialogBrowseFilter/OpenItemDialogBrowseFilter (C#).md +++ b/Content/OpenItemDialogBrowseFilter/OpenItemDialogBrowseFilter (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/OpenItemDialogBrowseFilter/ReadMe.md b/Content/OpenItemDialogBrowseFilter/ReadMe.md index 16ebac66..7d8e76d8 100644 --- a/Content/OpenItemDialogBrowseFilter/ReadMe.md +++ b/Content/OpenItemDialogBrowseFilter/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/PortalInfoListAllFedServers/PortalInfoListAllFedServers (C#).md b/Content/PortalInfoListAllFedServers/PortalInfoListAllFedServers (C#).md index 0b0c8624..9d855447 100644 --- a/Content/PortalInfoListAllFedServers/PortalInfoListAllFedServers (C#).md +++ b/Content/PortalInfoListAllFedServers/PortalInfoListAllFedServers (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/PortalInfoListAllFedServers/ReadMe.md b/Content/PortalInfoListAllFedServers/ReadMe.md index 0b0c8624..9d855447 100644 --- a/Content/PortalInfoListAllFedServers/ReadMe.md +++ b/Content/PortalInfoListAllFedServers/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/QuakeItem/QuakeItem (C#).md b/Content/QuakeItem/QuakeItem (C#).md index 1ed9d1c9..32766fd2 100644 --- a/Content/QuakeItem/QuakeItem (C#).md +++ b/Content/QuakeItem/QuakeItem (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/QuakeItem/ReadMe.md b/Content/QuakeItem/ReadMe.md index 1ed9d1c9..32766fd2 100644 --- a/Content/QuakeItem/ReadMe.md +++ b/Content/QuakeItem/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/README.md b/Content/README.md index d8aa28cc..92f7f4cb 100644 --- a/Content/README.md +++ b/Content/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Content -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Content' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Content' topic. ## Features diff --git a/Content/WorkwithProjects/ReadMe.md b/Content/WorkwithProjects/ReadMe.md index 1bfee905..dc49e313 100644 --- a/Content/WorkwithProjects/ReadMe.md +++ b/Content/WorkwithProjects/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Content/WorkwithProjects/WorkwithProjects (C#).md b/Content/WorkwithProjects/WorkwithProjects (C#).md index 1bfee905..dc49e313 100644 --- a/Content/WorkwithProjects/WorkwithProjects (C#).md +++ b/Content/WorkwithProjects/WorkwithProjects (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/CoreHost/ArcGISProConfig/ArcGISProConfig (C#).md b/CoreHost/ArcGISProConfig/ArcGISProConfig (C#).md index 7d60b085..8c611b67 100644 --- a/CoreHost/ArcGISProConfig/ArcGISProConfig (C#).md +++ b/CoreHost/ArcGISProConfig/ArcGISProConfig (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: CoreHost Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/CoreHost/ArcGISProConfig/ReadMe.md b/CoreHost/ArcGISProConfig/ReadMe.md index 7d60b085..8c611b67 100644 --- a/CoreHost/ArcGISProConfig/ReadMe.md +++ b/CoreHost/ArcGISProConfig/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: CoreHost Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/CoreHost/ArcGISProConfigCoreHost/ArcGISProConfigCoreHost (C#).md b/CoreHost/ArcGISProConfigCoreHost/ArcGISProConfigCoreHost (C#).md index f4d15b70..bc613aa3 100644 --- a/CoreHost/ArcGISProConfigCoreHost/ArcGISProConfigCoreHost (C#).md +++ b/CoreHost/ArcGISProConfigCoreHost/ArcGISProConfigCoreHost (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/ArcGISProConfigCoreHost/ReadMe.md b/CoreHost/ArcGISProConfigCoreHost/ReadMe.md index f4d15b70..bc613aa3 100644 --- a/CoreHost/ArcGISProConfigCoreHost/ReadMe.md +++ b/CoreHost/ArcGISProConfigCoreHost/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostGDB/CoreHostGDB (C#).md b/CoreHost/CoreHostGDB/CoreHostGDB (C#).md index bd72da5e..b5e8127f 100644 --- a/CoreHost/CoreHostGDB/CoreHostGDB (C#).md +++ b/CoreHost/CoreHostGDB/CoreHostGDB (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostGDB/ReadMe.md b/CoreHost/CoreHostGDB/ReadMe.md index bd72da5e..b5e8127f 100644 --- a/CoreHost/CoreHostGDB/ReadMe.md +++ b/CoreHost/CoreHostGDB/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostResolveAssembly/CoreHostResolveAssembly (C#).md b/CoreHost/CoreHostResolveAssembly/CoreHostResolveAssembly (C#).md index 5bbf8a5d..5349e5e9 100644 --- a/CoreHost/CoreHostResolveAssembly/CoreHostResolveAssembly (C#).md +++ b/CoreHost/CoreHostResolveAssembly/CoreHostResolveAssembly (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostResolveAssembly/ReadMe.md b/CoreHost/CoreHostResolveAssembly/ReadMe.md index 5bbf8a5d..5349e5e9 100644 --- a/CoreHost/CoreHostResolveAssembly/ReadMe.md +++ b/CoreHost/CoreHostResolveAssembly/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostSample/CoreHostSample (C#).md b/CoreHost/CoreHostSample/CoreHostSample (C#).md index cd852dd8..17ef4ace 100644 --- a/CoreHost/CoreHostSample/CoreHostSample (C#).md +++ b/CoreHost/CoreHostSample/CoreHostSample (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostSample/ReadMe.md b/CoreHost/CoreHostSample/ReadMe.md index cd852dd8..17ef4ace 100644 --- a/CoreHost/CoreHostSample/ReadMe.md +++ b/CoreHost/CoreHostSample/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostTopologyAPI/CoreHostTopologyAPI (C#).md b/CoreHost/CoreHostTopologyAPI/CoreHostTopologyAPI (C#).md index 0cb0622c..2504e738 100644 --- a/CoreHost/CoreHostTopologyAPI/CoreHostTopologyAPI (C#).md +++ b/CoreHost/CoreHostTopologyAPI/CoreHostTopologyAPI (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/CoreHostTopologyAPI/ReadMe.md b/CoreHost/CoreHostTopologyAPI/ReadMe.md index 0cb0622c..2504e738 100644 --- a/CoreHost/CoreHostTopologyAPI/ReadMe.md +++ b/CoreHost/CoreHostTopologyAPI/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/CoreHost/ReadMe.md b/CoreHost/ReadMe.md index 7c1c0f04..fe75c530 100644 --- a/CoreHost/ReadMe.md +++ b/CoreHost/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Core Host -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Core Host' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Core Host' topic. ## Features diff --git a/CoreHost/RunCoreHostApp/DotNetHelper.cs b/CoreHost/RunCoreHostApp/DotNetHelper.cs new file mode 100644 index 00000000..b1bf2bd9 --- /dev/null +++ b/CoreHost/RunCoreHostApp/DotNetHelper.cs @@ -0,0 +1,52 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RunCoreHostApp +{ + internal class DotNetHelper + { + internal static string ProgFileFolder = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + + internal static string DotNetRuntimePath = string.Empty; + + internal static string DotNetExePath = string.Empty; + + internal static List DotNetVersions = new(); + + internal static void InitializeDotNetVars() + { + // check if this is a .NET file.. only look at the 'newest' .NET framework version + DotNetRuntimePath = Path.Combine(ProgFileFolder, "dotnet", "shared", "Microsoft.NETCore.App"); + DotNetExePath = Path.Combine(ProgFileFolder, "dotnet", "dotnet.exe"); + // get the newest version of DotNET + List dotNetDirs = Directory.GetDirectories(DotNetRuntimePath).ToList(); + dotNetDirs.Sort(); + foreach (var dir in dotNetDirs) + { + DotNetVersions.Add(Path.GetFileName (dir)); + } + } + + } +} diff --git a/CoreHost/RunCoreHostApp/MSIHelper.cs b/CoreHost/RunCoreHostApp/MSIHelper.cs new file mode 100644 index 00000000..5e15db18 --- /dev/null +++ b/CoreHost/RunCoreHostApp/MSIHelper.cs @@ -0,0 +1,174 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace RunCoreHostApp +{ + internal class MSIHelper + { + [DllImport("msi.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern UInt32 MsiEnumRelatedProducts(string strUpgradeCode, int reserved, int iIndex, StringBuilder productCode); + + [DllImport("msi.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern Int32 MsiGetProductInfo(string product, string property, [Out] StringBuilder valueBuf, ref int len); + + /// + /// This identifier should never change for the lifetime of Pro + /// + public static readonly string ArcGISProUpgradeId = "{353C8253-C237-46A7-9124-88EFBF4A0C3E}"; + + /// + /// This identifier should never change for the lifetime of Pro + /// + public static readonly string ArcGISAllSourceUpgradeId = "{AABEECF2-1C0F-474B-BFB8-A9A9A9D9BC4F}"; + + /// + /// Used if the Msi fails on a release install + /// + public static readonly string RegistryKeyUseForFallback = "ArcGISPro"; + + /// + /// Used if the Msi fails on a release install + /// + public static readonly string RegistryKeyAllSourceUseForFallback = "ArcGISAllSource"; + + public static (string Folder, string Version)? GetInstallDirAndVersion() + { + return GetInstallDirAndVersion(string.Empty); + } + /// + /// Get the install directory and version using the MSI Upgrade code. If that doesn't work, fallback on the registry. + /// + /// + /// empty strings if no information found. Otherwise return directory and version. + public static (string Folder, string Version)? GetInstallDirAndVersion(string productName) + { + string upgradeCode = string.Empty; + string productNameRegKey = string.Empty; + if (productName == "ArcGISPro" || string.IsNullOrEmpty(productName)) + { + upgradeCode = ArcGISProUpgradeId; + productNameRegKey = RegistryKeyUseForFallback; + } + + else if (productName == "AllSource") + { + upgradeCode = ArcGISAllSourceUpgradeId; + productNameRegKey = RegistryKeyAllSourceUseForFallback; + } + else + { + return null; + } + StringBuilder productCode = new(255); + + if (MsiEnumRelatedProducts(upgradeCode, 0, 0, productCode) != 0) + { + //Houston, we have a problem + Debug.Assert(false, "DEBUG: DEBUG: The Msi could not resolve the current installed version of Pro!"); + //release - fallback on the hardcoded reg key + return GetInstallDirAndVersionFromReg(productName); + } + string[] properties = new string[] { "InstallLocation", "VersionString" }; + string[] results = new string[properties.Length]; + int size = 1024; + StringBuilder buffer = new(size); + int i = 0; + foreach (string prop in properties) + { + if (MsiGetProductInfo(productCode.ToString(), prop, buffer, ref size) != 0) + { + //Houston, we have a problem + Debug.Assert(false, string.Format("DEBUG: DEBUG: The Msi could not resolve {0} for Pro!", prop)); + return GetInstallDirAndVersionFromReg(productNameRegKey); + } + results[i++] = buffer.ToString(); + buffer.Clear(); + size = buffer.Capacity;//reset size + } + return (results[0], results[1]); + } + + /// + /// Get the install information from the registry + /// + /// + /// Returns empty strings if no registry is found. Otherwise returns installDir, Version + /// + private static (string Folder, string Version)? GetInstallDirAndVersionFromReg(string productNameRegKey) + { + string regKeyName = productNameRegKey; + string regPath = string.Format(@"SOFTWARE\ESRI\{0}", regKeyName); + string regPathInstallDir = string.Format(@"HKLM\{0}\{1}", regPath, "InstallDir"); + string regPathVersion = string.Format(@"HKLM\{0}\{1}", regPath, "Version"); + var productDesignation = productNameRegKey == "ArcGISPro" ? "Pro" : "AllSource"; + + object? path; + object? version; + try + { + RegistryKey localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64); + RegistryKey esriKey = localKey.OpenSubKey(regPath); + + if (esriKey == null) + { + localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry64); + esriKey = localKey.OpenSubKey(regPath); + } + if (esriKey == null) + { + //this is an error + return (string.Empty, string.Empty); + } + path = esriKey.GetValue("InstallDir"); + if (path == null) + { + //this is an error + return (string.Empty, string.Empty); + } + + version = esriKey.GetValue("Version"); + if (version == null) + { + //this is an error + return (string.Empty, string.Empty); + } + } + catch (InvalidOperationException ie) + { + //this is ours + throw; + } + catch (Exception ex) + { + throw; + } + if (path == null || version == null) return null; + + return (path.ToString(), version.ToString()); + } + } +} diff --git a/CoreHost/RunCoreHostApp/Program.cs b/CoreHost/RunCoreHostApp/Program.cs new file mode 100644 index 00000000..1786da6d --- /dev/null +++ b/CoreHost/RunCoreHostApp/Program.cs @@ -0,0 +1,167 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Diagnostics; +using static System.Net.Mime.MediaTypeNames; +using System.IO; +using System.Runtime.Intrinsics.X86; +using System.Threading.Channels; +using System.Text; + +namespace RunCoreHostApp +{ + internal class Program + { + /// + /// This application can be used to run a CoreHost standalone CoreHost application on ArcGIS Pro 3.3 or later, even so the CoreHost App is build for 3.0, 3.1 or 3.2. + /// + /// + /// If you write a CoreHost standalone app for ArcGIS Pro 3.1 you can achieve forward compatibility as well, but there are a few caveats: + /// 1) Your CoreHost app is in essence a.NET console app with references to the following ArcGIS Pro assemblies: ArcGIS.Core and ArcGIS.CoreHost.You have to make sure that the “Copy Local” attribute for these references is set to “NO”. You also have to add code in your CoreHost app to resolve the path to these assemblies (they are located in the ArcGIS Pro installation bin folder). This ensures that your CoreHost application is actually running the assemblies that are installed with ArcGIS Pro and not a potentially outdated(or mismatched versions) assembly copy included with your CoreHost app. + /// 2) Also, your CoreHost app cannot be a ‘self-contained’ .NET application, instead it has to have a ‘Target Framework’. In order to implement this, you have to edit your.CSPROJ file and add the following setting under the property group: + /// <SelfContained>false</SelfContained> + /// When a console app is ‘self-contained’, the runtime for the target .NET version is included with the binary output when the console application is built.However, this feature is not desirable because this would mean that your .NET runtime version is static. + /// If you follow the steps above your CoreHost standalone app can be forward compatible, but the problem is that the app will only allow the target.NET version to be loaded. So, in our case since you built the app using the Pro SDK 3.1 this means that the CoreHost app is permanently linked to.NET 6.0 (or any minor release of .NET 6.0). I added a small sample project called ‘CoreHostTest31Build’ to this post so you can see an implementation of a ‘forward compatible’ capable CoreHost app. + /// If you look at the .json files included with the corehost app you will notice that they are ‘bound’ to a specific .NET target of .NET 6.0, which means that the CoreHost app will not work under ArcGIS Pro 3.3 since Pro 3.3 requires .NET 8.0. You will get this error: + /// > CoreHostTest31Build C:\Data\FeatureTest\FeatureTest.gdb + /// Could not load file or assembly 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.The system cannot find the file specified. + /// You can see that the CoreHost app is trying to load.NET 8.0 because ArcGIS Pro 3.3 requires.NET 8.0.However, the CoreHost app is bound to .NET 6.0 and hence the loading of.NET 8.0 fails. + /// This problem can be fixed by updating the.NET target framework version as a parameter of the dotnet command line tool: + /// For ArcGIS Pro 3.0, 3.1, 3.2 .NET 6.0 is required and the CoreHost dll can be called using the following command line: + /// "C:\Program Files\dotnet\dotnet.exe" exec --fx-version "6.0.30" CoreHostTest31Build.dll + /// and for ArcGIS Pro 3.3 and later .NET 8.0 is required and the CoreHost dll can be called using the following command line: + /// "C:\Program Files\dotnet\dotnet.exe" exec --fx-version "8.0.5" CoreHostTest31Build.dll + /// the exact version of available .NET installations has to be found because the --fx-version parameter requires an exact version of .NET. + /// + /// + static void Main(string[] args) + { + var coreHostAppName = string.Empty; + var coreHostDll = string.Empty; + var coreHostAppPath = string.Empty; + (string Folder, string Version)? proInstallInfo = null; + try + { + if (args.Length == 0) + { + throw new Exception("Please provide a CoreHost dll name."); + } + var argList = new List(args); + argList.RemoveAt(0); + coreHostAppName = args[0]; + var coreHostAppExtension = Path.GetExtension(coreHostAppName); + if (!string.IsNullOrEmpty(coreHostAppExtension) + && coreHostAppExtension.ToLower().CompareTo(".dll") == 0) + { + coreHostAppName = Path.GetFileNameWithoutExtension(coreHostAppName); + coreHostAppPath = AppDomain.CurrentDomain.BaseDirectory; + coreHostDll = Path.Combine(coreHostAppPath, $"{coreHostAppName}.dll"); + } + // check if the CoreHost dll exists + if (!File.Exists(coreHostAppName)) + { + // we have to all the path to the CoreHost dll + coreHostDll = Path.Combine(coreHostAppPath, $"{coreHostAppName}.dll"); + } + if (!File.Exists(coreHostDll)) + { + throw new Exception($@"Error: {coreHostDll} does not exist."); + } + // we will try to load the correct .NET assembly from the correct .NET version + // with Pro Version 3.0 - 3.2 the .NET version is 6.0 + // with Pro Version 3.3+ the .NET version is 8.0 + proInstallInfo = MSIHelper.GetInstallDirAndVersion(); + if (proInstallInfo == null) + { + throw new Exception("Error: Can't get ArcGIS Pro version/install location from registry."); + } + // get all versions of .NET installed + DotNetHelper.InitializeDotNetVars(); + var dotNetCmdArgsPrefix = string.Empty; + if (proInstallInfo.Value.Version.CompareTo("3.3") >= 0) + { + // Pro Version 3.3+ the .NET version is 8.0 + // command line to run the CoreHost app using: exec --fx-version "8.0.*" + foreach (var dotNetVer in DotNetHelper.DotNetVersions) + { + if (dotNetVer.StartsWith("8.0")) + { + dotNetCmdArgsPrefix = @$"exec --fx-version ""{dotNetVer}"" {MakeArguments(new List { coreHostDll })}"; + } + } + } + else + { + // Pro Version 3.0 - 3.2 the .NET version is 6.0 + // command line to run the CoreHost app using: exec --fx-version "6.0.*" + foreach (var dotNetVer in DotNetHelper.DotNetVersions) + { + if (dotNetVer.StartsWith("6.0")) + { + dotNetCmdArgsPrefix = @$"exec --fx-version ""{dotNetVer}"" {MakeArguments(new List { coreHostDll })}"; + } + } + } + if (string.IsNullOrEmpty(dotNetCmdArgsPrefix) ) + throw new Exception("Error: Cannot find suitable version of .NET."); + var proProcess = new Process(); + proProcess.StartInfo.FileName = DotNetHelper.DotNetExePath; + proProcess.StartInfo.Arguments = dotNetCmdArgsPrefix + " " + MakeArguments(argList); + proProcess.StartInfo.UseShellExecute = false; + proProcess.Start(); + } + catch (Exception ex) + { + Console.WriteLine($@"{ex.Message}"); + var nl = Environment.NewLine; + Console.WriteLine($@"Configuration:{nl} CoreHost App name {coreHostAppName}{nl} CoreHost DLL name {coreHostDll}{nl} CoreHost App path {coreHostAppPath}"); + if (proInstallInfo != null) + Console.WriteLine($@"ArcGIS Pro Install Info:{nl} Folder {proInstallInfo?.Folder}{nl} Version {proInstallInfo?.Version}"); + Console.WriteLine($@"DotNet runtime path: {DotNetHelper.DotNetRuntimePath} DotNet exe path: {DotNetHelper.DotNetExePath}"); + Console.WriteLine($@"DotNet version found:"); + foreach (var dotNetVer in DotNetHelper.DotNetVersions) + { + Console.WriteLine($@" {dotNetVer}"); + } + Environment.Exit(1); + } + } + + private static string MakeArguments(List argList) + { + var arguments = new StringBuilder(); + foreach (var arg in argList) + { + if (arguments.Length > 0) + { + arguments.Append(" "); + } + if (arg.Contains(" ")) + { + arguments.Append($"\"{arg.Replace("\"", "\"\"")}\""); + } + else + { + arguments.Append(arg); + } + } + return arguments.ToString(); + } + } +} diff --git a/CoreHost/RunCoreHostApp/Properties/launchSettings.json b/CoreHost/RunCoreHostApp/Properties/launchSettings.json new file mode 100644 index 00000000..1b3c7e47 --- /dev/null +++ b/CoreHost/RunCoreHostApp/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "RunCoreHostApp": { + "commandName": "Project", + "commandLineArgs": "CoreHostTest31Build.dll C:\\Data\\FeatureTest\\FeatureTest.gdb" + } + } +} \ No newline at end of file diff --git a/CoreHost/RunCoreHostApp/RunCoreHostApp.csproj b/CoreHost/RunCoreHostApp/RunCoreHostApp.csproj new file mode 100644 index 00000000..74abf5c9 --- /dev/null +++ b/CoreHost/RunCoreHostApp/RunCoreHostApp.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/CoreHost/RunCoreHostApp/RunCoreHostApp.sln b/CoreHost/RunCoreHostApp/RunCoreHostApp.sln new file mode 100644 index 00000000..d1f02ccc --- /dev/null +++ b/CoreHost/RunCoreHostApp/RunCoreHostApp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34902.65 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RunCoreHostApp", "RunCoreHostApp.csproj", "{B3674C8F-6240-405D-B497-17354FD1EBF5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B3674C8F-6240-405D-B497-17354FD1EBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3674C8F-6240-405D-B497-17354FD1EBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3674C8F-6240-405D-B497-17354FD1EBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3674C8F-6240-405D-B497-17354FD1EBF5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BE234112-ABE2-4089-96C0-5DFBB72A2AD7} + EndGlobalSection +EndGlobal diff --git a/DataReviewer/ReadMe.md b/DataReviewer/ReadMe.md index cbab8580..0e1d420e 100644 --- a/DataReviewer/ReadMe.md +++ b/DataReviewer/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Data Reviewer -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Data Reviewer' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Data Reviewer' topic. ## Features diff --git a/DataReviewer/ReviewerAddin/ReadMe.md b/DataReviewer/ReviewerAddin/ReadMe.md index 3002959a..a950b3fa 100644 --- a/DataReviewer/ReviewerAddin/ReadMe.md +++ b/DataReviewer/ReviewerAddin/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: DataReviewer Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/DataReviewer/ReviewerAddin/ReviewerAddin (C#).md b/DataReviewer/ReviewerAddin/ReviewerAddin (C#).md index 3002959a..a950b3fa 100644 --- a/DataReviewer/ReviewerAddin/ReviewerAddin (C#).md +++ b/DataReviewer/ReviewerAddin/ReviewerAddin (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: DataReviewer Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/AddFeatureTest/AddFeatureTest (C#).md b/Editing/AddFeatureTest/AddFeatureTest (C#).md index 5861f6de..203383a4 100644 --- a/Editing/AddFeatureTest/AddFeatureTest (C#).md +++ b/Editing/AddFeatureTest/AddFeatureTest (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/AddFeatureTest/ReadMe.md b/Editing/AddFeatureTest/ReadMe.md index 5861f6de..203383a4 100644 --- a/Editing/AddFeatureTest/ReadMe.md +++ b/Editing/AddFeatureTest/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/AnnoTools/AnnoTools (C#).md b/Editing/AnnoTools/AnnoTools (C#).md index 3bff091c..8a455811 100644 --- a/Editing/AnnoTools/AnnoTools (C#).md +++ b/Editing/AnnoTools/AnnoTools (C#).md @@ -23,8 +23,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/AnnoTools/ReadMe.md b/Editing/AnnoTools/ReadMe.md index 3bff091c..8a455811 100644 --- a/Editing/AnnoTools/ReadMe.md +++ b/Editing/AnnoTools/ReadMe.md @@ -23,8 +23,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/BeforeSketchCompleted/BeforeSketchCompleted (C#).md b/Editing/BeforeSketchCompleted/BeforeSketchCompleted (C#).md index 6905805a..0361e9aa 100644 --- a/Editing/BeforeSketchCompleted/BeforeSketchCompleted (C#).md +++ b/Editing/BeforeSketchCompleted/BeforeSketchCompleted (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Sketch Events Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/BeforeSketchCompleted/ReadMe.md b/Editing/BeforeSketchCompleted/ReadMe.md index 6905805a..0361e9aa 100644 --- a/Editing/BeforeSketchCompleted/ReadMe.md +++ b/Editing/BeforeSketchCompleted/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Sketch Events Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/COGOLineFeatures/COGOLineFeatures (C#).md b/Editing/COGOLineFeatures/COGOLineFeatures (C#).md index 443b6c0e..2da0d490 100644 --- a/Editing/COGOLineFeatures/COGOLineFeatures (C#).md +++ b/Editing/COGOLineFeatures/COGOLineFeatures (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing, Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/COGOLineFeatures/ReadMe.md b/Editing/COGOLineFeatures/ReadMe.md index 443b6c0e..2da0d490 100644 --- a/Editing/COGOLineFeatures/ReadMe.md +++ b/Editing/COGOLineFeatures/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing, Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ConstructToolWithOptions/ConstructToolWithOptions (C#).md b/Editing/ConstructToolWithOptions/ConstructToolWithOptions (C#).md index a5a378d6..4beec83b 100644 --- a/Editing/ConstructToolWithOptions/ConstructToolWithOptions (C#).md +++ b/Editing/ConstructToolWithOptions/ConstructToolWithOptions (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ConstructToolWithOptions/ReadMe.md b/Editing/ConstructToolWithOptions/ReadMe.md index a5a378d6..4beec83b 100644 --- a/Editing/ConstructToolWithOptions/ReadMe.md +++ b/Editing/ConstructToolWithOptions/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ConstructionTool/ConstructionTool (C#).md b/Editing/ConstructionTool/ConstructionTool (C#).md index f4377833..17458fb7 100644 --- a/Editing/ConstructionTool/ConstructionTool (C#).md +++ b/Editing/ConstructionTool/ConstructionTool (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ConstructionTool/ReadMe.md b/Editing/ConstructionTool/ReadMe.md index f4377833..17458fb7 100644 --- a/Editing/ConstructionTool/ReadMe.md +++ b/Editing/ConstructionTool/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ConstructionToolWithOptions/ConstructionToolWithOptions (C#).md b/Editing/ConstructionToolWithOptions/ConstructionToolWithOptions (C#).md index 97b6ee48..0a4f55c4 100644 --- a/Editing/ConstructionToolWithOptions/ConstructionToolWithOptions (C#).md +++ b/Editing/ConstructionToolWithOptions/ConstructionToolWithOptions (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ConstructionToolWithOptions/ReadMe.md b/Editing/ConstructionToolWithOptions/ReadMe.md index 97b6ee48..0a4f55c4 100644 --- a/Editing/ConstructionToolWithOptions/ReadMe.md +++ b/Editing/ConstructionToolWithOptions/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CopyLayer/CopyLayer (C#).md b/Editing/CopyLayer/CopyLayer (C#).md index 569fdf31..3442eac1 100644 --- a/Editing/CopyLayer/CopyLayer (C#).md +++ b/Editing/CopyLayer/CopyLayer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CopyLayer/ReadMe.md b/Editing/CopyLayer/ReadMe.md index 569fdf31..3442eac1 100644 --- a/Editing/CopyLayer/ReadMe.md +++ b/Editing/CopyLayer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CreatePointsAlongLine3D/CreatePointsAlongLine3D (C#).md b/Editing/CreatePointsAlongLine3D/CreatePointsAlongLine3D (C#).md index f735c5d0..4148074c 100644 --- a/Editing/CreatePointsAlongLine3D/CreatePointsAlongLine3D (C#).md +++ b/Editing/CreatePointsAlongLine3D/CreatePointsAlongLine3D (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CreatePointsAlongLine3D/ReadMe.md b/Editing/CreatePointsAlongLine3D/ReadMe.md index f735c5d0..4148074c 100644 --- a/Editing/CreatePointsAlongLine3D/ReadMe.md +++ b/Editing/CreatePointsAlongLine3D/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CrowdPlannerTool/CrowdPlannerTool (C#).md b/Editing/CrowdPlannerTool/CrowdPlannerTool (C#).md index 68849328..8c274173 100644 --- a/Editing/CrowdPlannerTool/CrowdPlannerTool (C#).md +++ b/Editing/CrowdPlannerTool/CrowdPlannerTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CrowdPlannerTool/ReadMe.md b/Editing/CrowdPlannerTool/ReadMe.md index 68849328..8c274173 100644 --- a/Editing/CrowdPlannerTool/ReadMe.md +++ b/Editing/CrowdPlannerTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CustomToolSketchSymbology/Customtool Sketch Symbology (C#).md b/Editing/CustomToolSketchSymbology/Customtool Sketch Symbology (C#).md index d6cabd2a..3de7ae0a 100644 --- a/Editing/CustomToolSketchSymbology/Customtool Sketch Symbology (C#).md +++ b/Editing/CustomToolSketchSymbology/Customtool Sketch Symbology (C#).md @@ -28,8 +28,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/CustomToolSketchSymbology/ReadMe.md b/Editing/CustomToolSketchSymbology/ReadMe.md index d6cabd2a..3de7ae0a 100644 --- a/Editing/CustomToolSketchSymbology/ReadMe.md +++ b/Editing/CustomToolSketchSymbology/ReadMe.md @@ -28,8 +28,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DatasetCompatibility/DatasetCompatibility (C#).md b/Editing/DatasetCompatibility/DatasetCompatibility (C#).md index 32bb66db..e91f0e2d 100644 --- a/Editing/DatasetCompatibility/DatasetCompatibility (C#).md +++ b/Editing/DatasetCompatibility/DatasetCompatibility (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DatasetCompatibility/ReadMe.md b/Editing/DatasetCompatibility/ReadMe.md index 32bb66db..e91f0e2d 100644 --- a/Editing/DatasetCompatibility/ReadMe.md +++ b/Editing/DatasetCompatibility/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DemoUseSelection/DemoUseSelection (C#).md b/Editing/DemoUseSelection/DemoUseSelection (C#).md index e4ae4a09..dcbe5368 100644 --- a/Editing/DemoUseSelection/DemoUseSelection (C#).md +++ b/Editing/DemoUseSelection/DemoUseSelection (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DemoUseSelection/ReadMe.md b/Editing/DemoUseSelection/ReadMe.md index e4ae4a09..dcbe5368 100644 --- a/Editing/DemoUseSelection/ReadMe.md +++ b/Editing/DemoUseSelection/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DivideLines/DivideLines (C#).md b/Editing/DivideLines/DivideLines (C#).md index deb0dc54..a4e558c2 100644 --- a/Editing/DivideLines/DivideLines (C#).md +++ b/Editing/DivideLines/DivideLines (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DivideLines/ReadMe.md b/Editing/DivideLines/ReadMe.md index deb0dc54..a4e558c2 100644 --- a/Editing/DivideLines/ReadMe.md +++ b/Editing/DivideLines/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DuplicateAndSelect/DuplicateAndSelect (C#).md b/Editing/DuplicateAndSelect/DuplicateAndSelect (C#).md index 744ee10a..d2c87dcb 100644 --- a/Editing/DuplicateAndSelect/DuplicateAndSelect (C#).md +++ b/Editing/DuplicateAndSelect/DuplicateAndSelect (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/DuplicateAndSelect/ReadMe.md b/Editing/DuplicateAndSelect/ReadMe.md index 744ee10a..d2c87dcb 100644 --- a/Editing/DuplicateAndSelect/ReadMe.md +++ b/Editing/DuplicateAndSelect/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditEvents/EditEvents (C#).md b/Editing/EditEvents/EditEvents (C#).md index e666a757..fea4ac41 100644 --- a/Editing/EditEvents/EditEvents (C#).md +++ b/Editing/EditEvents/EditEvents (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditEvents/ReadMe.md b/Editing/EditEvents/ReadMe.md index e666a757..fea4ac41 100644 --- a/Editing/EditEvents/ReadMe.md +++ b/Editing/EditEvents/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditOperationRowEvent/EditOperationRowEvent (C#).md b/Editing/EditOperationRowEvent/EditOperationRowEvent (C#).md index 9b61cfb6..feeae46e 100644 --- a/Editing/EditOperationRowEvent/EditOperationRowEvent (C#).md +++ b/Editing/EditOperationRowEvent/EditOperationRowEvent (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditOperationRowEvent/ReadMe.md b/Editing/EditOperationRowEvent/ReadMe.md index 9b61cfb6..feeae46e 100644 --- a/Editing/EditOperationRowEvent/ReadMe.md +++ b/Editing/EditOperationRowEvent/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditingTemplates/EditingTemplates (C#).md b/Editing/EditingTemplates/EditingTemplates (C#).md index 516a4fdc..5c35f5ae 100644 --- a/Editing/EditingTemplates/EditingTemplates (C#).md +++ b/Editing/EditingTemplates/EditingTemplates (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditingTemplates/ReadMe.md b/Editing/EditingTemplates/ReadMe.md index 516a4fdc..5c35f5ae 100644 --- a/Editing/EditingTemplates/ReadMe.md +++ b/Editing/EditingTemplates/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/EditorInspectorUI/EditorInspectorUI (C#).md b/Editing/EditorInspectorUI/EditorInspectorUI (C#).md index e5dce588..207b4e27 100644 --- a/Editing/EditorInspectorUI/EditorInspectorUI (C#).md +++ b/Editing/EditorInspectorUI/EditorInspectorUI (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` @@ -38,15 +38,14 @@ Visual Studio: 2022 6. Click the "Inspector UI" tab on the ribbon. 7. Click the "My Inspector Grid" button. This will display the Inspector dockpane. ![UI](screenshots/screen1.png) -8. You can now modify this sample to use the InsepctorProvider class to customize the Inspector Grid. InsepctorProvider base class allows you to create a more customized version of the inspector grid. Open the MyProvider.cs class. Notice how it derives from the InspectorProvider base class and implements various callbacks to customize that specific aspect of the UI. +8. This sample uses the MyInspector class implementing the InsepctorProvider class to customize the Inspector Grid. InsepctorProvider base class allows you to create a more customized version of the inspector grid. Open the MyProvider.cs class. Notice how it derives from the InspectorProvider base class and implements various callbacks to customize that specific aspect of the UI. 9. Given below are some examples of how you can customize the Inspector Grid using the InspectorProvider class callbacks: * Change field visibility, * Sets fields to be read-only, highlighted, * Customizes field order in the grid, * Adds validation * Modifies field name display. -10. Open the DockpaneInspectorUIViewModel.cs.Follow the "TODO" comments in the "Show" method in this class file to use the Inspector Provider class to customize the Inspector Grid. -11. Hot reload the change in the code and click the "My Inspector Grid" tab on the ribbon. Notice the customized Inspector UI. +10. Open the DockpaneInspectorUIViewModel.cs and find the "TODO" comments in the "Show" method in this class file to use the Inspector Provider class to customize the Inspector Grid. ![UI](screenshots/screen2.png) diff --git a/Editing/EditorInspectorUI/InspectorUI/DockpaneInspectorUIViewModel.cs b/Editing/EditorInspectorUI/InspectorUI/DockpaneInspectorUIViewModel.cs index 57665d74..54f47288 100644 --- a/Editing/EditorInspectorUI/InspectorUI/DockpaneInspectorUIViewModel.cs +++ b/Editing/EditorInspectorUI/InspectorUI/DockpaneInspectorUIViewModel.cs @@ -131,20 +131,24 @@ internal async static void Show() if (_dockpaneVM._featureInspector == null || forceReload == true) { // the standard way of creating an inspector - //TODO: Comment this line to create an inspector using the provider - _dockpaneVM._featureInspector = new Inspector(); + #region Inspector UI with out-of-box Provider + //TODO: Use this line to create an inspector using the out-of-box provider + // but make sure to comment out the 'Inspector UI with Provider' code below + //_dockpaneVM._featureInspector = new Inspector(); + #endregion Inspector UI with out-of-box Provider + #region Inspector UI with Provider - //TODO: Uncomment this block to create an inspector using the provider - ////******an alternative way to create an inspector ***** - ////allowing us to customize the grid view + //TODO: this block creates a customized inspector based on the provider + // this allows to customize the grid view + // but make sure to comment out the 'Inspector UI with out-of-box Provider' code above + + //create the custom provider + _dockpaneVM._provider = new MyProvider(); + //create the inspector from the provider + _dockpaneVM._featureInspector = _dockpaneVM._provider.Create(); + + #endregion Inspector UI with Provider - ////create the provider - //_dockpaneVM._provider = new MyProvider(); - //if (_dockpaneVM._featureInspector == null) - // return; - ////create the inspector from the provider - //_dockpaneVM._featureInspector = _dockpaneVM._provider.Create(); - #endregion // create the embeddable control from the inspector (to display on the pane) var icontrol = _dockpaneVM._featureInspector.CreateEmbeddableControl(); @@ -152,6 +156,7 @@ internal async static void Show() _dockpaneVM.InspectorViewModel = icontrol.Item1; _dockpaneVM.InspectorView = icontrol.Item2; } + #region Subscribe to Inspector PropertyChanged event _dockpaneVM._featureInspector.PropertyChanged += _featureInspector_PropertyChanged; #endregion diff --git a/Editing/EditorInspectorUI/InspectorUIProvider/MyProvider.cs b/Editing/EditorInspectorUI/InspectorUIProvider/MyProvider.cs index 38799889..63ce37a8 100644 --- a/Editing/EditorInspectorUI/InspectorUIProvider/MyProvider.cs +++ b/Editing/EditorInspectorUI/InspectorUIProvider/MyProvider.cs @@ -28,9 +28,9 @@ limitations under the License. namespace EditorInspectorUI.InspectorUIProvider { - class MyProvider : InspectorProvider - { - private List _fields = new List() + class MyProvider : InspectorProvider + { + private List _hiddenFields = new List() { "OBJECTID", "Shape", @@ -46,15 +46,15 @@ class MyProvider : InspectorProvider "CenBlock20", }; - private List _fieldOrder = new List() + private List _fieldOrder = new List() { "Job_Number", - "Job_Type", + "Ownership", "Address", + "Job_Type", "Job_Status", "Job_Desc", - "DateComplt", - "Ownership" + "DateComplt" }; public override IEnumerable AttributesOrder(IEnumerable attrs) @@ -69,8 +69,9 @@ public override IEnumerable AttributesOrder(IEnumerable at } return newList; } + public override string CustomName(ArcGIS.Desktop.Editing.Attributes.Attribute attr) - { + { if (attr.FieldName == "Job_Number") return "ID"; if (attr.FieldName == "Job_Type") @@ -78,63 +79,63 @@ public override string CustomName(ArcGIS.Desktop.Editing.Attributes.Attribute at if (attr.FieldName == "Job_Status") return "Status"; if (attr.FieldName == "Job_Desc") - return "Job Description"; - if (attr.FieldName == "DateComplt") - return "Date Completed"; + return "Job Description"; + if (attr.FieldName == "DateComplt") + return "Date Completed"; - return attr.FieldName; - } - public override bool? IsVisible(ArcGIS.Desktop.Editing.Attributes.Attribute attr) - { + return attr.FieldName; + } + public override bool? IsVisible(ArcGIS.Desktop.Editing.Attributes.Attribute attr) + { - foreach (var item in _fields) + foreach (var item in _hiddenFields) { if (attr.FieldName == item) return false; } - - return true; - } - public override bool? IsEditable(ArcGIS.Desktop.Editing.Attributes.Attribute attr) - { - if (attr.FieldName == "Ownership") - return false; + return true; + } + + public override bool? IsEditable(ArcGIS.Desktop.Editing.Attributes.Attribute attr) + { + if (attr.FieldName == "Ownership") + return false; + return true; + } + public override bool? IsHighlighted(ArcGIS.Desktop.Editing.Attributes.Attribute attr) + { + if (attr.FieldName == "Address") return true; - } - public override bool? IsHighlighted(ArcGIS.Desktop.Editing.Attributes.Attribute attr) - { - if (attr.FieldName == "Address") - return true; - return false; - } + return false; + } - // bug in 3.1. Make sure you override this method and return non-null otherwise you will get a crash. - // fixed in 3.1.3 - //public override IEnumerable AttributesOrder(IEnumerable attrs) - //{ - // var newList = new List(); - // foreach (var attr in attrs) - // { - // newList.Add(attr); - // } - // return newList; - //} - - // use BeginLoad/EndLoad if you need the entire set of attributes at once - // to perform any pre-processing - // EndLoad can be used to clear any cached values - public override void BeginLoad(IEnumerable attrs) - { - base.BeginLoad(attrs); - } + // bug in 3.1. Make sure you override this method and return non-null otherwise you will get a crash. + // fixed in 3.1.3 + //public override IEnumerable AttributesOrder(IEnumerable attrs) + //{ + // var newList = new List(); + // foreach (var attr in attrs) + // { + // newList.Add(attr); + // } + // return newList; + //} + + // use BeginLoad/EndLoad if you need the entire set of attributes at once + // to perform any pre-processing + // EndLoad can be used to clear any cached values + public override void BeginLoad(IEnumerable attrs) + { + base.BeginLoad(attrs); + } - public override void EndLoad() - { - base.EndLoad(); - } + public override void EndLoad() + { + base.EndLoad(); } + } } diff --git a/Editing/EditorInspectorUI/Module1.cs b/Editing/EditorInspectorUI/Module1.cs index 47aecdcd..805636da 100644 --- a/Editing/EditorInspectorUI/Module1.cs +++ b/Editing/EditorInspectorUI/Module1.cs @@ -52,15 +52,14 @@ namespace EditorInspectorUI /// 1. Click the "Inspector UI" tab on the ribbon. /// 1. Click the "My Inspector Grid" button. This will display the Inspector dockpane. /// ![UI](screenshots/screen1.png) - /// 1. You can now modify this sample to use the InsepctorProvider class to customize the Inspector Grid. InsepctorProvider base class allows you to create a more customized version of the inspector grid. Open the MyProvider.cs class. Notice how it derives from the InspectorProvider base class and implements various callbacks to customize that specific aspect of the UI. + /// 1. This sample uses the MyInspector class implementing the InsepctorProvider class to customize the Inspector Grid. InsepctorProvider base class allows you to create a more customized version of the inspector grid. Open the MyProvider.cs class. Notice how it derives from the InspectorProvider base class and implements various callbacks to customize that specific aspect of the UI. /// 1. Given below are some examples of how you can customize the Inspector Grid using the InspectorProvider class callbacks: /// * Change field visibility, /// * Sets fields to be read-only, highlighted, /// * Customizes field order in the grid, /// * Adds validation /// * Modifies field name display. - /// 1. Open the DockpaneInspectorUIViewModel.cs.Follow the "TODO" comments in the "Show" method in this class file to use the Inspector Provider class to customize the Inspector Grid. - /// 1. Hot reload the change in the code and click the "My Inspector Grid" tab on the ribbon. Notice the customized Inspector UI. + /// 1. Open the DockpaneInspectorUIViewModel.cs and find the "TODO" comments in the "Show" method in this class file to use the Inspector Provider class to customize the Inspector Grid. /// ![UI](screenshots/screen2.png) /// internal class Module1 : Module diff --git a/Editing/EditorInspectorUI/ReadMe.md b/Editing/EditorInspectorUI/ReadMe.md index e5dce588..207b4e27 100644 --- a/Editing/EditorInspectorUI/ReadMe.md +++ b/Editing/EditorInspectorUI/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` @@ -38,15 +38,14 @@ Visual Studio: 2022 6. Click the "Inspector UI" tab on the ribbon. 7. Click the "My Inspector Grid" button. This will display the Inspector dockpane. ![UI](screenshots/screen1.png) -8. You can now modify this sample to use the InsepctorProvider class to customize the Inspector Grid. InsepctorProvider base class allows you to create a more customized version of the inspector grid. Open the MyProvider.cs class. Notice how it derives from the InspectorProvider base class and implements various callbacks to customize that specific aspect of the UI. +8. This sample uses the MyInspector class implementing the InsepctorProvider class to customize the Inspector Grid. InsepctorProvider base class allows you to create a more customized version of the inspector grid. Open the MyProvider.cs class. Notice how it derives from the InspectorProvider base class and implements various callbacks to customize that specific aspect of the UI. 9. Given below are some examples of how you can customize the Inspector Grid using the InspectorProvider class callbacks: * Change field visibility, * Sets fields to be read-only, highlighted, * Customizes field order in the grid, * Adds validation * Modifies field name display. -10. Open the DockpaneInspectorUIViewModel.cs.Follow the "TODO" comments in the "Show" method in this class file to use the Inspector Provider class to customize the Inspector Grid. -11. Hot reload the change in the code and click the "My Inspector Grid" tab on the ribbon. Notice the customized Inspector UI. +10. Open the DockpaneInspectorUIViewModel.cs and find the "TODO" comments in the "Show" method in this class file to use the Inspector Provider class to customize the Inspector Grid. ![UI](screenshots/screen2.png) diff --git a/Editing/ExtendTool/ExtendTool (C#).md b/Editing/ExtendTool/ExtendTool (C#).md index 46f1e180..fb1f9bf6 100644 --- a/Editing/ExtendTool/ExtendTool (C#).md +++ b/Editing/ExtendTool/ExtendTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ExtendTool/ReadMe.md b/Editing/ExtendTool/ReadMe.md index 46f1e180..fb1f9bf6 100644 --- a/Editing/ExtendTool/ReadMe.md +++ b/Editing/ExtendTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/GeometryControl/GeometryControl (C#).md b/Editing/GeometryControl/GeometryControl (C#).md index ba4aa94a..a2ba7207 100644 --- a/Editing/GeometryControl/GeometryControl (C#).md +++ b/Editing/GeometryControl/GeometryControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/GeometryControl/ReadMe.md b/Editing/GeometryControl/ReadMe.md index ba4aa94a..a2ba7207 100644 --- a/Editing/GeometryControl/ReadMe.md +++ b/Editing/GeometryControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/GroundToGrid/ReadMe.md b/Editing/GroundToGrid/ReadMe.md index 201fdf8f..01175050 100644 --- a/Editing/GroundToGrid/ReadMe.md +++ b/Editing/GroundToGrid/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/GroundToGrid/SetGroundToGrid (C#).md b/Editing/GroundToGrid/SetGroundToGrid (C#).md index 201fdf8f..01175050 100644 --- a/Editing/GroundToGrid/SetGroundToGrid (C#).md +++ b/Editing/GroundToGrid/SetGroundToGrid (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/GroundToGridEvents/G2GEvents (C#).md b/Editing/GroundToGridEvents/G2GEvents (C#).md index 641bb037..96d7f4af 100644 --- a/Editing/GroundToGridEvents/G2GEvents (C#).md +++ b/Editing/GroundToGridEvents/G2GEvents (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/GroundToGridEvents/ReadMe.md b/Editing/GroundToGridEvents/ReadMe.md index 641bb037..96d7f4af 100644 --- a/Editing/GroundToGridEvents/ReadMe.md +++ b/Editing/GroundToGridEvents/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/InspectorTool/InspectorTool (C#).md b/Editing/InspectorTool/InspectorTool (C#).md index 7d962186..1b0c7cf1 100644 --- a/Editing/InspectorTool/InspectorTool (C#).md +++ b/Editing/InspectorTool/InspectorTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/InspectorTool/ReadMe.md b/Editing/InspectorTool/ReadMe.md index 7d962186..1b0c7cf1 100644 --- a/Editing/InspectorTool/ReadMe.md +++ b/Editing/InspectorTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/Inspector_AddAttributeAsync/Inspector_AddAttributeAsync (C#).md b/Editing/Inspector_AddAttributeAsync/Inspector_AddAttributeAsync (C#).md index 056f23c1..9ad33836 100644 --- a/Editing/Inspector_AddAttributeAsync/Inspector_AddAttributeAsync (C#).md +++ b/Editing/Inspector_AddAttributeAsync/Inspector_AddAttributeAsync (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/Inspector_AddAttributeAsync/ReadMe.md b/Editing/Inspector_AddAttributeAsync/ReadMe.md index 056f23c1..9ad33836 100644 --- a/Editing/Inspector_AddAttributeAsync/ReadMe.md +++ b/Editing/Inspector_AddAttributeAsync/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/KnowledgeGraphConstructionTools/Config.daml b/Editing/KnowledgeGraphConstructionTools/Config.daml new file mode 100644 index 00000000..155e7edb --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/Config.daml @@ -0,0 +1,69 @@ + + + + + KnowledgeGraphConstructionTools + KnowledgeGraphConstructionTools description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + Esri, https://www.esri.com + 9/18/2024 5:56:30 PM + Editing + + + + + + + + + + + + + + + + + + Create a knowledge graph entity + + + + Create a knowledge graph relate + + + + + + \ No newline at end of file diff --git a/Editing/KnowledgeGraphConstructionTools/CreateEntity.cs b/Editing/KnowledgeGraphConstructionTools/CreateEntity.cs new file mode 100644 index 00000000..f5a8798c --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/CreateEntity.cs @@ -0,0 +1,64 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Mapping; +using System.Threading.Tasks; + +namespace KnowledgeGraphConstructionTools +{ + internal class CreateEntity : MapTool + { + public CreateEntity() + { + IsSketchTool = true; + UseSnapping = true; + // Select the type of construction tool you wish to implement. + // Make sure that the tool is correctly registered with the correct component category type in the daml + SketchType = SketchGeometryType.Point; + // SketchType = SketchGeometryType.Line; + // SketchType = SketchGeometryType.Polygon; + //Gets or sets whether the sketch is for creating a feature and should use the CurrentTemplate. + UsesCurrentTemplate = true; + //Gets or sets whether the tool supports firing sketch events when the map sketch changes. + //Default value is false. + FireSketchEvents = true; + } + + /// + /// Called when the sketch finishes. This is where we will create the sketch operation and then execute it. + /// + /// The geometry created by the sketch. + /// A Task returning a Boolean indicating if the sketch complete event was successfully handled. + protected override Task OnSketchCompleteAsync(Geometry geometry) + { + if (CurrentTemplate == null || geometry == null) + return Task.FromResult(false); + + // Create an edit operation + var createOperation = new EditOperation(); + createOperation.Name = string.Format("Create {0}", CurrentTemplate.Layer.Name); + createOperation.SelectNewFeatures = true; + + // Queue feature creation + createOperation.Create(CurrentTemplate, geometry); + + // Execute the operation + return createOperation.ExecuteAsync(); + } + } +} diff --git a/Editing/KnowledgeGraphConstructionTools/CreateRelate.cs b/Editing/KnowledgeGraphConstructionTools/CreateRelate.cs new file mode 100644 index 00000000..b6fc6393 --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/CreateRelate.cs @@ -0,0 +1,277 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Editing.Templates; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; + +namespace KnowledgeGraphConstructionTools +{ + internal enum RelateToolState + { + IdentifyOriginFeature = 0, + IdentifyDestinationFeature, + CreateRelationship + } + + internal class CreateRelate : MapTool + { + public CreateRelate() + { + IsSketchTool = true; + UseSnapping = true; + // Select the type of construction tool you wish to implement. + // Make sure that the tool is correctly registered with the correct component category type in the daml + SketchType = SketchGeometryType.Point; + // SketchType = SketchGeometryType.Line; + // SketchType = SketchGeometryType.Polygon; + //Gets or sets whether the sketch is for creating a feature and should use the CurrentTemplate. + UsesCurrentTemplate = true; + //Gets or sets whether the tool supports firing sketch events when the map sketch changes. + //Default value is false. + FireSketchEvents = true; + + _helper = new RelateToolHelper(); + } + + // tracks the state of the tool + private RelateToolState State; + // the helper + private RelateToolHelper _helper; + + protected override Task OnToolActivateAsync(bool hasMapViewChanged) + { + // initialize state + State = RelateToolState.IdentifyOriginFeature; + // initialize sketchTip and cursor + SketchTip = _helper.GetSketchTip(RelateToolState.IdentifyOriginFeature, CurrentTemplate); + Cursor = System.Windows.Input.Cursors.Arrow; + + // initialize symbols + _helper.InitSymbols(); + + return base.OnToolActivateAsync(hasMapViewChanged); + } + + protected override Task OnToolDeactivateAsync(bool hasMapViewChanged) + { + _invoker = null; + // clear overlay and symbols + _helper.ClearOverlay(); + _helper.ClearSymbols(); + + return base.OnToolDeactivateAsync(hasMapViewChanged); + } + + /// + /// Called when the sketch finishes. + /// + /// The geometry created by the sketch. + /// A Task returning a Boolean indicating if the sketch complete event was successfully handled. + protected override Task OnSketchCompleteAsync(Geometry geometry) + { + // Avoid default finish sketch handling - we are doing it instead in CreateRelationship + // which we call explicitly on the second mouse click + return Task.FromResult(true); + } + + + private DelayedInvoker _invoker; + private System.Windows.Point _lastPoint; + protected override void OnToolMouseMove(MapViewMouseEventArgs args) + { + base.OnToolMouseMove(args); + _invoker ??= new(10); + _lastPoint = args.ClientPoint; + + // use a delayInvoker to thin out mouseMove notifications + // don't await + _invoker.InvokeTask(() => OnMouseMoveImpl(_lastPoint)); + } + + private Task OnMouseMoveImpl(System.Windows.Point mouseLocation) + { + return QueuedTask.Run(async () => + { + // try to find an entity feature under the mouse location + var (l, oid, pt) = await _helper.FindEntityFeature(mouseLocation); + if (l is null) + { + // if nothing found, update the sketch tips, state + if (State == RelateToolState.IdentifyOriginFeature) + SketchTip = _helper.GetSketchTip(RelateToolState.IdentifyOriginFeature, CurrentTemplate); + else if (State == RelateToolState.IdentifyDestinationFeature) + { + if (_helper.Layer0 != null) + SketchTip = _helper.GetSketchTip(RelateToolState.IdentifyDestinationFeature, CurrentTemplate); + else + State = RelateToolState.IdentifyOriginFeature; + } + } + // process results (could be nothing if cursor wasn't over an entity feature) + await ProcessEntityFeature(l, oid, pt); + }); + } + + // Process a layer, oid pair + // layer could be null, oid can be -1 if nothing to process + private async Task ProcessEntityFeature(Layer layer, long oid, MapPoint pt) + { + // make sure on MCT + if (!QueuedTask.OnWorker) + return; + + // determine the display expression + // (used to update the SketchTip) + var disp = oid.ToString(); + if (layer is FeatureLayer fl) + { + var displayExpressions = fl.GetDisplayExpressions([oid]); + if (displayExpressions?.Count == 1) + disp = displayExpressions[0]; + } + + // if identifying origin + if (State == RelateToolState.IdentifyOriginFeature) + { + // set it on the helper + _helper.SetFeature(State, disp, layer, oid); + // update cursor, sketchTIp according to whether something was found + if (oid == -1) + { + SetCursorNo(); + } + else + { + SetCursorYes(); + SketchTip = _helper.GetSketchTip(RelateToolState.IdentifyDestinationFeature, CurrentTemplate); + } + } + // else if identifying destination + else if (State == RelateToolState.IdentifyDestinationFeature) + { + // set it on the helper + _helper.SetFeature(State, disp, layer, oid); + + // clear overlay + _helper.ClearOverlay(); + + // if I have origin and destination feature geometries + if (_helper.HasOriginDestinationGeometries()) + { + // add the relationship line to the overlay + _helper.AddRelationshipLineToOverlay(); + // update cursor, sketchTip + SetCursorYes(); + SketchTip = _helper.GetSketchTip(RelateToolState.CreateRelationship, CurrentTemplate); + } + else + { + // add a line between origin and "pt" (mouse cursor) + _helper.AddLineOverlay(pt); + // update cursor, sketchTIp + SetCursorNo(); + SketchTip = _helper.GetSketchTip(RelateToolState.IdentifyDestinationFeature, CurrentTemplate); + } + } + } + + protected override void OnToolMouseDown(MapViewMouseButtonEventArgs args) + { + if (args.ChangedButton == MouseButton.Left) + { + // progress the state when the mouse is clicked + if (State == RelateToolState.IdentifyOriginFeature) + { + State = RelateToolState.IdentifyDestinationFeature; + } + else if (State == RelateToolState.IdentifyDestinationFeature) + { + CreateRelationship(); + _helper.ClearOverlay(); + State = RelateToolState.IdentifyOriginFeature; + } + } + + base.OnToolMouseDown(args); + } + + // create relationship with the cached origin and destination info + internal Task CreateRelationship() => CreateRelationship(CurrentTemplate, _helper.Layer0, _helper.OID0, _helper.Layer1, _helper.OID1); + + // create relationship with the specified entity info + internal async Task CreateRelationship(EditingTemplate template, Layer fromLayer, long fromOID, Layer toLayer, long toOID) + { + if (template == null || template.MapMember == null || fromLayer == null || toLayer == null || fromOID == -1L || toOID == -1L) + return false; + + // Create an edit operation + var createOperation = new EditOperation(); + createOperation.Name = string.Format("Create {0}", CurrentTemplate.Layer.Name); + createOperation.SelectNewFeatures = true; + + // create the row handles + var originRowHandle = new RowHandle(fromLayer, fromOID); + var destinationRowHandle = new RowHandle(toLayer, toOID); + // create relationship description + var rd = new KnowledgeGraphRelationshipDescription(originRowHandle, destinationRowHandle); + // queue the Create + createOperation.Create(template.MapMember as Layer, rd); + + // Execute the operation + await createOperation.ExecuteAsync(); + + return createOperation.IsSucceeded; + } + + + #region Cursor Management + + internal void SetCursorNo() => SetCursor(true); + internal void SetCursorYes() => SetCursor(false); + + internal bool wasNo => Cursor == System.Windows.Input.Cursors.No; + internal void SetCursor(bool no) + { + if (wasNo != no) + { + Cursor = (no) ? System.Windows.Input.Cursors.No : System.Windows.Input.Cursors.Arrow; + } + } + + #endregion + + } +} diff --git a/Editing/KnowledgeGraphConstructionTools/DarkImages/AddInDesktop16.png b/Editing/KnowledgeGraphConstructionTools/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/DarkImages/AddInDesktop16.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/DarkImages/AddInDesktop32.png b/Editing/KnowledgeGraphConstructionTools/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/DarkImages/AddInDesktop32.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Images/AddInDesktop16.png b/Editing/KnowledgeGraphConstructionTools/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Images/AddInDesktop16.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Images/AddInDesktop32.png b/Editing/KnowledgeGraphConstructionTools/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Images/AddInDesktop32.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools (C#).md b/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools (C#).md new file mode 100644 index 00000000..4a38b31d --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools (C#).md @@ -0,0 +1,60 @@ +## KnowledgeGraphConstructionTools + + +This sample illustrates how to build construction tools for KnowledgeGraph entity and relationships. +The sketch tool displays a UI on the overlay using the OverlayControlID property of the MapTool. +The UI requires the user to specify the source and destination entity types along with the relate type and the relate direction. +The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity has been found, the SketchTip is updated to direct the user to identify destination entities. +Once destination entities have been found, the edit is performed for each source and destination entity pair. + + + +View it live + + +``` +Language: C# +Subject: Editing +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual Studio click the Build menu.Then select Build Solution. +2. Launch the debugger to open ArcGIS Pro. +3. ArcGIS Pro will open, select a project containing a link chart with a KnowledgeGraph. +4. Open the Create features window and activate an entity template to see the custom construction tool for entities. +![UI](Screenshots/EntityConstructionTool.png) +5. Activate the custom construction tool and click on the link chart to create an entity. +6. Open the Create features window and activate a relate template to see the custom construction tool for relationships. +![UI](Screenshots/RelateConstructionTool.png) +7. Activate the custom construction tool and move your mouse over the link chart. Note the SketchTip and cursor +![UI](Screenshots/RelateTool_1_ClickOnFromEntity.png) +8. Hover over an entity and see the SketchTip and Cursor change. +![UI](Screenshots/RelateTool_2_HoverOriginEntity.png) +9. Click on an entity to identify it as the origin entity. Notice the SketchTip and the connecting line draw on the overlay as you move the mouse. +![UI](Screenshots/RelateTool_3_IdentifiedOriginEntity.png) +10. Hover over a second entity. Notice the SketchTip, Cursor and overlay change. +![UI](Screenshots/RelateTool_4_HoverDestinationEntity.png) +11. Click on the entity to identify it as the destination entity. The relationship record is created. +![UI](Screenshots/RelateTool_5_RelationshipCreated.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools.csproj b/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools.csproj new file mode 100644 index 00000000..a64eefbb --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools.csproj @@ -0,0 +1,106 @@ + + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Geoprocessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + \ No newline at end of file diff --git a/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools.sln b/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools.sln new file mode 100644 index 00000000..2e427d0d --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/KnowledgeGraphConstructionTools.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34408.163 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KnowledgeGraphConstructionTools", "KnowledgeGraphConstructionTools.csproj", "{069C0338-7997-4CAD-8AAB-364045BC73D4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {069C0338-7997-4CAD-8AAB-364045BC73D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {069C0338-7997-4CAD-8AAB-364045BC73D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {069C0338-7997-4CAD-8AAB-364045BC73D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {069C0338-7997-4CAD-8AAB-364045BC73D4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {563C4EED-E8FF-4676-8CEA-6A444BAD6CCF} + EndGlobalSection +EndGlobal diff --git a/Editing/KnowledgeGraphConstructionTools/Module1.cs b/Editing/KnowledgeGraphConstructionTools/Module1.cs new file mode 100644 index 00000000..8ce68bd1 --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/Module1.cs @@ -0,0 +1,78 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; + + +namespace KnowledgeGraphConstructionTools +{ + /// + /// This sample illustrates how to build construction tools for KnowledgeGraph entity and relationships. + /// The sketch tool displays a UI on the overlay using the OverlayControlID property of the MapTool. + /// The UI requires the user to specify the source and destination entity types along with the relate type and + /// the relate direction. + /// The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity + /// has been found, the SketchTip is updated to direct the user to identify destination entities. + /// Once destination entities have been found, the edit is performed for each source and destination entity pair. + /// + /// + /// 1. In Visual Studio click the Build menu.Then select Build Solution. + /// 1. Launch the debugger to open ArcGIS Pro. + /// 1. ArcGIS Pro will open, select a project containing a link chart with a KnowledgeGraph. + /// 1. Open the Create features window and activate an entity template to see the custom construction tool for entities. + /// ![UI](Screenshots/EntityConstructionTool.png) + /// 1. Activate the custom construction tool and click on the link chart to create an entity. + /// 1. Open the Create features window and activate a relate template to see the custom construction tool for relationships. + /// ![UI](Screenshots/RelateConstructionTool.png) + /// 1. Activate the custom construction tool and move your mouse over the link chart. Note the SketchTip and cursor + /// ![UI](Screenshots/RelateTool_1_ClickOnFromEntity.png) + /// 1. Hover over an entity and see the SketchTip and Cursor change. + /// ![UI](Screenshots/RelateTool_2_HoverOriginEntity.png) + /// 1. Click on an entity to identify it as the origin entity. Notice the SketchTip and the connecting line draw + /// on the overlay as you move the mouse. + /// ![UI](Screenshots/RelateTool_3_IdentifiedOriginEntity.png) + /// 1. Hover over a second entity. Notice the SketchTip, Cursor and overlay change. + /// ![UI](Screenshots/RelateTool_4_HoverDestinationEntity.png) + /// 1. Click on the entity to identify it as the destination entity. The relationship record is created. + /// ![UI](Screenshots/RelateTool_5_RelationshipCreated.png) + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("KnowledgeGraphConstructionTools_Module"); + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Editing/KnowledgeGraphConstructionTools/Properties/launchSettings.json b/Editing/KnowledgeGraphConstructionTools/Properties/launchSettings.json new file mode 100644 index 00000000..5cac6d0f --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "KnowledgeGraphConstructionTools": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Editing/KnowledgeGraphConstructionTools/ReadMe.md b/Editing/KnowledgeGraphConstructionTools/ReadMe.md new file mode 100644 index 00000000..4a38b31d --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/ReadMe.md @@ -0,0 +1,60 @@ +## KnowledgeGraphConstructionTools + + +This sample illustrates how to build construction tools for KnowledgeGraph entity and relationships. +The sketch tool displays a UI on the overlay using the OverlayControlID property of the MapTool. +The UI requires the user to specify the source and destination entity types along with the relate type and the relate direction. +The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity has been found, the SketchTip is updated to direct the user to identify destination entities. +Once destination entities have been found, the edit is performed for each source and destination entity pair. + + + +View it live + + +``` +Language: C# +Subject: Editing +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual Studio click the Build menu.Then select Build Solution. +2. Launch the debugger to open ArcGIS Pro. +3. ArcGIS Pro will open, select a project containing a link chart with a KnowledgeGraph. +4. Open the Create features window and activate an entity template to see the custom construction tool for entities. +![UI](Screenshots/EntityConstructionTool.png) +5. Activate the custom construction tool and click on the link chart to create an entity. +6. Open the Create features window and activate a relate template to see the custom construction tool for relationships. +![UI](Screenshots/RelateConstructionTool.png) +7. Activate the custom construction tool and move your mouse over the link chart. Note the SketchTip and cursor +![UI](Screenshots/RelateTool_1_ClickOnFromEntity.png) +8. Hover over an entity and see the SketchTip and Cursor change. +![UI](Screenshots/RelateTool_2_HoverOriginEntity.png) +9. Click on an entity to identify it as the origin entity. Notice the SketchTip and the connecting line draw on the overlay as you move the mouse. +![UI](Screenshots/RelateTool_3_IdentifiedOriginEntity.png) +10. Hover over a second entity. Notice the SketchTip, Cursor and overlay change. +![UI](Screenshots/RelateTool_4_HoverDestinationEntity.png) +11. Click on the entity to identify it as the destination entity. The relationship record is created. +![UI](Screenshots/RelateTool_5_RelationshipCreated.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Editing/KnowledgeGraphConstructionTools/RelateToolHelper.cs b/Editing/KnowledgeGraphConstructionTools/RelateToolHelper.cs new file mode 100644 index 00000000..8589e3fb --- /dev/null +++ b/Editing/KnowledgeGraphConstructionTools/RelateToolHelper.cs @@ -0,0 +1,242 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.CIM; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Editing.Attributes; +using ArcGIS.Desktop.Editing.Templates; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace KnowledgeGraphConstructionTools +{ + + + internal class RelateToolHelper + { + // cache (layer, oid) pairs for the origin and destination entities + // also cache the display expression + private string _displayExpr0 = ""; + private string _displayExpr1 = ""; + private Layer _layer0; + private Layer _layer1; + private long _oid0 = -1L; + private long _oid1 = -1L; + + + #region Sketch Tip / Messaging + + // Gets a message to use as a Sketch Tip according to the tool state + internal string GetSketchTip(RelateToolState state, EditingTemplate template) + { + switch (state) + { + case RelateToolState.IdentifyOriginFeature: return Format0(template); + case RelateToolState.IdentifyDestinationFeature: return Format1(template, _displayExpr0, _layer0); + case RelateToolState.CreateRelationship: + return Format2(template, _displayExpr0, _layer0, _displayExpr1, _layer1); + } + return ""; + } + + private static string msg0 => "Click on from entity to create {0} relationship."; + private static string msg1 => "Create {0} relationship from '{1}' in {2}"; + private static string msg2 => "Create {0} relationship from '{1}' in {2} \n to '{3}' in {4}"; + private static string msg3 => "Create {0} relationship"; + + private static string Format(string s, params object[] args) => string.Format(s, args).Replace("\\n", Environment.NewLine); + private static string Format0(EditingTemplate template) => Format(msg0, template?.Name ?? ""); + private static string Format1(EditingTemplate template, string expr, MapMember member) => Format(msg1, template?.Name ?? "", expr, member?.Name ?? ""); + private static string Format2(EditingTemplate template, string expr1, MapMember member1, string expr2, MapMember member2) + => Format(msg2, template?.Name ?? "", expr1, member1?.Name ?? "", expr2, member2?.Name ?? ""); + private static string Format3(EditingTemplate template) => Format(msg3, template?.Name ?? ""); + #endregion + + #region Origin / Destination Entity Management + + internal Layer Layer0 => _layer0; + internal long OID0 => _oid0; + internal Layer Layer1 => _layer1; + internal long OID1 => _oid1; + + // Sets the internal display expression, layer, oid variables according to the tool state + internal void SetFeature(RelateToolState state, string disp, Layer layer, long oid) + { + if (state == RelateToolState.IdentifyOriginFeature) + { + _displayExpr0 = disp; + _layer0 = layer; + _oid0 = oid; + } + else if (state == RelateToolState.IdentifyDestinationFeature) + { + _displayExpr1 = disp; + _layer1 = layer; + _oid1 = oid; + } + } + + internal bool HasOriginDestinationGeometries() + { + if ((_oid0 != -1) && (_oid1 != -1)) + { + var g0 = GetGeometry(_layer0, _oid0) as MapPoint; + var g1 = GetGeometry(_layer1, _oid1) as MapPoint; + + return (g0 != null) && (g1 != null); + } + return false; + } + + private Geometry GetGeometry(Layer layer, long oid) + { + var insp = new Inspector(); + insp.Load(layer, oid); + var shape = insp.Shape; + + // project to map before returning + var projGeometry = GeometryEngine.Instance.Project(shape, MapView.Active.Map.SpatialReference); + return projGeometry; + } + + #endregion + + #region Searching + internal Task<(Layer, long, MapPoint)> FindEntityFeature(System.Windows.Point mouseLocation) + => Process(mouseLocation); + + private async Task<(Layer, long, MapPoint)> Process(System.Windows.Point mouseLocation) + { + var mapPoint = MapView.Active.ClientToMap(mouseLocation); + // get features around the cursor + var selSet = MapView.Active.GetFeatures(mapPoint); + + // filter for entities only + // these are displayed on link charts as point layers + Layer layer = null; + List oids = null; + var selSetDict = selSet.ToDictionary(); + foreach (var mm in selSetDict.Keys) + { + if (mm is FeatureLayer fLayer && (fLayer.ShapeType == esriGeometryType.esriGeometryPoint)) + { + layer = fLayer; + oids = selSetDict[mm]; + } + } + // no information if no point layer found + if (layer == null) + { + return (null as Layer, -1L, mapPoint); + } + // no information if more than 1 feature found + if (oids.Count > 1) + { + return (null as Layer, -1L, mapPoint); + } + // success - return the information + var oid = oids[0]; + return (layer, oid, mapPoint); + } + #endregion + + #region Symbols + private CIMSymbolReference _symbol; + private CIMSymbolReference _disabledSymbol; + + internal static CIMColor DefaultFeedbackColor() => CIMColor.CreateRGBColor(51, 153, 255); + + internal void InitSymbols() + { + _symbol ??= CreateLineSymbol(DefaultFeedbackColor(), 3.0); + _disabledSymbol ??= CreateLineSymbol(new CIMRGBColor() { R = 100, G = 100, B = 100, Alpha = 10 }, 2.0); + } + internal void ClearSymbols() + { + _symbol = null; + _disabledSymbol = null; + } + + internal static CIMSymbolReference CreateLineSymbol(CIMColor color, double width) + { + var symbol = SymbolFactory.Instance.ConstructLineSymbol(color, width); + return new CIMSymbolReference { Symbol = symbol }; + } + #endregion + + #region Overlay Management + private IDisposable _overlay = null; + + // Adds a polyline between the origin and destination features to the overlay. + // Nothing is added if the origin and destination feature point geometries cannot be determined. + internal void AddRelationshipLineToOverlay() + { + var g0 = GetGeometry(_layer0, _oid0) as MapPoint; + if (_oid1 != -1) + { + var g1 = GetGeometry(_layer1, _oid1) as MapPoint; + if (g0 != null && g1 != null) + { + var pts = new List() { g0, g1 }; + var line = ArcGIS.Core.Geometry.PolylineBuilderEx.CreatePolyline(pts); + var graphic = new ArcGIS.Core.CIM.CIMLineGraphic + { + Line = line, + Symbol = _symbol + }; + _overlay = MapView.Active.AddOverlay(graphic); + } + } + } + + // Adds a polyline between the origin feature and the "pt" to the overlay. + // Nothing is added if the origin feature point geometry cannot be determined. + internal void AddLineOverlay(MapPoint pt) + { + var g0 = GetGeometry(_layer0, _oid0) as MapPoint; + if (g0 != null && pt != null) + { + var pts = new List() { g0, pt }; + var line = ArcGIS.Core.Geometry.PolylineBuilderEx.CreatePolyline(pts); + var graphic = new ArcGIS.Core.CIM.CIMLineGraphic + { + Line = line, + Symbol = _disabledSymbol + }; + _overlay = MapView.Active.AddOverlay(graphic); + } + } + + internal void ClearOverlay() => SafeDispose(System.Threading.Interlocked.Exchange(ref _overlay, null)); + + internal static void SafeDispose(object o) + { + if (o is IDisposable disp) + disp.Dispose(); + else if (o is IEnumerable enumerable) + { + foreach (object x in enumerable) + SafeDispose(x); + } + } + #endregion + } +} + + diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/EntityConstructionTool.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/EntityConstructionTool.png new file mode 100644 index 00000000..22a4fcc1 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/EntityConstructionTool.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateConstructionTool.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateConstructionTool.png new file mode 100644 index 00000000..4a201fad Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateConstructionTool.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_1_ClickOnFromEntity.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_1_ClickOnFromEntity.png new file mode 100644 index 00000000..e6fd6a94 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_1_ClickOnFromEntity.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_2_HoverOriginEntity.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_2_HoverOriginEntity.png new file mode 100644 index 00000000..dc81301c Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_2_HoverOriginEntity.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_3_IdentifiedOriginEntity.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_3_IdentifiedOriginEntity.png new file mode 100644 index 00000000..fb390b14 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_3_IdentifiedOriginEntity.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_4_HoverDestinationEntity.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_4_HoverDestinationEntity.png new file mode 100644 index 00000000..e1d64507 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_4_HoverDestinationEntity.png differ diff --git a/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_5_RelationshipCreated.png b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_5_RelationshipCreated.png new file mode 100644 index 00000000..baba6065 Binary files /dev/null and b/Editing/KnowledgeGraphConstructionTools/Screenshots/RelateTool_5_RelationshipCreated.png differ diff --git a/Editing/KnowledgeGraphRelateTool/Config.daml b/Editing/KnowledgeGraphRelateTool/Config.daml new file mode 100644 index 00000000..16ff3e04 --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/Config.daml @@ -0,0 +1,62 @@ + + + + + KnowledgeGraphRelateTool + KnowledgeGraphRelateTool description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + Esri, https://www.esri.com + 9/16/2024 7:04:07 PM + Editing + + + + + + + + + + + + + + + + Create Knowledge Graph relate records + + + + + + + + + + + + \ No newline at end of file diff --git a/Editing/KnowledgeGraphRelateTool/DarkImages/AddInDesktop16.png b/Editing/KnowledgeGraphRelateTool/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Editing/KnowledgeGraphRelateTool/DarkImages/AddInDesktop16.png differ diff --git a/Editing/KnowledgeGraphRelateTool/DarkImages/AddInDesktop32.png b/Editing/KnowledgeGraphRelateTool/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Editing/KnowledgeGraphRelateTool/DarkImages/AddInDesktop32.png differ diff --git a/Editing/KnowledgeGraphRelateTool/Images/AddInDesktop16.png b/Editing/KnowledgeGraphRelateTool/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Editing/KnowledgeGraphRelateTool/Images/AddInDesktop16.png differ diff --git a/Editing/KnowledgeGraphRelateTool/Images/AddInDesktop32.png b/Editing/KnowledgeGraphRelateTool/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Editing/KnowledgeGraphRelateTool/Images/AddInDesktop32.png differ diff --git a/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool (C#).md b/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool (C#).md new file mode 100644 index 00000000..a5eb7f4f --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool (C#).md @@ -0,0 +1,51 @@ +## KnowledgeGraphRelateTool + + +This sample illustrates how to build a set of KnowledgeGraph relate records using the EditOperation object. +The sketch tool displays a UI on the overlay using the OverlayControlID property of the MapTool. +The UI requires the user to specify the source and destination entity types along with the relate type and the relate direction. +The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity has been found, the SketchTip is updated to direct the user to identify destination entities. +Once destination entities have been found, the edit is performed for each source and destination entity pair. + + + +View it live + + +``` +Language: C# +Subject: Editing +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual Studio click the Build menu.Then select Build Solution. +2. Launch the debugger to open ArcGIS Pro. +3. ArcGIS Pro will open, select a project containing a link chart with a KnowledgeGraph. +4. Select the 'Add-In' tab on the ArcGIS Pro ribbon and activate the 'Create Relate records' tool. +![UI](Screenshots/relateTool.png) +5. In the UI, choose a source entity type, destination entity type, relate type from the dropdowns and specify the relate direction. +6. Click and drag a rectangle to identify a single source entity. +7. Click and drag a rectangle to identify destination entities. +8. The application will create a relate record for each of the destination entities. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool.csproj b/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool.csproj new file mode 100644 index 00000000..a64eefbb --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool.csproj @@ -0,0 +1,106 @@ + + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Geoprocessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + \ No newline at end of file diff --git a/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool.sln b/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool.sln new file mode 100644 index 00000000..6038d1ba --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/KnowledgeGraphRelateTool.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34408.163 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KnowledgeGraphRelateTool", "KnowledgeGraphRelateTool.csproj", "{FD4AC0D1-5F95-47EB-AD49-C4DE9F2FE8FB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD4AC0D1-5F95-47EB-AD49-C4DE9F2FE8FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD4AC0D1-5F95-47EB-AD49-C4DE9F2FE8FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD4AC0D1-5F95-47EB-AD49-C4DE9F2FE8FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD4AC0D1-5F95-47EB-AD49-C4DE9F2FE8FB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DE0BDCF9-B17F-404C-815C-119F838311DC} + EndGlobalSection +EndGlobal diff --git a/Editing/KnowledgeGraphRelateTool/Module1.cs b/Editing/KnowledgeGraphRelateTool/Module1.cs new file mode 100644 index 00000000..287db528 --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/Module1.cs @@ -0,0 +1,67 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; + +namespace KnowledgeGraphRelateTool +{ + /// + /// This sample illustrates how to build a set of KnowledgeGraph relate records using the EditOperation object. + /// The sketch tool displays a UI on the overlay using the OverlayControlID property of the MapTool. + /// The UI requires the user to specify the source and destination entity types along with the relate type and + /// the relate direction. + /// The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity + /// has been found, the SketchTip is updated to direct the user to identify destination entities. + /// Once destination entities have been found, the edit is performed for each source and destination entity pair. + /// + /// + /// 1. In Visual Studio click the Build menu.Then select Build Solution. + /// 1. Launch the debugger to open ArcGIS Pro. + /// 1. ArcGIS Pro will open, select a project containing a link chart with a KnowledgeGraph. + /// 1. Select the 'Add-In' tab on the ArcGIS Pro ribbon and activate the 'Create Relate records' tool. + /// ![UI](Screenshots/relateTool.png) + /// 1. In the UI, choose a source entity type, destination entity type, relate type from the dropdowns and + /// specify the relate direction. + /// 1. Click and drag a rectangle to identify a single source entity. + /// 1. Click and drag a rectangle to identify destination entities. + /// 1. The application will create a relate record for each of the destination entities. + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("KnowledgeGraphRelateTool_Module"); + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Editing/KnowledgeGraphRelateTool/Properties/launchSettings.json b/Editing/KnowledgeGraphRelateTool/Properties/launchSettings.json new file mode 100644 index 00000000..4092cc6e --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "KnowledgeGraphRelateTool": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Editing/KnowledgeGraphRelateTool/ReadMe.md b/Editing/KnowledgeGraphRelateTool/ReadMe.md new file mode 100644 index 00000000..a5eb7f4f --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/ReadMe.md @@ -0,0 +1,51 @@ +## KnowledgeGraphRelateTool + + +This sample illustrates how to build a set of KnowledgeGraph relate records using the EditOperation object. +The sketch tool displays a UI on the overlay using the OverlayControlID property of the MapTool. +The UI requires the user to specify the source and destination entity types along with the relate type and the relate direction. +The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity has been found, the SketchTip is updated to direct the user to identify destination entities. +Once destination entities have been found, the edit is performed for each source and destination entity pair. + + + +View it live + + +``` +Language: C# +Subject: Editing +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual Studio click the Build menu.Then select Build Solution. +2. Launch the debugger to open ArcGIS Pro. +3. ArcGIS Pro will open, select a project containing a link chart with a KnowledgeGraph. +4. Select the 'Add-In' tab on the ArcGIS Pro ribbon and activate the 'Create Relate records' tool. +![UI](Screenshots/relateTool.png) +5. In the UI, choose a source entity type, destination entity type, relate type from the dropdowns and specify the relate direction. +6. Click and drag a rectangle to identify a single source entity. +7. Click and drag a rectangle to identify destination entities. +8. The application will create a relate record for each of the destination entities. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControl.xaml b/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControl.xaml new file mode 100644 index 00000000..e0adff58 --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControl.xaml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControl.xaml.cs b/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControl.xaml.cs new file mode 100644 index 00000000..aa3eaa33 --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControl.xaml.cs @@ -0,0 +1,44 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + + +namespace KnowledgeGraphRelateTool +{ + /// + /// Interaction logic for RelateEmbeddableControlView.xaml + /// + public partial class RelateEmbeddableControlView : UserControl + { + public RelateEmbeddableControlView() + { + InitializeComponent(); + } + } +} diff --git a/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControlViewModel.cs b/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControlViewModel.cs new file mode 100644 index 00000000..7b147de8 --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/RelateEmbeddableControlViewModel.cs @@ -0,0 +1,124 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Desktop.Framework.Controls; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; + +namespace KnowledgeGraphRelateTool +{ + /// + /// An embeddable control that is displayed by the tool. Allows users to specify the source and destination + /// entity types, the relate name and description. + /// + internal class RelateEmbeddableControlViewModel : EmbeddableControl + { + public RelateEmbeddableControlViewModel(XElement options, bool canChangeOptions) : base(options, canChangeOptions) { } + + /// + /// Initialize with a KnowledgeGraphLayer. + /// + /// + internal void Init(KnowledgeGraphLayer kgLayer) + { + // clear the collections + Clear(); + if (kgLayer == null) + return; + + // get the list of entity and relate types from the knowledgegraph layer + var (entities, relates) = CollectNamedTypes(kgLayer); + + // assign to the properties + _entityNames = entities.ToList(); + _relateNames = relates.ToList(); + NotifyPropertyChanged(nameof(EntityNames)); + NotifyPropertyChanged(nameof(RelateNames)); + + RelateDirection = Directions[0]; + } + + /// + /// Clear all the properties. + /// + private void Clear() + { + _entityNames = new List(); + _relateNames = new List(); + NotifyPropertyChanged(nameof(EntityNames)); + NotifyPropertyChanged(nameof(RelateNames)); + + SourceEntity = ""; + DestinationEntity = ""; + Relate = ""; + RelateDirection = ""; + } + + /// + /// Collects the list of entity and relate types from a KnowledgeGraphLayer + /// + private (IEnumerable entities, IEnumerable relates) CollectNamedTypes(KnowledgeGraphLayer kgLayer) + { + var entities = kgLayer.GetLayersAsFlattenedList().OfType().Where(lcfl => lcfl.IsEntity).Select(lcfl => lcfl.Name).ToList(); + var relates = kgLayer.GetLayersAsFlattenedList().OfType().Where(lcfl => lcfl.IsRelationship).Select(lcfl => lcfl.Name).ToList(); + + return (entities, relates); + } + + private List _entityNames; + public List EntityNames => _entityNames; + + private List _relateNames; + public List RelateNames => _relateNames; + + private List _directions = new List() { "Forward", "Backward" }; + public List Directions => _directions; + + private string _sourceEntity; + public string SourceEntity + { + get => _sourceEntity; + set => SetProperty(ref _sourceEntity, value); + } + + private string _destinationEntity; + public string DestinationEntity + { + get => _destinationEntity; + set => SetProperty(ref _destinationEntity, value); + } + + private string _relate; + public string Relate + { + get => _relate; + set => SetProperty(ref _relate, value); + } + + private string _relateDirection; + public string RelateDirection + { + get => _relateDirection; + set => SetProperty(ref _relateDirection, value); + } + + public bool IsDirectionForward => RelateDirection == Directions[0]; + } +} + diff --git a/Editing/KnowledgeGraphRelateTool/RelateTool.cs b/Editing/KnowledgeGraphRelateTool/RelateTool.cs new file mode 100644 index 00000000..e06f0011 --- /dev/null +++ b/Editing/KnowledgeGraphRelateTool/RelateTool.cs @@ -0,0 +1,191 @@ +// +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace KnowledgeGraphRelateTool +{ + /// + /// A tool to create KnowledgeGraph relate records for a specified pair of entities types. + /// + /// The UI requires the user to specify the source and destination entity types along with the relate type and + /// the relate direction. + /// The tool uses the SketchTip property to direct the user to identify a single source entity. Once a source entity + /// has been found, the SketchTip is updated to direct the user to identify destination entities. + /// Once destination entities have been found, a KnowledgeGraphRelationshipDescription is created + /// for each source and destination entity pairs. + /// + internal class RelateTool : MapTool + { + public RelateTool() + { + IsSketchTool = true; + SketchType = SketchGeometryType.Rectangle; + SketchOutputMode = SketchOutputMode.Map; + + OverlayControlID = "KnowledgeGraphRelateTool_RelateEmbeddableControl"; + } + + // state of the tool. 0 = identify source entity, 1 = identify destination entities + private int _state = 0; + // the oid of the source entity + private long _sourceOID = -1; + + // reset the state of the tool + private void Reset() + { + _state = 0; + _sourceOID = -1; + SketchTip = "Identify a single source entity"; + } + + protected override Task OnToolActivateAsync(bool active) + { + // initialize the overlay control with a KnowledgeGraphLayer + var kgLayer = MapView.Active?.Map?.GetLayersAsFlattenedList().OfType().FirstOrDefault(); + var control = OverlayEmbeddableControl as RelateEmbeddableControlViewModel; + control.Init(kgLayer); + + // reset the state of the tool + Reset(); + + return Task.CompletedTask; + } + + protected override async Task OnSketchCompleteAsync(Geometry geometry) + { + if (geometry == null) + return false; + + var control = OverlayEmbeddableControl as RelateEmbeddableControlViewModel; + var sourceLayerName = control.SourceEntity; + var destinationLayerName = control.DestinationEntity; + var relateLayerName = control.Relate; + var isRelateForward = control.IsDirectionForward; + + // check we have values + if (string.IsNullOrEmpty(sourceLayerName) || string.IsNullOrEmpty(destinationLayerName) || string.IsNullOrEmpty(relateLayerName)) + { + MessageBox.Show("Please choose a source entity, destination entity and a relate.", "Relate"); + return false; + } + + // check source is not the same as destination + if (sourceLayerName.CompareTo(destinationLayerName) == 0) + { + MessageBox.Show("Please choose a destination entity different than the source entity.", "Relate"); + return false; + } + + // get the layers + var sourceLayer = MapView.Active.Map.GetLayersAsFlattenedList().Where(l => l.Name == sourceLayerName).FirstOrDefault(); + var destinationLayer = MapView.Active.Map.GetLayersAsFlattenedList().Where(l => l.Name == destinationLayerName).FirstOrDefault(); + var relateLayer = MapView.Active.Map.GetLayersAsFlattenedList().Where(l => l.Name == relateLayerName).FirstOrDefault(); + + (bool success, string msg) = await QueuedTask.Run(() => + { + IList destinationOIDs = null; + + // get the set of features intersection the sketch + var set = MapView.Active.GetFeatures(geometry); + if (_state == 0) + { + // determine source feature + if (!set.Contains(sourceLayer)) + return (false, "No features from the source entity were identified"); + + _sourceOID = set[sourceLayer].FirstOrDefault(); + } + else + { + // determine destination features + if (!set.Contains(destinationLayer)) + return (false, "No features from the destination entity were identified"); + + destinationOIDs = set[destinationLayer]; + } + + // increment the state of the tool + _state++; + + if (_state == 1) + { + // update the sketch tip + SketchTip = "Identify destination entities"; + // start another sketch to get the destination ids + this.StartSketchAsync(); + } + else + { + // we have source and destination entities. + // now build and execute the editOperation + try + { + var op = new EditOperation(); + op.Name = "Create " + relateLayerName + " relationships"; + + // build a RowHandle for the source feature + var sourceRowHandle = new RowHandle(sourceLayer, _sourceOID); + // iterate through the destination features + foreach (var destOID in destinationOIDs) + { + // build a rowHandle + var destinationRowHandle = new RowHandle(destinationLayer, destOID); + + // build the KnowledgeGraphRelationshipDescription + KnowledgeGraphRelationshipDescription rd = null; + if (isRelateForward) + rd = new KnowledgeGraphRelationshipDescription(sourceRowHandle, destinationRowHandle); + else + rd = new KnowledgeGraphRelationshipDescription(destinationRowHandle, sourceRowHandle); + + // queue the create + op.Create(relateLayer, rd); + } + // execute the edit + var success = op.Execute(); + if (!success) + return (false, op.ErrorMessage); + } + catch (Exception ex) + { + return (false, ex.Message); + } + finally + { + // reset the state of the tool + Reset(); + } + } + + return (true, ""); + }); + + if (!success) + MessageBox.Show(msg, "Relate"); + + return true; + } + } +} diff --git a/Editing/KnowledgeGraphRelateTool/Screenshots/RelateTool.png b/Editing/KnowledgeGraphRelateTool/Screenshots/RelateTool.png new file mode 100644 index 00000000..eb9c5516 Binary files /dev/null and b/Editing/KnowledgeGraphRelateTool/Screenshots/RelateTool.png differ diff --git a/Editing/LayerSnapModes/LayerSnapModes (C#).md b/Editing/LayerSnapModes/LayerSnapModes (C#).md index aa7c4b04..3cc9bc53 100644 --- a/Editing/LayerSnapModes/LayerSnapModes (C#).md +++ b/Editing/LayerSnapModes/LayerSnapModes (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/LayerSnapModes/ReadMe.md b/Editing/LayerSnapModes/ReadMe.md index aa7c4b04..3cc9bc53 100644 --- a/Editing/LayerSnapModes/ReadMe.md +++ b/Editing/LayerSnapModes/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/MainConnectorManhole/MainConnectorManhole (C#).md b/Editing/MainConnectorManhole/MainConnectorManhole (C#).md index a9fd8211..7aec717f 100644 --- a/Editing/MainConnectorManhole/MainConnectorManhole (C#).md +++ b/Editing/MainConnectorManhole/MainConnectorManhole (C#).md @@ -12,8 +12,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/MainConnectorManhole/ReadMe.md b/Editing/MainConnectorManhole/ReadMe.md index a9fd8211..7aec717f 100644 --- a/Editing/MainConnectorManhole/ReadMe.md +++ b/Editing/MainConnectorManhole/ReadMe.md @@ -12,8 +12,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/MapTopologyAddIn/MapTopologyAddIn (C#).md b/Editing/MapTopologyAddIn/MapTopologyAddIn (C#).md index cb594b78..f0cf1ac4 100644 --- a/Editing/MapTopologyAddIn/MapTopologyAddIn (C#).md +++ b/Editing/MapTopologyAddIn/MapTopologyAddIn (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/MapTopologyAddIn/ReadMe.md b/Editing/MapTopologyAddIn/ReadMe.md index cb594b78..f0cf1ac4 100644 --- a/Editing/MapTopologyAddIn/ReadMe.md +++ b/Editing/MapTopologyAddIn/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ModifyNewlyAddedFeatures/ModifyNewlyAddedFeatures (C#).md b/Editing/ModifyNewlyAddedFeatures/ModifyNewlyAddedFeatures (C#).md index 45223dd1..c9062dca 100644 --- a/Editing/ModifyNewlyAddedFeatures/ModifyNewlyAddedFeatures (C#).md +++ b/Editing/ModifyNewlyAddedFeatures/ModifyNewlyAddedFeatures (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ModifyNewlyAddedFeatures/ReadMe.md b/Editing/ModifyNewlyAddedFeatures/ReadMe.md index 45223dd1..c9062dca 100644 --- a/Editing/ModifyNewlyAddedFeatures/ReadMe.md +++ b/Editing/ModifyNewlyAddedFeatures/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/MultipatchBuilder/MultipatchBuilder (C#).md b/Editing/MultipatchBuilder/MultipatchBuilder (C#).md index a11eaffa..b175ff65 100644 --- a/Editing/MultipatchBuilder/MultipatchBuilder (C#).md +++ b/Editing/MultipatchBuilder/MultipatchBuilder (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/MultipatchBuilder/ReadMe.md b/Editing/MultipatchBuilder/ReadMe.md index a11eaffa..b175ff65 100644 --- a/Editing/MultipatchBuilder/ReadMe.md +++ b/Editing/MultipatchBuilder/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/README.md b/Editing/README.md index 83512e5f..6fb8142a 100644 --- a/Editing/README.md +++ b/Editing/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Editing -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Editing' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Editing' topic. ## Features @@ -38,6 +38,8 @@ This folder contains ArcGIS Pro Add-In Samples that fall under the 'Editing' top * [GroundToGridEvents (c#)](../../../tree/master/Editing/GroundToGridEvents) * [InspectorTool (c#)](../../../tree/master/Editing/InspectorTool) * [Inspector_AddAttributeAsync (c#)](../../../tree/master/Editing/Inspector_AddAttributeAsync) +* [KnowledgeGraphConstructionTools (c#)](../../../tree/master/Editing/KnowledgeGraphConstructionTools) +* [KnowledgeGraphRelateTool (c#)](../../../tree/master/Editing/KnowledgeGraphRelateTool) * [LayerSnapModes (c#)](../../../tree/master/Editing/LayerSnapModes) * [MainConnectorManhole (c#)](../../../tree/master/Editing/MainConnectorManhole) * [MapTopologyAddIn (c#)](../../../tree/master/Editing/MapTopologyAddIn) @@ -49,6 +51,7 @@ This folder contains ArcGIS Pro Add-In Samples that fall under the 'Editing' top * [SequentialNumberTool (c#)](../../../tree/master/Editing/SequentialNumberTool) * [SketchRemoveCurves (c#)](../../../tree/master/Editing/SketchRemoveCurves) * [SketchToolDemo (c#)](../../../tree/master/Editing/SketchToolDemo) +* [SketchToolWithHalos (c#)](../../../tree/master/Editing/SketchToolWithHalos) * [SplitPolygon (c#)](../../../tree/master/Editing/SplitPolygon) * [TableConstructionTool (c#)](../../../tree/master/Editing/TableConstructionTool) * [TableFeatureClassOperations (c#)](../../../tree/master/Editing/TableFeatureClassOperations) diff --git a/Editing/ReplaceSketch/ReadMe.md b/Editing/ReplaceSketch/ReadMe.md index 0d5ae98c..0f640b09 100644 --- a/Editing/ReplaceSketch/ReadMe.md +++ b/Editing/ReplaceSketch/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/ReplaceSketch/ReplaceSketch (C#).md b/Editing/ReplaceSketch/ReplaceSketch (C#).md index 0d5ae98c..0f640b09 100644 --- a/Editing/ReplaceSketch/ReplaceSketch (C#).md +++ b/Editing/ReplaceSketch/ReplaceSketch (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/RestartSketch/ReadMe.md b/Editing/RestartSketch/ReadMe.md index cfa0031a..d285a30c 100644 --- a/Editing/RestartSketch/ReadMe.md +++ b/Editing/RestartSketch/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/RestartSketch/RestartSketch (C#).md b/Editing/RestartSketch/RestartSketch (C#).md index cfa0031a..d285a30c 100644 --- a/Editing/RestartSketch/RestartSketch (C#).md +++ b/Editing/RestartSketch/RestartSketch (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/RowEventTest/ReadMe.md b/Editing/RowEventTest/ReadMe.md index 27a1cbbc..a5989393 100644 --- a/Editing/RowEventTest/ReadMe.md +++ b/Editing/RowEventTest/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/RowEventTest/RowEventTest (C#).md b/Editing/RowEventTest/RowEventTest (C#).md index 27a1cbbc..a5989393 100644 --- a/Editing/RowEventTest/RowEventTest (C#).md +++ b/Editing/RowEventTest/RowEventTest (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SequentialNumberTool/ReadMe.md b/Editing/SequentialNumberTool/ReadMe.md index 6b1d563f..63b910f0 100644 --- a/Editing/SequentialNumberTool/ReadMe.md +++ b/Editing/SequentialNumberTool/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SequentialNumberTool/SeqNum (C#).md b/Editing/SequentialNumberTool/SeqNum (C#).md index 6b1d563f..63b910f0 100644 --- a/Editing/SequentialNumberTool/SeqNum (C#).md +++ b/Editing/SequentialNumberTool/SeqNum (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SketchRemoveCurves/ReadMe.md b/Editing/SketchRemoveCurves/ReadMe.md index a109e1ce..326da975 100644 --- a/Editing/SketchRemoveCurves/ReadMe.md +++ b/Editing/SketchRemoveCurves/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SketchRemoveCurves/SketchRemoveCurves (C#).md b/Editing/SketchRemoveCurves/SketchRemoveCurves (C#).md index a109e1ce..326da975 100644 --- a/Editing/SketchRemoveCurves/SketchRemoveCurves (C#).md +++ b/Editing/SketchRemoveCurves/SketchRemoveCurves (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SketchToolDemo/ReadMe.md b/Editing/SketchToolDemo/ReadMe.md index fc01b20b..1a6f5ac2 100644 --- a/Editing/SketchToolDemo/ReadMe.md +++ b/Editing/SketchToolDemo/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SketchToolDemo/SketchToolDemo (C#).md b/Editing/SketchToolDemo/SketchToolDemo (C#).md index fc01b20b..1a6f5ac2 100644 --- a/Editing/SketchToolDemo/SketchToolDemo (C#).md +++ b/Editing/SketchToolDemo/SketchToolDemo (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SketchToolWithHalos/Config.daml b/Editing/SketchToolWithHalos/Config.daml new file mode 100644 index 00000000..e4be01de --- /dev/null +++ b/Editing/SketchToolWithHalos/Config.daml @@ -0,0 +1,67 @@ + + + + + SketchToolWithHalos + SketchToolWithHalos description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + Esri, https://www.esri.com + 9/5/2024 6:43:29 PM + Editing + + + + + + + + + + + + + + + + + + + Tool with a set of halos centered around the cursor. + + + + + + + + + + + + \ No newline at end of file diff --git a/Editing/SketchToolWithHalos/Converters.cs b/Editing/SketchToolWithHalos/Converters.cs new file mode 100644 index 00000000..d6c5a23c --- /dev/null +++ b/Editing/SketchToolWithHalos/Converters.cs @@ -0,0 +1,55 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Globalization; +using System.Windows.Data; +using System.Windows; + +namespace SketchToolWithHalos +{ + internal sealed class BoolToVisibleConverter : IValueConverter + { + public BoolToVisibleConverter() { } + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (targetType != typeof(Visibility)) + throw new InvalidOperationException("The target must be of type " + nameof(Visibility)); + + var invert = (parameter is bool?) + ? parameter as bool? + : parameter != null && System.Convert.ToBoolean(parameter); + + var boolValue = System.Convert.ToBoolean(value); + if (invert == true) + boolValue = !boolValue; + return boolValue ? Visibility.Visible : Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + if (targetType != typeof(bool)) + throw new InvalidOperationException("The target must be of type bool"); + + if (value == null) + return true; + + Visibility visibility = (Visibility)System.Convert.ToInt32(value); + + return visibility == Visibility.Visible ? true : false; + } + } +} diff --git a/Editing/SketchToolWithHalos/DarkImages/AddInDesktop16.png b/Editing/SketchToolWithHalos/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Editing/SketchToolWithHalos/DarkImages/AddInDesktop16.png differ diff --git a/Editing/SketchToolWithHalos/DarkImages/AddInDesktop32.png b/Editing/SketchToolWithHalos/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Editing/SketchToolWithHalos/DarkImages/AddInDesktop32.png differ diff --git a/Editing/SketchToolWithHalos/HaloEmbeddableControl.xaml b/Editing/SketchToolWithHalos/HaloEmbeddableControl.xaml new file mode 100644 index 00000000..54471805 --- /dev/null +++ b/Editing/SketchToolWithHalos/HaloEmbeddableControl.xaml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Editing/SketchToolWithHalos/HaloEmbeddableControl.xaml.cs b/Editing/SketchToolWithHalos/HaloEmbeddableControl.xaml.cs new file mode 100644 index 00000000..bf64e8bc --- /dev/null +++ b/Editing/SketchToolWithHalos/HaloEmbeddableControl.xaml.cs @@ -0,0 +1,31 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.Windows.Controls; + + +namespace SketchToolWithHalos +{ + /// + /// Interaction logic for HaloEmbeddableControlView.xaml + /// + public partial class HaloEmbeddableControlView : UserControl + { + public HaloEmbeddableControlView() + { + InitializeComponent(); + } + } +} diff --git a/Editing/SketchToolWithHalos/HaloEmbeddableControlViewModel.cs b/Editing/SketchToolWithHalos/HaloEmbeddableControlViewModel.cs new file mode 100644 index 00000000..eb2da982 --- /dev/null +++ b/Editing/SketchToolWithHalos/HaloEmbeddableControlViewModel.cs @@ -0,0 +1,171 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.CIM; +using ArcGIS.Desktop.Framework.Controls; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Data; +using System.Xml.Linq; + +namespace SketchToolWithHalos +{ + internal class HaloEmbeddableControlViewModel : EmbeddableControl + { + private readonly object _lockCollection = new object(); + + private readonly ObservableCollection _halos = new ObservableCollection(); + private readonly ReadOnlyObservableCollection _readOnlyHalos; + + public ReadOnlyObservableCollection HaloItems => _readOnlyHalos; + + private double _canvasHeight = 0; + public double CanvasHeight + { + get => _canvasHeight; + set => SetProperty(ref _canvasHeight, value); + } + + + // Use _showAllHalos to indicate if the halos should be visible at all scales. + // As the halo size (in pixels) becomes smaller it becomes less useful on the screen. + // It may be useful to filter these smaller halos out. + private bool _showAllHalos = false; + // indicates a custom cut-off scale (in pixels) as to when a halo will no longer be visible + private double _haloMinimumVisibleSize = 10; + + + public HaloEmbeddableControlViewModel(XElement options, bool canChangeOptions) : base(options, canChangeOptions) + { + _readOnlyHalos = new ReadOnlyObservableCollection(_halos); + BindingOperations.EnableCollectionSynchronization(_readOnlyHalos, _lockCollection); + + // subscribe to MapViewCameraChanged + ArcGIS.Desktop.Mapping.Events.MapViewCameraChangedEvent.Subscribe(OnMapViewCameraChanged); + } + + public override async Task OpenAsync() + { + if (_halos.Count == 0) + await AssignHalos(); + } + + // when the camera / scale changes; recalculate the halo screen sizes + internal async void OnMapViewCameraChanged(ArcGIS.Desktop.Mapping.Events.MapViewCameraChangedEventArgs args) + { + if (args == null) + return; + + await UpdateHalos(); + } + + internal async Task AssignHalos() + { + // assign a list of radii in m + List radii = new List() { 200, 60, 500, 2500 }; // in m + + var map = MapView.Active?.Map; + if (map == null) + return; + + double maxDiameter = 0; + + var count = radii.Count(); + // for each radius + for (int idx = 0; idx < count; idx++) + { + // randomize color and stroke thickness + var val = idx % 3; + CIMColor color = null; + double thickness = val + 1; + switch (val) + { + case 0: + color = CIMRGBColor.CreateRGBColor(255, 0, 0); + break; + case 1: + color = CIMRGBColor.CreateRGBColor(255, 0, 255); + break; + case 2: + color = CIMRGBColor.CreateRGBColor(0, 255, 255); + break; + } + + // create the halo item + var halo = new HaloItem(radii[idx], color, thickness); + // do the calculation / conversions + await halo.DoConversions(); + // update visibility + halo.CalculateVisibility(_haloMinimumVisibleSize, _showAllHalos); + + // add to the collection + _halos.Add(halo); + + // keep track of the max screen diameter + var diameter = halo.ScreenDiameter; + if (diameter > maxDiameter) + maxDiameter = diameter; + } + + // update the canvas dimensions to the maximum screen diameter + CanvasHeight = maxDiameter; + + // calculate the positions of all the halos on the canvas + foreach (var halo in _halos) + halo.CalculatePosition(CanvasHeight); + + // notify the UI that the collection has changed + NotifyPropertyChanged(nameof(HaloItems)); + } + + internal async Task UpdateHalos() + { + var map = MapView.Active?.Map; + if (map == null) + return; + + double maxDiameter = 0; + + foreach (var halo in _halos) + { + // do the radius conversion based on screen scale + await halo.DoRadiusConversion(); + + // update visibility + halo.CalculateVisibility(_haloMinimumVisibleSize, _showAllHalos); + + // keep track of the max screen diameter + var diameter = halo.ScreenDiameter; + if (diameter > maxDiameter) + maxDiameter = diameter; + } + + // update the canvas dimensions to the maximum screen diameter + CanvasHeight = maxDiameter; + + // calculate the positions of all the halos on the canvas + foreach (var halo in _halos) + halo.CalculatePosition(CanvasHeight); + + // notify the UI that the collection has changed + NotifyPropertyChanged(nameof(HaloItems)); + } + + } +} diff --git a/Editing/SketchToolWithHalos/HaloItem.cs b/Editing/SketchToolWithHalos/HaloItem.cs new file mode 100644 index 00000000..ea3688bd --- /dev/null +++ b/Editing/SketchToolWithHalos/HaloItem.cs @@ -0,0 +1,137 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.CIM; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Mapping; +using System; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace SketchToolWithHalos +{ + internal class HaloItem : PropertyChangedBase + { + public HaloItem(double radius, CIMColor color, double strokeThickness) + { + RadiusM = radius; + OutlineColor = color; + StrokeThickness = strokeThickness; + } + + public double Height => ScreenDiameter; + + internal CIMColor OutlineColor { get; set; } + public Brush WPFOutlineBrush { get; internal set; } + public double StrokeThickness { get; internal set; } + + private double _x; + public double X { get => _x; set => SetProperty(ref _x, value); } + private double _y; + public double Y { get => _y; set => SetProperty(ref _y, value); } + + internal double RadiusM { get; set; } // in m + internal double ScreenRadius { get; set; } + internal double ScreenDiameter => ScreenRadius * 2; + + public bool IsVisible => ShowAtAllScales || IsValidScale; + internal bool IsValidScale { get; set; } + internal bool ShowAtAllScales { get; set; } + + internal async Task DoConversions() + { + // convert radius to screen coords + await DoRadiusConversion(); + + // convert the CIMColor to a UI color brush + var brushColor = await ConvertCIMColorToUIColorBrush(OutlineColor); + WPFOutlineBrush = new SolidColorBrush(brushColor); + } + + internal async Task DoRadiusConversion() + { + if (MapView.Active == null) + return; + + ScreenRadius = await ConvertRadiusToScreenUnits(RadiusM); + // force a notification on the public Height property + NotifyPropertyChanged(nameof(Height)); + } + + internal void CalculateVisibility(double minSize, bool showHalosAtAllScales) + { + IsValidScale = ScreenRadius >= minSize; + ShowAtAllScales = showHalosAtAllScales; + + NotifyPropertyChanged(nameof(IsVisible)); + } + + internal void CalculatePosition(double canvasHeight) + { + var halfCanvasHeight = canvasHeight / 2; + // determine left, top offset to apply to be canvas WPF margin + double offset = halfCanvasHeight - ScreenRadius; + + X = offset; + Y = offset; + } + + private Task ConvertRadiusToScreenUnits(double radiusInMeters) + { + // convert the radius (in m) to screen units by using + // GeometryEngine.ConstructGeodeticLineFromDistance to construct a line + // of "radiusInMeters" distance from an arbitrary point (the center of the extent) + + + // get the center of the extent + var centerPt = MapView.Active.Extent.Center; + + return QueuedTask.Run(() => + { + // construct the geodetic line of radiusInMeters distance from the centerPt + var polyline = GeometryEngine.Instance.ConstructGeodeticLineFromDistance(GeodeticCurveType.Geodesic, centerPt, radiusInMeters, 0, null, CurveDensifyMethod.ByLength, 3000); + var ptCount = polyline.PointCount; + var endPoint = polyline.Points[ptCount - 1]; + + // convert the real points + var startPtClient = MapView.Active.MapToClient(centerPt); + var startPtScreen = MapView.Active.MapToScreen(centerPt); + var endPtClient = MapView.Active.MapToClient(endPoint); + var endPtScreen = MapView.Active.MapToScreen(endPoint); + + // now get the distance + var xDiff = endPtScreen.X - startPtScreen.X; + var yDiff = endPtScreen.Y - startPtScreen.Y; + + var dist = Math.Sqrt((xDiff * xDiff) + (yDiff * yDiff)); + + return dist; + }); + } + + + private Task ConvertCIMColorToUIColorBrush(CIMColor color) + { + return QueuedTask.Run(() => + { + var rgbColor = ColorFactory.Instance.ConvertToRGB(color); + var uiColor = ArcGIS.Desktop.Internal.Mapping.Symbology.ColorHelper.UIColor(rgbColor); + return uiColor; + }); + } + } +} diff --git a/Editing/SketchToolWithHalos/Images/AddInDesktop16.png b/Editing/SketchToolWithHalos/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Editing/SketchToolWithHalos/Images/AddInDesktop16.png differ diff --git a/Editing/SketchToolWithHalos/Images/AddInDesktop32.png b/Editing/SketchToolWithHalos/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Editing/SketchToolWithHalos/Images/AddInDesktop32.png differ diff --git a/Editing/SketchToolWithHalos/Module1.cs b/Editing/SketchToolWithHalos/Module1.cs new file mode 100644 index 00000000..74064dc8 --- /dev/null +++ b/Editing/SketchToolWithHalos/Module1.cs @@ -0,0 +1,60 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; + +namespace SketchToolWithHalos +{ + /// + /// This sample illustrates how to build a sketch tool that has a number of halos of specific distances that follow the cursor. + /// The halos are implemented as an embeddable control that is displayed as a SketchTip. + /// + /// + /// 1. Download the Community Sample data (see under the 'Resources' section for downloading sample data) + /// 1. Make sure that the Sample data is unzipped in c:\data + /// 1. The project used for this sample is 'C:\Data\Interacting with Maps\Interacting with Maps.aprx' + /// 1. In Visual Studio click the Build menu.Then select Build Solution. + /// 1. Launch the debugger to open ArcGIS Pro. + /// 1. ArcGIS Pro will open, select the Interacting with Maps.aprx project + /// 1. Select the 'Add-In' tab on the ArcGIS Pro ribbon and activate the 'Sketch Tool with Halos' tool. + /// ![UI](Screenshots/SketchToolHalos.png) + /// 1. Move your mouse around and notice how the halos follow the cursor. Zoom in and out and notice how the halos adjust to the different map scale. + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("SketchToolWithHalos_Module"); + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Editing/SketchToolWithHalos/Properties/launchSettings.json b/Editing/SketchToolWithHalos/Properties/launchSettings.json new file mode 100644 index 00000000..84f0d58e --- /dev/null +++ b/Editing/SketchToolWithHalos/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "SketchToolWithHalos": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Editing/SketchToolWithHalos/ReadMe.md b/Editing/SketchToolWithHalos/ReadMe.md new file mode 100644 index 00000000..21b733d5 --- /dev/null +++ b/Editing/SketchToolWithHalos/ReadMe.md @@ -0,0 +1,48 @@ +## SketchToolWithHalos + + +This sample illustrates how to build a sketch tool that has a number of halos of specific distances that follow the cursor. +The halos are implemented as an embeddable control that is displayed as a SketchTip. + + + +View it live + + +``` +Language: C# +Subject: Editing +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. Download the Community Sample data (see under the 'Resources' section for downloading sample data) +2. Make sure that the Sample data is unzipped in c:\data +3. The project used for this sample is 'C:\Data\Interacting with Maps\Interacting with Maps.aprx' +4. In Visual Studio click the Build menu.Then select Build Solution. +5. Launch the debugger to open ArcGIS Pro. +6. ArcGIS Pro will open, select the Interacting with Maps.aprx project +7. Select the 'Add-In' tab on the ArcGIS Pro ribbon and activate the 'Sketch Tool with Halos' tool. +![UI](Screenshots/SketchToolHalos.png) +8. Move your mouse around and notice how the halos follow the cursor. Zoom in and out and notice how the halos adjust to the different map scale. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Editing/SketchToolWithHalos/Screenshots/SketchToolHalos.png b/Editing/SketchToolWithHalos/Screenshots/SketchToolHalos.png new file mode 100644 index 00000000..85c6c649 Binary files /dev/null and b/Editing/SketchToolWithHalos/Screenshots/SketchToolHalos.png differ diff --git a/Editing/SketchToolWithHalos/SketchToolHalo.cs b/Editing/SketchToolWithHalos/SketchToolHalo.cs new file mode 100644 index 00000000..338ff34c --- /dev/null +++ b/Editing/SketchToolWithHalos/SketchToolHalo.cs @@ -0,0 +1,45 @@ +// Copyright 2024 Esri +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Mapping; +using System.Threading.Tasks; + +namespace SketchToolWithHalos +{ + internal class SketchToolHalo : MapTool + { + public SketchToolHalo() + { + IsSketchTool = true; + SketchType = SketchGeometryType.Line; + SketchOutputMode = SketchOutputMode.Map; + + SketchTipID = "SketchToolWithHalos_HaloEmbeddableControl"; + SketchTipControlPosition = SketchTipControlPosition.Center; + IsSketchTipControlTransparent = true; + } + + protected override Task OnToolActivateAsync(bool active) + { + return base.OnToolActivateAsync(active); + } + + protected override Task OnSketchCompleteAsync(Geometry geometry) + { + return base.OnSketchCompleteAsync(geometry); + } + } +} diff --git a/Editing/SketchToolWithHalos/SketchToolWithHalos (C#).md b/Editing/SketchToolWithHalos/SketchToolWithHalos (C#).md new file mode 100644 index 00000000..21b733d5 --- /dev/null +++ b/Editing/SketchToolWithHalos/SketchToolWithHalos (C#).md @@ -0,0 +1,48 @@ +## SketchToolWithHalos + + +This sample illustrates how to build a sketch tool that has a number of halos of specific distances that follow the cursor. +The halos are implemented as an embeddable control that is displayed as a SketchTip. + + + +View it live + + +``` +Language: C# +Subject: Editing +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. Download the Community Sample data (see under the 'Resources' section for downloading sample data) +2. Make sure that the Sample data is unzipped in c:\data +3. The project used for this sample is 'C:\Data\Interacting with Maps\Interacting with Maps.aprx' +4. In Visual Studio click the Build menu.Then select Build Solution. +5. Launch the debugger to open ArcGIS Pro. +6. ArcGIS Pro will open, select the Interacting with Maps.aprx project +7. Select the 'Add-In' tab on the ArcGIS Pro ribbon and activate the 'Sketch Tool with Halos' tool. +![UI](Screenshots/SketchToolHalos.png) +8. Move your mouse around and notice how the halos follow the cursor. Zoom in and out and notice how the halos adjust to the different map scale. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Editing/SketchToolWithHalos/SketchToolWithHalos.csproj b/Editing/SketchToolWithHalos/SketchToolWithHalos.csproj new file mode 100644 index 00000000..a64eefbb --- /dev/null +++ b/Editing/SketchToolWithHalos/SketchToolWithHalos.csproj @@ -0,0 +1,106 @@ + + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Geoprocessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + \ No newline at end of file diff --git a/Editing/SketchToolWithHalos/SketchToolWithHalos.sln b/Editing/SketchToolWithHalos/SketchToolWithHalos.sln new file mode 100644 index 00000000..503b965a --- /dev/null +++ b/Editing/SketchToolWithHalos/SketchToolWithHalos.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34408.163 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SketchToolWithHalos", "SketchToolWithHalos.csproj", "{632DAE61-370C-4768-8F0A-5AF70573BD1F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {632DAE61-370C-4768-8F0A-5AF70573BD1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {632DAE61-370C-4768-8F0A-5AF70573BD1F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {632DAE61-370C-4768-8F0A-5AF70573BD1F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {632DAE61-370C-4768-8F0A-5AF70573BD1F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FBD9B02D-6A40-4082-8EE0-780B1B329E23} + EndGlobalSection +EndGlobal diff --git a/Editing/SplitPolygon/ReadMe.md b/Editing/SplitPolygon/ReadMe.md index f5e1f0e5..2e67f17b 100644 --- a/Editing/SplitPolygon/ReadMe.md +++ b/Editing/SplitPolygon/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/SplitPolygon/SplitPolygon (C#).md b/Editing/SplitPolygon/SplitPolygon (C#).md index f5e1f0e5..2e67f17b 100644 --- a/Editing/SplitPolygon/SplitPolygon (C#).md +++ b/Editing/SplitPolygon/SplitPolygon (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TableConstructionTool/Config.daml b/Editing/TableConstructionTool/Config.daml index 64f6495f..a6986d6b 100644 --- a/Editing/TableConstructionTool/Config.daml +++ b/Editing/TableConstructionTool/Config.daml @@ -58,7 +58,13 @@ - + @@ -69,7 +75,8 @@ - + diff --git a/Editing/TableConstructionTool/ReadMe.md b/Editing/TableConstructionTool/ReadMe.md index 607b3868..c91bea6b 100644 --- a/Editing/TableConstructionTool/ReadMe.md +++ b/Editing/TableConstructionTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TableConstructionTool/TableConstructionTool (C#).md b/Editing/TableConstructionTool/TableConstructionTool (C#).md index 607b3868..c91bea6b 100644 --- a/Editing/TableConstructionTool/TableConstructionTool (C#).md +++ b/Editing/TableConstructionTool/TableConstructionTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TableFeatureClassOperations/ReadMe.md b/Editing/TableFeatureClassOperations/ReadMe.md index 9f85a196..95ed748c 100644 --- a/Editing/TableFeatureClassOperations/ReadMe.md +++ b/Editing/TableFeatureClassOperations/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TableFeatureClassOperations/TableFeatureClassOperations (C#).md b/Editing/TableFeatureClassOperations/TableFeatureClassOperations (C#).md index 9f85a196..95ed748c 100644 --- a/Editing/TableFeatureClassOperations/TableFeatureClassOperations (C#).md +++ b/Editing/TableFeatureClassOperations/TableFeatureClassOperations (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TableViewerTest/CAMACustomize.cs b/Editing/TableViewerTest/CAMACustomize.cs index 03c8805b..69edb3d6 100644 --- a/Editing/TableViewerTest/CAMACustomize.cs +++ b/Editing/TableViewerTest/CAMACustomize.cs @@ -58,7 +58,7 @@ protected override void OnClick() if (_tablePaneOn) { - // set the query defintion to show non-posted data only + // set the query definition to show non-posted data only SetDefinitionQuery(camaTable, "posted = 0", "Queued Non-Posted records only"); System.Diagnostics.Debug.Assert(MapView.Active != null); @@ -105,7 +105,7 @@ protected override void OnClick() } /// - /// Update the query defintion for the given standalone table using the given whereclause and description + /// Update the query definition for the given standalone table using the given where clause and description /// /// table for which to update the expression /// diff --git a/Editing/TableViewerTest/CAMAShow.cs b/Editing/TableViewerTest/CAMAShow.cs index ea9a9fb5..8c51b452 100644 --- a/Editing/TableViewerTest/CAMAShow.cs +++ b/Editing/TableViewerTest/CAMAShow.cs @@ -58,7 +58,7 @@ protected override void OnClick() _tablePaneOn = !_tablePaneOn; if (_tablePaneOn) { - // set the query defintion to show non-posted data only + // set the query definition to show non-posted data only SetCamaDefinitionQuery(camaTable, "posted = 0", "Queued Non-Posted records only"); // run on UI thread diff --git a/Editing/TableViewerTest/ReadMe.md b/Editing/TableViewerTest/ReadMe.md index a6523d53..fb58c0de 100644 --- a/Editing/TableViewerTest/ReadMe.md +++ b/Editing/TableViewerTest/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TableViewerTest/TableViewerTest (C#).md b/Editing/TableViewerTest/TableViewerTest (C#).md index a6523d53..fb58c0de 100644 --- a/Editing/TableViewerTest/TableViewerTest (C#).md +++ b/Editing/TableViewerTest/TableViewerTest (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TransferAttributes/ReadMe.md b/Editing/TransferAttributes/ReadMe.md index 3d0197d7..9a5a2650 100644 --- a/Editing/TransferAttributes/ReadMe.md +++ b/Editing/TransferAttributes/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TransferAttributes/TransferAttributes (C#).md b/Editing/TransferAttributes/TransferAttributes (C#).md index 3d0197d7..9a5a2650 100644 --- a/Editing/TransferAttributes/TransferAttributes (C#).md +++ b/Editing/TransferAttributes/TransferAttributes (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TransformCADLayer/Config.daml b/Editing/TransformCADLayer/Config.daml index b5d028b2..cd5bd804 100644 --- a/Editing/TransformCADLayer/Config.daml +++ b/Editing/TransformCADLayer/Config.daml @@ -12,13 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. --> - + Transform CAD Layer Transform a CAD Layer using rotate, scale and shift parameters. Images\AddinDesktop32.png ArcGIS Pro SDK Team, arcgisprosdk@esri.com esri, https://www.esri.com - 10/03/2023 12:00:01 PM + 11/21/2023 12:00:01 PM Editing diff --git a/Editing/TransformCADLayer/ReadMe.md b/Editing/TransformCADLayer/ReadMe.md index 51cda4e7..ec646fd5 100644 --- a/Editing/TransformCADLayer/ReadMe.md +++ b/Editing/TransformCADLayer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/TransformCADLayer/TransformCADLayer (C#).md b/Editing/TransformCADLayer/TransformCADLayer (C#).md index 51cda4e7..ec646fd5 100644 --- a/Editing/TransformCADLayer/TransformCADLayer (C#).md +++ b/Editing/TransformCADLayer/TransformCADLayer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/UpdateAttributesWithSketch/ReadMe.md b/Editing/UpdateAttributesWithSketch/ReadMe.md index 0f19c5dc..0a446293 100644 --- a/Editing/UpdateAttributesWithSketch/ReadMe.md +++ b/Editing/UpdateAttributesWithSketch/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Editing/UpdateAttributesWithSketch/UpdateAttributesWithSketch (C#).md b/Editing/UpdateAttributesWithSketch/UpdateAttributesWithSketch (C#).md index 0f19c5dc..0a446293 100644 --- a/Editing/UpdateAttributesWithSketch/UpdateAttributesWithSketch (C#).md +++ b/Editing/UpdateAttributesWithSketch/UpdateAttributesWithSketch (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Editing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/BackStage_PropertyPage/BackStage_PropertyPage (C#).md b/Framework/BackStage_PropertyPage/BackStage_PropertyPage (C#).md index 00c40215..49ae0d88 100644 --- a/Framework/BackStage_PropertyPage/BackStage_PropertyPage (C#).md +++ b/Framework/BackStage_PropertyPage/BackStage_PropertyPage (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/BackStage_PropertyPage/ReadMe.md b/Framework/BackStage_PropertyPage/ReadMe.md index 00c40215..49ae0d88 100644 --- a/Framework/BackStage_PropertyPage/ReadMe.md +++ b/Framework/BackStage_PropertyPage/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/BookmarksComboBox/BookmarkComboBox (C#).md b/Framework/BookmarksComboBox/BookmarkComboBox (C#).md index c89e95a5..f8fc8b34 100644 --- a/Framework/BookmarksComboBox/BookmarkComboBox (C#).md +++ b/Framework/BookmarksComboBox/BookmarkComboBox (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/BookmarksComboBox/ReadMe.md b/Framework/BookmarksComboBox/ReadMe.md index c89e95a5..f8fc8b34 100644 --- a/Framework/BookmarksComboBox/ReadMe.md +++ b/Framework/BookmarksComboBox/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CommandFilter/CommandFilter (C#).md b/Framework/CommandFilter/CommandFilter (C#).md index a62c8fbf..19a002a3 100644 --- a/Framework/CommandFilter/CommandFilter (C#).md +++ b/Framework/CommandFilter/CommandFilter (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CommandFilter/ReadMe.md b/Framework/CommandFilter/ReadMe.md index a62c8fbf..19a002a3 100644 --- a/Framework/CommandFilter/ReadMe.md +++ b/Framework/CommandFilter/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ConditionQuery/ConditionQuery (C#).md b/Framework/ConditionQuery/ConditionQuery (C#).md index 4c678779..509ccd48 100644 --- a/Framework/ConditionQuery/ConditionQuery (C#).md +++ b/Framework/ConditionQuery/ConditionQuery (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ConditionQuery/ReadMe.md b/Framework/ConditionQuery/ReadMe.md index 4c678779..509ccd48 100644 --- a/Framework/ConditionQuery/ReadMe.md +++ b/Framework/ConditionQuery/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ConfigureGallery/ConfigureGallery (C#).md b/Framework/ConfigureGallery/ConfigureGallery (C#).md index b7b8d0a2..fef99f27 100644 --- a/Framework/ConfigureGallery/ConfigureGallery (C#).md +++ b/Framework/ConfigureGallery/ConfigureGallery (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ConfigureGallery/ReadMe.md b/Framework/ConfigureGallery/ReadMe.md index b7b8d0a2..fef99f27 100644 --- a/Framework/ConfigureGallery/ReadMe.md +++ b/Framework/ConfigureGallery/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ContextMenu/ContextMenu (C#).md b/Framework/ContextMenu/ContextMenu (C#).md index 71ca6e82..3d49a371 100644 --- a/Framework/ContextMenu/ContextMenu (C#).md +++ b/Framework/ContextMenu/ContextMenu (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ContextMenu/ReadMe.md b/Framework/ContextMenu/ReadMe.md index 71ca6e82..3d49a371 100644 --- a/Framework/ContextMenu/ReadMe.md +++ b/Framework/ContextMenu/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ContextualRibbonTab/ContextualRibbonTab (C#).md b/Framework/ContextualRibbonTab/ContextualRibbonTab (C#).md index 7671fa60..937bbca0 100644 --- a/Framework/ContextualRibbonTab/ContextualRibbonTab (C#).md +++ b/Framework/ContextualRibbonTab/ContextualRibbonTab (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ContextualRibbonTab/ReadMe.md b/Framework/ContextualRibbonTab/ReadMe.md index 7671fa60..937bbca0 100644 --- a/Framework/ContextualRibbonTab/ReadMe.md +++ b/Framework/ContextualRibbonTab/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CopyPaste/CopyPaste (C#).md b/Framework/CopyPaste/CopyPaste (C#).md index 58ec0f5d..b924cbad 100644 --- a/Framework/CopyPaste/CopyPaste (C#).md +++ b/Framework/CopyPaste/CopyPaste (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CopyPaste/ReadMe.md b/Framework/CopyPaste/ReadMe.md index 58ec0f5d..b924cbad 100644 --- a/Framework/CopyPaste/ReadMe.md +++ b/Framework/CopyPaste/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CustomCatalog/CustomCatalog (C#).md b/Framework/CustomCatalog/CustomCatalog (C#).md index b4873bac..768353eb 100644 --- a/Framework/CustomCatalog/CustomCatalog (C#).md +++ b/Framework/CustomCatalog/CustomCatalog (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CustomCatalog/ReadMe.md b/Framework/CustomCatalog/ReadMe.md index b4873bac..768353eb 100644 --- a/Framework/CustomCatalog/ReadMe.md +++ b/Framework/CustomCatalog/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CustomEvent/CustomEvent (C#).md b/Framework/CustomEvent/CustomEvent (C#).md index a98826f5..7616fccf 100644 --- a/Framework/CustomEvent/CustomEvent (C#).md +++ b/Framework/CustomEvent/CustomEvent (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CustomEvent/ReadMe.md b/Framework/CustomEvent/ReadMe.md index a98826f5..7616fccf 100644 --- a/Framework/CustomEvent/ReadMe.md +++ b/Framework/CustomEvent/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CustomStyling/CustomStyling (C#).md b/Framework/CustomStyling/CustomStyling (C#).md index a2c0f44b..20243bc1 100644 --- a/Framework/CustomStyling/CustomStyling (C#).md +++ b/Framework/CustomStyling/CustomStyling (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/CustomStyling/ReadMe.md b/Framework/CustomStyling/ReadMe.md index a2c0f44b..20243bc1 100644 --- a/Framework/CustomStyling/ReadMe.md +++ b/Framework/CustomStyling/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DAML/Config.daml b/Framework/DAML/Config.daml index 3f2423bf..97430cff 100644 --- a/Framework/DAML/Config.daml +++ b/Framework/DAML/Config.daml @@ -1,4 +1,4 @@ - + - + - - - - - + + + + + @@ -253,6 +257,20 @@ + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/Framework/DAML/DAML (C#).md b/Framework/DAML/DAML (C#).md index 307c969b..520ae791 100644 --- a/Framework/DAML/DAML (C#).md +++ b/Framework/DAML/DAML (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DAML/DAML.csproj b/Framework/DAML/DAML.csproj index 91dc35dc..44b60578 100644 --- a/Framework/DAML/DAML.csproj +++ b/Framework/DAML/DAML.csproj @@ -23,6 +23,9 @@ C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll false + + ..\..\..\..\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll false diff --git a/Framework/DAML/LayersPropertySheet/LayersPropertySheet.xaml b/Framework/DAML/LayersPropertySheet/LayersPropertySheet.xaml new file mode 100644 index 00000000..307d4dc4 --- /dev/null +++ b/Framework/DAML/LayersPropertySheet/LayersPropertySheet.xaml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + diff --git a/Framework/DAML/LayersPropertySheet/LayersPropertySheet.xaml.cs b/Framework/DAML/LayersPropertySheet/LayersPropertySheet.xaml.cs new file mode 100644 index 00000000..1970b034 --- /dev/null +++ b/Framework/DAML/LayersPropertySheet/LayersPropertySheet.xaml.cs @@ -0,0 +1,46 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace DAML.LayersPropertySheet +{ + /// + /// Interaction logic for LayersPropertySheetView.xaml + /// + public partial class LayersPropertySheetView : UserControl + { + public LayersPropertySheetView() + { + InitializeComponent(); + } + } +} diff --git a/Framework/DAML/LayersPropertySheet/LayersPropertySheetViewModel.cs b/Framework/DAML/LayersPropertySheet/LayersPropertySheetViewModel.cs new file mode 100644 index 00000000..9ce42010 --- /dev/null +++ b/Framework/DAML/LayersPropertySheet/LayersPropertySheetViewModel.cs @@ -0,0 +1,96 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAML.LayersPropertySheet +{ + internal class LayersPropertySheetViewModel : Page + { + /// + /// Invoked when the OK or apply button on the property sheet has been clicked. + /// + /// A task that represents the work queued to execute in the ThreadPool. + /// This function is only called if the page has set its IsModified flag to true. + protected override Task CommitAsync() + { + return Task.FromResult(0); + } + + /// + /// Called when the page loads because it has become visible. + /// + /// A task that represents the work queued to execute in the ThreadPool. + protected override Task InitializeAsync() + { + return Task.FromResult(true); + } + + /// + /// Called when the page is destroyed. + /// + protected override void Uninitialize() + { + } + + /// + /// Text shown inside the page hosted by the property sheet + /// + public string DataUIContent + { + get + { + return "Insert UI content here"; + } + set => SetProperty(ref base.Data[0], value); + } + } + + /// + /// Button implementation to show the property sheet. + /// + internal class LayersPropertySheet_ShowButton : Button + { + protected override void OnClick() + { + // collect data to be passed to the page(s) of the property sheet + Object[] data = new object[] { "Page UI content" }; + + if (!PropertySheet.IsVisible) + PropertySheet.ShowDialog("DAML_LayersPropertySheet_LayersPropertySheet", "DAML_LayersPropertySheet_LayersPropertySheet", data); + + } + } +} diff --git a/Framework/DAML/ReadMe.md b/Framework/DAML/ReadMe.md index 307c969b..520ae791 100644 --- a/Framework/DAML/ReadMe.md +++ b/Framework/DAML/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DocToolBoxEmbedding/DocToolBoxEmbedding (C#).md b/Framework/DocToolBoxEmbedding/DocToolBoxEmbedding (C#).md index 48bc08d1..a5e62023 100644 --- a/Framework/DocToolBoxEmbedding/DocToolBoxEmbedding (C#).md +++ b/Framework/DocToolBoxEmbedding/DocToolBoxEmbedding (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DocToolBoxEmbedding/ReadMe.md b/Framework/DocToolBoxEmbedding/ReadMe.md index 48bc08d1..a5e62023 100644 --- a/Framework/DocToolBoxEmbedding/ReadMe.md +++ b/Framework/DocToolBoxEmbedding/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DockPaneBookmarkAdvanced/AdvancedUIDemo (C#).md b/Framework/DockPaneBookmarkAdvanced/AdvancedUIDemo (C#).md index 55ce0ea0..66ac793d 100644 --- a/Framework/DockPaneBookmarkAdvanced/AdvancedUIDemo (C#).md +++ b/Framework/DockPaneBookmarkAdvanced/AdvancedUIDemo (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DockPaneBookmarkAdvanced/ReadMe.md b/Framework/DockPaneBookmarkAdvanced/ReadMe.md index 55ce0ea0..66ac793d 100644 --- a/Framework/DockPaneBookmarkAdvanced/ReadMe.md +++ b/Framework/DockPaneBookmarkAdvanced/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DockpaneSimple/DockpaneSimple (C#).md b/Framework/DockpaneSimple/DockpaneSimple (C#).md index 31d3fe51..58b94482 100644 --- a/Framework/DockpaneSimple/DockpaneSimple (C#).md +++ b/Framework/DockpaneSimple/DockpaneSimple (C#).md @@ -20,8 +20,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DockpaneSimple/DockpaneSimple.csproj b/Framework/DockpaneSimple/DockpaneSimple.csproj index e8add2a5..e035eadf 100644 --- a/Framework/DockpaneSimple/DockpaneSimple.csproj +++ b/Framework/DockpaneSimple/DockpaneSimple.csproj @@ -60,7 +60,6 @@ - diff --git a/Framework/DockpaneSimple/ReadMe.md b/Framework/DockpaneSimple/ReadMe.md index 31d3fe51..58b94482 100644 --- a/Framework/DockpaneSimple/ReadMe.md +++ b/Framework/DockpaneSimple/ReadMe.md @@ -20,8 +20,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DockpaneWithHelp/DockpaneWithHelp (C#).md b/Framework/DockpaneWithHelp/DockpaneWithHelp (C#).md index 7289bc4a..3825794e 100644 --- a/Framework/DockpaneWithHelp/DockpaneWithHelp (C#).md +++ b/Framework/DockpaneWithHelp/DockpaneWithHelp (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DockpaneWithHelp/ReadMe.md b/Framework/DockpaneWithHelp/ReadMe.md index 7289bc4a..3825794e 100644 --- a/Framework/DockpaneWithHelp/ReadMe.md +++ b/Framework/DockpaneWithHelp/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DragAndDrop/DragAndDrop (C#).md b/Framework/DragAndDrop/DragAndDrop (C#).md index f4c663a4..734e80ef 100644 --- a/Framework/DragAndDrop/DragAndDrop (C#).md +++ b/Framework/DragAndDrop/DragAndDrop (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DragAndDrop/ReadMe.md b/Framework/DragAndDrop/ReadMe.md index f4c663a4..734e80ef 100644 --- a/Framework/DragAndDrop/ReadMe.md +++ b/Framework/DragAndDrop/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DynamicMenu/FeatureDynamicMenu (C#).md b/Framework/DynamicMenu/FeatureDynamicMenu (C#).md index e693d2e8..441c1250 100644 --- a/Framework/DynamicMenu/FeatureDynamicMenu (C#).md +++ b/Framework/DynamicMenu/FeatureDynamicMenu (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/DynamicMenu/ReadMe.md b/Framework/DynamicMenu/ReadMe.md index e693d2e8..441c1250 100644 --- a/Framework/DynamicMenu/ReadMe.md +++ b/Framework/DynamicMenu/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Gallery/GalleryDemo (C#).md b/Framework/Gallery/GalleryDemo (C#).md index 1d7f5501..cb6175d3 100644 --- a/Framework/Gallery/GalleryDemo (C#).md +++ b/Framework/Gallery/GalleryDemo (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Gallery/ReadMe.md b/Framework/Gallery/ReadMe.md index 1d7f5501..cb6175d3 100644 --- a/Framework/Gallery/ReadMe.md +++ b/Framework/Gallery/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/GetAddins/GetAddins (C#).md b/Framework/GetAddins/GetAddins (C#).md index b3090ba2..b7792a0f 100644 --- a/Framework/GetAddins/GetAddins (C#).md +++ b/Framework/GetAddins/GetAddins (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/GetAddins/ReadMe.md b/Framework/GetAddins/ReadMe.md index b3090ba2..b7792a0f 100644 --- a/Framework/GetAddins/ReadMe.md +++ b/Framework/GetAddins/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/HookProCommands/HookProCommands (C#).md b/Framework/HookProCommands/HookProCommands (C#).md index 41a72ebf..aa888e32 100644 --- a/Framework/HookProCommands/HookProCommands (C#).md +++ b/Framework/HookProCommands/HookProCommands (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/HookProCommands/ReadMe.md b/Framework/HookProCommands/ReadMe.md index 41a72ebf..aa888e32 100644 --- a/Framework/HookProCommands/ReadMe.md +++ b/Framework/HookProCommands/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/InsertIntoContextMenu/InsertIntoContextMenu (C#).md b/Framework/InsertIntoContextMenu/InsertIntoContextMenu (C#).md index 4b2adfe1..95d77af5 100644 --- a/Framework/InsertIntoContextMenu/InsertIntoContextMenu (C#).md +++ b/Framework/InsertIntoContextMenu/InsertIntoContextMenu (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/InsertIntoContextMenu/ReadMe.md b/Framework/InsertIntoContextMenu/ReadMe.md index 4b2adfe1..95d77af5 100644 --- a/Framework/InsertIntoContextMenu/ReadMe.md +++ b/Framework/InsertIntoContextMenu/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/KeyboardShortcuts/KeyboardShortcuts (C#).md b/Framework/KeyboardShortcuts/KeyboardShortcuts (C#).md index 4f227f30..6218522d 100644 --- a/Framework/KeyboardShortcuts/KeyboardShortcuts (C#).md +++ b/Framework/KeyboardShortcuts/KeyboardShortcuts (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/KeyboardShortcuts/ReadMe.md b/Framework/KeyboardShortcuts/ReadMe.md index 4f227f30..6218522d 100644 --- a/Framework/KeyboardShortcuts/ReadMe.md +++ b/Framework/KeyboardShortcuts/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Licensing/Licensing (C#).md b/Framework/Licensing/Licensing (C#).md index 3fd171f0..b66a1fb5 100644 --- a/Framework/Licensing/Licensing (C#).md +++ b/Framework/Licensing/Licensing (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Licensing/ReadMe.md b/Framework/Licensing/ReadMe.md index 3fd171f0..b66a1fb5 100644 --- a/Framework/Licensing/ReadMe.md +++ b/Framework/Licensing/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Localization/Localization (C#).md b/Framework/Localization/Localization (C#).md index 1d88d4d5..b2c2287b 100644 --- a/Framework/Localization/Localization (C#).md +++ b/Framework/Localization/Localization (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Localization/ReadMe.md b/Framework/Localization/ReadMe.md index 1d88d4d5..b2c2287b 100644 --- a/Framework/Localization/ReadMe.md +++ b/Framework/Localization/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/MapControl/MapControl (C#).md b/Framework/MapControl/MapControl (C#).md index 054e9a38..514798a6 100644 --- a/Framework/MapControl/MapControl (C#).md +++ b/Framework/MapControl/MapControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/MapControl/ReadMe.md b/Framework/MapControl/ReadMe.md index 054e9a38..514798a6 100644 --- a/Framework/MapControl/ReadMe.md +++ b/Framework/MapControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Notifications/Notifications (C#).md b/Framework/Notifications/Notifications (C#).md index f04a3858..ac0988da 100644 --- a/Framework/Notifications/Notifications (C#).md +++ b/Framework/Notifications/Notifications (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/Notifications/ReadMe.md b/Framework/Notifications/ReadMe.md index f04a3858..ac0988da 100644 --- a/Framework/Notifications/ReadMe.md +++ b/Framework/Notifications/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/OpenMapViews/OpenMapViews (C#).md b/Framework/OpenMapViews/OpenMapViews (C#).md index 02e5d4cb..0aa6481a 100644 --- a/Framework/OpenMapViews/OpenMapViews (C#).md +++ b/Framework/OpenMapViews/OpenMapViews (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/OpenMapViews/ReadMe.md b/Framework/OpenMapViews/ReadMe.md index 02e5d4cb..0aa6481a 100644 --- a/Framework/OpenMapViews/ReadMe.md +++ b/Framework/OpenMapViews/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProIcons/ProIcons (C#).md b/Framework/ProIcons/ProIcons (C#).md index 6e2cd68f..4ec3d603 100644 --- a/Framework/ProIcons/ProIcons (C#).md +++ b/Framework/ProIcons/ProIcons (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProIcons/ReadMe.md b/Framework/ProIcons/ReadMe.md index 6e2cd68f..4ec3d603 100644 --- a/Framework/ProIcons/ReadMe.md +++ b/Framework/ProIcons/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProWindowMVVM/ProWindowMVVM (C#).md b/Framework/ProWindowMVVM/ProWindowMVVM (C#).md index 50255f8f..1ceb5d14 100644 --- a/Framework/ProWindowMVVM/ProWindowMVVM (C#).md +++ b/Framework/ProWindowMVVM/ProWindowMVVM (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProWindowMVVM/ReadMe.md b/Framework/ProWindowMVVM/ReadMe.md index 50255f8f..1ceb5d14 100644 --- a/Framework/ProWindowMVVM/ReadMe.md +++ b/Framework/ProWindowMVVM/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProWindowModal/ProWindowModal (C#).md b/Framework/ProWindowModal/ProWindowModal (C#).md index 0c19b9a5..3d445efc 100644 --- a/Framework/ProWindowModal/ProWindowModal (C#).md +++ b/Framework/ProWindowModal/ProWindowModal (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProWindowModal/ReadMe.md b/Framework/ProWindowModal/ReadMe.md index 0c19b9a5..3d445efc 100644 --- a/Framework/ProWindowModal/ReadMe.md +++ b/Framework/ProWindowModal/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProcessProjectFiles/ProcessProjectFiles (C#).md b/Framework/ProcessProjectFiles/ProcessProjectFiles (C#).md index b9b38ad0..c449e6fb 100644 --- a/Framework/ProcessProjectFiles/ProcessProjectFiles (C#).md +++ b/Framework/ProcessProjectFiles/ProcessProjectFiles (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProcessProjectFiles/ReadMe.md b/Framework/ProcessProjectFiles/ReadMe.md index b9b38ad0..c449e6fb 100644 --- a/Framework/ProcessProjectFiles/ReadMe.md +++ b/Framework/ProcessProjectFiles/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProgressDialog/ProgressDialog (C#).md b/Framework/ProgressDialog/ProgressDialog (C#).md index a92b1dc8..055bf756 100644 --- a/Framework/ProgressDialog/ProgressDialog (C#).md +++ b/Framework/ProgressDialog/ProgressDialog (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ProgressDialog/ReadMe.md b/Framework/ProgressDialog/ReadMe.md index a92b1dc8..055bf756 100644 --- a/Framework/ProgressDialog/ReadMe.md +++ b/Framework/ProgressDialog/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/QAReviewTool/Config.daml b/Framework/QAReviewTool/Config.daml index a73feb87..0feb9c55 100644 --- a/Framework/QAReviewTool/Config.daml +++ b/Framework/QAReviewTool/Config.daml @@ -29,20 +29,27 @@ - - + + - - + + - - + + + + + + + + - + - + @@ -50,27 +57,31 @@ - + - - - Tooltip text + + Field name used for the selection query - - Tooltip text + + + Field value used for the selection query in conjunction with Field name - - - - - - - Tooltip text - - - - - - - - diff --git a/Framework/QAReviewTool/EditNoteComboBox.cs b/Framework/QAReviewTool/EditNoteComboBox.cs deleted file mode 100644 index cdd38bb2..00000000 --- a/Framework/QAReviewTool/EditNoteComboBox.cs +++ /dev/null @@ -1,92 +0,0 @@ -/* - - Copyright 2019 Esri - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - limitations under the License. - -*/ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using ArcGIS.Desktop.Framework; -using ArcGIS.Desktop.Framework.Contracts; - - - -namespace QAReviewTool -{ - /// - /// Represents the ComboBox - /// - internal class EditNoteComboBox : ComboBox - { - /// - /// Combo Box constructor - /// - public EditNoteComboBox() - { - Module1.Current.EditNoteComboBox = this; - UpdateCombo(); - } - - internal void AddItem(object comboitem) - { - Add(comboitem); - } - - internal void ClearItems() - { - Clear(); - } - - /// - /// Updates the combo box with all the items. - /// - - private void UpdateCombo() - { - Clear(); - - Enabled = true; //enables the ComboBox - SelectedItem = ItemCollection.FirstOrDefault(); //set the default item in the comboBox - - } - - protected override void OnEnter() - { - Module1.Current.SaveCustomNoteValues(); - } - - ///// - ///// The on comboBox selection change event. - ///// - ///// The newly selected combo box item - //protected override void OnSelectionChange(ComboBoxItem item) - //{ - - // if (item == null) - // return; - - // if (string.IsNullOrEmpty(item.Text)) - // return; - - // // TODO Code behavior when selection changes. - //} - - } -} diff --git a/Framework/QAReviewTool/LayerFieldListComboBox.cs b/Framework/QAReviewTool/LayerFieldListComboBox.cs deleted file mode 100644 index 89e2554b..00000000 --- a/Framework/QAReviewTool/LayerFieldListComboBox.cs +++ /dev/null @@ -1,76 +0,0 @@ -/* - - Copyright 2019 Esri - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - limitations under the License. - -*/ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using ArcGIS.Desktop.Framework; -using ArcGIS.Desktop.Framework.Contracts; - - - -namespace QAReviewTool -{ - /// - /// Represents the ComboBox - /// - internal class LayerFieldListComboBox : ComboBox - { - /// - /// Combo Box constructor - /// - public LayerFieldListComboBox() - { - Module1.Current.LayerFieldComboBox = this; - } - - internal void AddItem(object comboitem) - { - Add(comboitem); - } - - internal void ClearItems() - { - Clear(); - } - - - /// - /// The on comboBox selection change event. - /// - /// The newly selected combo box item - protected override void OnSelectionChange(ComboBoxItem item) - { - - if (item == null) - return; - - if (string.IsNullOrEmpty(item.Text)) - return; - - Module1.Current.RefreshFieldValueComboBox(item.Text); - - - } - - } -} diff --git a/Framework/QAReviewTool/LayerListComboBox.cs b/Framework/QAReviewTool/LayerListComboBox.cs index b7760cd6..6c9d304f 100644 --- a/Framework/QAReviewTool/LayerListComboBox.cs +++ b/Framework/QAReviewTool/LayerListComboBox.cs @@ -31,49 +31,46 @@ limitations under the License. namespace QAReviewTool { + /// + /// Represents the ComboBox + /// + internal class LayerListComboBox : ComboBox + { /// - /// Represents the ComboBox + /// Combo Box constructor /// - internal class LayerListComboBox : ComboBox + public LayerListComboBox() { - /// - /// Combo Box constructor - /// - public LayerListComboBox() - { - Module1.Current.LayerComboBox = this; - } - - internal void AddItem(object comboitem) - { - Add(comboitem); - } - - internal void ClearItems() - { - Clear(); - } - - /// - /// The on comboBox selection change event. - /// - /// The newly selected combo box item - protected override void OnSelectionChange(ComboBoxItem item) - { - - if (item == null) - return; - - if (string.IsNullOrEmpty(item.Text)) - return; - - Module1.Current.ResetTab(); - - // TODO - Set up so when selection changes, all controls on ribbon disable - // until refresh button is pressed. - } + Module1.Current.LayerComboBox = this; + } + + internal void AddItem(object comboitem) + { + Add(comboitem); + } + + internal void ClearItems() + { + Clear(); + } + /// + /// The on comboBox selection change event. + /// + /// The newly selected combo box item + protected override void OnSelectionChange(ComboBoxItem item) + { + + if (item == null) + return; + + if (string.IsNullOrEmpty(item.Text)) + return; + + Module1.Current.LayerComboboxItemSelected = item; } + } + } diff --git a/Framework/QAReviewTool/OpenTableButton.cs b/Framework/QAReviewTool/LayerOpenAttributeTable.cs similarity index 94% rename from Framework/QAReviewTool/OpenTableButton.cs rename to Framework/QAReviewTool/LayerOpenAttributeTable.cs index 3122fa88..6b709b70 100644 --- a/Framework/QAReviewTool/OpenTableButton.cs +++ b/Framework/QAReviewTool/LayerOpenAttributeTable.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class OpenTableButton : Button + internal class LayerOpenAttributeTable : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/LayerRefreshButton.cs b/Framework/QAReviewTool/LayerStartFeatureReview.cs similarity index 88% rename from Framework/QAReviewTool/LayerRefreshButton.cs rename to Framework/QAReviewTool/LayerStartFeatureReview.cs index 43c2e272..a5a6f354 100644 --- a/Framework/QAReviewTool/LayerRefreshButton.cs +++ b/Framework/QAReviewTool/LayerStartFeatureReview.cs @@ -26,14 +26,13 @@ limitations under the License. namespace QAReviewTool { - internal class LayerRefreshButton : Button + internal class LayerStartFeatureReview : Button { protected override void OnClick() { Module1.Current.LayerRefreshClicked(); - FrameworkApplication.State.Activate("active_state_1"); - + FrameworkApplication.State.Activate("LayerSelectedState"); } } } diff --git a/Framework/QAReviewTool/Module1.cs b/Framework/QAReviewTool/Module1.cs index 62422441..0545c3fe 100644 --- a/Framework/QAReviewTool/Module1.cs +++ b/Framework/QAReviewTool/Module1.cs @@ -34,895 +34,938 @@ limitations under the License. using ArcGIS.Desktop.Core.Geoprocessing; using ArcGIS.Desktop.Catalog; using ArcGIS.Desktop.Core; - - +using ArcGIS.Core.Data.DDL; namespace QAReviewTool { - /// - /// This sample provides a set of controls which guide the user through a data quality assurance(QA) review workflow, with tools for visually reviewing and notating datasets based on their accuracy. - /// - /// - /// 1. Download the Community Sample data(see under the 'Resources' section for downloading sample data). Make sure that the Sample dataset is unzipped under c:\data and that the sample data contains the folder C:\Data\QAReviewTool containing a map package named "QA_Review_Tool.ppkx" which is required for this sample. - /// 1. Open this solution in Visual Studio. - /// 1. Click the build menu and select Build Solution. - /// 1. Click the Start button to run the solution. ArcGIS Pro will open. - /// 1. Open the map package "QA_Review_Tool.ppkx" located in the "C:\Data\QAReviewTool" folder.This project contains all required data. Be sure the Topographic basemap layer is displayed. - /// 1. Click on the new "Review" tab provided by the add-in. In the "Layer and Selection" group, click the dropdown button for the "Layer" combobox and select "La_Jolla_Roads". Press the "Refresh Selection" button, which will enable the comboboxes in the "Field Setting" group.Then press the "Open Attribute Table" button and adjust the size of the table to where you can see around 3 or 4 records. - /// ![UI](Screenshot/Screenshot1.png) - /// 1. In the Field Setting group, click on the dropdown button for the "Value Field" and scroll to the bottom of the list and choose the field "review_code". This will populate the "Value" field combobox with the unique data values from the review_code field.It will then zoom to the feature containing the value "1". The forward and backward navigation buttons are now enabled, and you can click on these to zoom to the different records containing other review_code values.Click on "Show Selected Records" in the attribute table to just show the selected record(s). - /// ![UI](Screenshot/Screenshot2.png) - /// 1. In the "Note Field" combobox, choose the "QA_NOTE" from the list of available field names to store your QA notes. It will ask if you would like to add the field to your data, and press "OK" to add it.Check to see that QA_NOTE is added at the end of your attribute table, and is also listed in the Note Field combobox. This step will enable the rest of the controls on the Review tab. - /// ![UI](Screenshot/Screenshot3.png) - /// 1. You are now able to use the enabled Note Shortcuts to apply a brief description to any selected records.Use the "Forward" button to navigate to review_code value 3 and you will see three road features selected. As the Topographic basemap layer does not show a street for these features, change the basemap to Imagery to see verify the data. You will see the features represent the entrance driveway to a building and its parking lot. Press the "Correct" note shortcut button to set the QA review value. - /// ![UI](Screenshot/Screenshot4.png) - /// 1. Next, you can try applying custom notes and managing your edits using the controls in the "Custom Notes" group.You can load a set of custom notes from a textfile and use these in place of the note shortcuts.Press the "Load Note File" button and navigate to the C:\Data\QAReviewTool folder.Click on the file "Custom Notes.txt" and press OK. - /// ![UI](Screenshot/Screenshot5.png) - /// 1. The values will be loaded into the "Note Value" combobox.You can then select from these values and apply them to your current selected records using the "Commit" button.You can also add new values to the note value combobox and save the values to a new note file.Finally, you can use the Undo, Save and Discard buttons to manage your edits. - /// ![UI](Screenshot/Screenshot6.png) - /// - internal class Module1 : Module - { - - private static Module1 _this = null; - - - /// - /// Retrieve the singleton instance to this module here - /// - public static Module1 Current - { - get - { - return _this ?? (_this = (Module1)FrameworkApplication.FindModule("QAReviewTool_Module")); - } - } - - public Module1() - { - ActiveMapViewChangedEvent.Subscribe(OnActiveMapViewChanged); - - } - - #region Event Listening - - private MapView _currentActiveMapView = null; - - private void OnActiveMapViewChanged(ActiveMapViewChangedEventArgs activeMapViewChangedEventArgs) - { - try - { - // We are only interested in the current mapview, when focus changes, we do not refresh if we are still on the current active mapview - if (activeMapViewChangedEventArgs.IncomingView == null) return; - if (activeMapViewChangedEventArgs.IncomingView == _currentActiveMapView) return; - _currentActiveMapView = activeMapViewChangedEventArgs.IncomingView; - - RefreshLayerComboBox(); - ResetTab(); - } - catch (Exception ex) - { - MessageBox.Show("Error in OnActiveMapViewChanged: " + ex.ToString(), "Error"); - } - - - } - - #endregion Event Listening - - - #region Business Logic - - // if true we need to refresh the layer list first - private bool _deferredRefreshOfLayerList = false; - - // These are the participating UI classes - private LayerListComboBox _layerListComboBox; - public LayerListComboBox LayerComboBox - { - get { return _layerListComboBox; } - set - { - _layerListComboBox = value; - if (_deferredRefreshOfLayerList) - { - _deferredRefreshOfLayerList = false; - RefreshLayerComboBox(); - } - } - } - public QAFieldListComboBox QAFieldComboBox { get; set; } - public LayerFieldListComboBox LayerFieldComboBox { get; set; } - public ValueListComboBox FieldValueComboBox { get; set; } - public EditNoteComboBox EditNoteComboBox { get; set; } - - public bool DeferredRefreshOfLayerList - { - get { return _deferredRefreshOfLayerList; } - set { _deferredRefreshOfLayerList = value; } - } - public void ResetTab() - { - - if (!_deferredRefreshOfLayerList) - { - - if (Project.Current.HasEdits) - { - MessageBox.Show("You have ended your current review session. You have unsaved edits."); - } - - // clear the comboboxes - EditNoteComboBox.ClearItems(); - LayerFieldComboBox.ClearItems(); - QAFieldComboBox.ClearItems(); - FieldValueComboBox.ClearItems(); - - // reset states to deactivated - FrameworkApplication.State.Deactivate("active_state_1"); - FrameworkApplication.State.Deactivate("active_state_2"); - FrameworkApplication.State.Deactivate("active_state_3"); - - - } - - } - - - /// - /// This refresh method is called when the active map view changes and therefore the list of layers needs to be refreshed - /// - public void RefreshLayerComboBox() - { - try - { - if (LayerComboBox == null) - { - _deferredRefreshOfLayerList = true; - return; - } - LayerComboBox.ClearItems(); - QueuedTask.Run(() => - { - Map map = MapView.Active.Map; - if (map == null) - return; - - var layers = map.GetLayersAsFlattenedList().OfType(); - bool hasItems = false; - foreach (var lyr in layers) - { - string fc = lyr.Name; - LayerComboBox.AddItem(new ComboBoxItem(fc)); - hasItems = true; - } - if (hasItems) - { - LayerComboBox.Text = "Choose..."; - // LayerComboBox.Text = LayerComboBox.ItemCollection.FirstOrDefault().ToString(); - } - }); - - } - catch (Exception ex) - { - MessageBox.Show("Error in RefreshLayerComboBox: " + ex.ToString(), "Error"); - } - } - /// - /// This method is called when the Layer refresh button is clicked - /// - internal void LayerRefreshClicked() - { - try - { - if (LayerComboBox.Text == null || LayerComboBox.Text == "" || LayerComboBox.Text == "Choose...") - { - MessageBox.Show("First select a layer from the list.", "Select a layer"); - return; - } - // Populate the QA Field combobox with 2 default values - // Either call - RefreshQAFieldComboBox(); - // Populate the Field combobox with the list of fields from the selected layer - RefreshLayerFieldComboBox(); - - ClearValueComboBox(); - } - catch (Exception ex) - { - MessageBox.Show("Error in LayerRefreshClicked: " + ex.ToString(), "Error"); - } - } - - - public void RefreshQAFieldComboBox() - { - try - { - QAFieldComboBox.ClearItems(); - QAFieldComboBox.AddItem(new ComboBoxItem("QA_NOTE")); - QAFieldComboBox.AddItem(new ComboBoxItem("REV_NOTE")); - QAFieldComboBox.Text = "Choose..."; - } - catch (Exception ex) - { - MessageBox.Show("Error in RefreshQAFieldComboBox: " + ex.ToString(), "Error"); - } - } - - private Selection QALayerSelection; - public void RefreshLayerFieldComboBox() - { - try - { - LayerFieldComboBox.ClearItems(); - - QueuedTask.Run(() => - { - var LayerName = LayerComboBox.SelectedItem.ToString(); - // Get all the fields from the selected item in LayerComboBox - // Get the layer in the ComboBox selection - var QALayer = MapView.Active.Map.FindLayers(LayerName).FirstOrDefault() as FeatureLayer; - if (QALayer == null) return; - var FieldsList = QALayer.GetTable().GetDefinition().GetFields(); // as string - - // bool hasItems = false; // Keep empty, as selection of an item populates the values combobox - foreach (var fld in FieldsList) - { - var fldNameString = fld.Name; - if (fldNameString != "Shape") - { - LayerFieldComboBox.AddItem(new ComboBoxItem(fldNameString)); - } - } - - LayerFieldComboBox.Text = "Choose..."; - - // Zoom to either the selected features, or the extent of all layers in the map - var featureLayers = MapView.Active.Map.Layers.OfType().Where((featurelayer) => featurelayer.Name == LayerComboBox.SelectedItem.ToString()); - if (QALayer.SelectionCount == 0) - { - QALayerSelection = QALayer.Select(); // select all features - } - else - { - QALayerSelection = QALayer.GetSelection(); // get current selection - } - //Selection QASelection = QALayer.GetSelection(); - - var selectionSet = QALayerSelection.GetObjectIDs(); - if (QALayerSelection.GetCount() > 0) - { - MapView.Active.ZoomTo(QALayer, selectionSet, TimeSpan.FromSeconds(0)); - MapView.Active.ZoomOutFixed(TimeSpan.FromSeconds(0)); - } - else - { - MapView.Active.ZoomTo(QALayer); - } - }); - } - catch (Exception ex) - { - MessageBox.Show("Error in RefreshLayerFieldComboBox: " + ex.ToString(), "Error"); - } - } - - public void ClearValueComboBox() - { - FieldValueComboBox.ClearItems(); - - - } - - - public void RefreshFieldValueComboBox(string fieldName) - { - try - { - FieldValueComboBox.ClearItems(); - QueuedTask.Run(() => - { - // Get the layer and create a list from all the values - var QALayer = MapView.Active.Map.FindLayers((LayerComboBox.SelectedItem).ToString()).FirstOrDefault() as FeatureLayer; - - if (QALayer == null) return; - - RowCursor QARowCursor = QALayerSelection.Search(); // if there are already selected records, they will be in the RowCursor - - List QALayerCodeList = new List { }; - - using (QARowCursor) - { - while (QARowCursor.MoveNext()) - { - using (Row currentRow = QARowCursor.Current) - { - // QALayerCodeList.Add(Convert.ToString(currentRow[fieldName])); - QALayerCodeList.Add(currentRow[fieldName]); - } - } - } - QALayerCodeList.Sort(); - // Get unique values and counts in the list - foreach (object item in QALayerCodeList.Distinct()) - { - if ((item != null) && (item.ToString() != "")) - { - // add to combobox - FieldValueComboBox.AddItem(new ComboBoxItem((item.ToString()))); - } - } - - - FieldValueComboBox.SelectedItem = FieldValueComboBox.ItemCollection.FirstOrDefault(); - FieldValueComboBox.Text = FieldValueComboBox.ItemCollection.FirstOrDefault().ToString(); - - // Select the recordset by this first value in the list - object selectionvalue = FieldValueComboBox.SelectedItem; - SelectByValue(selectionvalue); - }); - } - catch (Exception ex) - { - MessageBox.Show("Error in RefreshFieldValueComboBox: " + ex.ToString(), "Error"); - } - } - - - public void OpenAttributeTable() - { - try - { - - if (LayerComboBox.SelectedItem == null || LayerComboBox.SelectedItem.ToString() == "") - { - MessageBox.Show("First select a layer from the list.", "Select a layer"); - return; - } - // Get the layer and create a list from all the values - var QALayer = MapView.Active.Map.FindLayers((LayerComboBox.SelectedItem).ToString()).FirstOrDefault() as FeatureLayer; - if (QALayer == null) return; - - FrameworkExtender.OpenTablePane(FrameworkApplication.Panes, QALayer, TableViewMode.eAllRecords); - - } - catch (Exception ex) - { - MessageBox.Show("Error in OpenAttributeTable: " + ex.ToString(), "Error"); - } - } - - public void OnEnterSearchValue() - { - try - { - object selectionvalue = FieldValueComboBox.Text; - SelectByValue(selectionvalue); - } - catch (Exception ex) - { - MessageBox.Show("Error in OnEnterSearchValue: " + ex.ToString(), "Error"); - } - - - } - - public void SelectByValue(object selectionvalue) - { - try - { - QueuedTask.Run(() => - { - // Get the layer and create a list from all the values - - var QALayer = MapView.Active.Map.FindLayers((LayerComboBox.SelectedItem).ToString()).FirstOrDefault() as FeatureLayer; - - if (QALayer == null) return; - - string fieldname = LayerFieldComboBox.SelectedItem.ToString(); - // var field = QALayer.GetTable().GetDefinition().GetFields().find - int qaFieldIndex = QALayer.GetTable().GetDefinition().FindField(fieldname); - var fieldtype = QALayer.GetTable().GetDefinition().GetFields()[qaFieldIndex].FieldType; - - string clause; - if (fieldtype.ToString() == "String") - { - clause = fieldname + " = '" + selectionvalue + "'"; - } - else - { - clause = fieldname + " = " + selectionvalue; - } - - var qf = new QueryFilter - { - WhereClause = clause - }; - - if (QALayerSelection == null || QALayerSelection.GetCount() == 0) { return; } - Selection subselection = QALayerSelection.Select(qf, SelectionOption.Normal); - var subselectionIDs = subselection.GetObjectIDs(); - QALayer.SetSelection(subselection); - if (subselection.GetCount() > 0) - { - MapView.Active.ZoomTo(QALayer, subselectionIDs, TimeSpan.FromSeconds(0)); - MapView.Active.ZoomOutFixed(TimeSpan.FromSeconds(0)); - } - - FrameworkApplication.State.Activate("active_state_2"); - - }); - } - catch (Exception ex) - { - MessageBox.Show("Error in SelectByValue: " + ex.ToString(), "Error"); - } - } - - public void SelectNextValue(bool forwardDirection) - { - try - { - int index = FieldValueComboBox.SelectedIndex; - int lastindex = FieldValueComboBox.ItemCollection.Count - 1; - if (forwardDirection == false) - { - // if current item is the minimum value in itemcollection, then go to the last - if (index == 0) - { - FieldValueComboBox.SelectedIndex = lastindex; - } - else - { - FieldValueComboBox.SelectedIndex = (index - 1); - } - } - if (forwardDirection == true) - { - // if current item is the minimum value in itemcollection, then go to the last - if (index == lastindex) - { - FieldValueComboBox.SelectedIndex = (lastindex - index); - } - else - { - FieldValueComboBox.SelectedIndex = (index + 1); - } - } - } - catch (Exception ex) - { - MessageBox.Show("Error in SelectNextValue: " + ex.ToString(), "Error"); - } - } - - public void AddQAFieldToLayer() - { - try - { - QueuedTask.Run(async () => - { - - if (QAFieldComboBox.Text == null) { return; } - string QAfieldname = QAFieldComboBox.Text.ToString(); - // search the layer for the field, if exists, then confirm use, if not, confirm addition - var LayerName = LayerComboBox.Text.ToString(); - var QALayer = MapView.Active.Map.FindLayers(LayerName).FirstOrDefault() as FeatureLayer; - if (QALayer == null) return; - int qaFieldIndex = QALayer.GetTable().GetDefinition().FindField(QAfieldname); - - if (qaFieldIndex == -1) // field not found - { - - // Prompt for confirmation, and if answer is no, return. - var result = ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Create new field: " + QAfieldname + "?", "CREATE QA FIELD", System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxImage.Asterisk); - // Return if cancel value is chosen - if (Convert.ToString(result) == "Cancel") - { - QAFieldComboBox.Text = "Choose..."; - FrameworkApplication.State.Deactivate("active_state_3"); - return; - } - else - { - - // Check for edits, and if they exist prompt for saving - essential for attribute creation - if (Project.Current.HasEdits) - { - // Prompt for confirmation, and if answer is no, return. - result = MessageBox.Show("Edits must be saved before proceeding. Save edits?", "Save All Edits", System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxImage.Asterisk); - // Return if cancel value is chosen - if (Convert.ToString(result) == "OK") - { - await Project.Current.SaveEditsAsync(); - } - else // operation Canceled - { - MessageBox.Show("Add field Canceled."); - QAFieldComboBox.Text = "Choose..."; - return; - } - - } - - // Add the field - // AddField_management(in_table, field_name, field_type, { field_precision}, { field_scale}, { field_length}, { field_alias}, { field_is_nullable}, { field_is_required}, { field_domain}) - var parameters = Geoprocessing.MakeValueArray(QALayer.GetTable(), QAfieldname, "TEXT"); - var gpResult = await Geoprocessing.ExecuteToolAsync("Management.AddField", parameters); - //Geoprocessing.ShowMessageBox(gpResult.Messages, "GP Messages", - //gpResult.IsFailed ? GPMessageBoxStyle.Error : GPMessageBoxStyle.Default); - if (gpResult.IsFailed == true) - { - MessageBox.Show("New attribute operation failed.", "ERROR"); - } - - // Activate controls - FrameworkApplication.State.Activate("active_state_3"); - if (EditNoteComboBox.ItemCollection.FirstOrDefault() == null || EditNoteComboBox.ItemCollection.FirstOrDefault().ToString() == "") - { - EditNoteComboBox.Text = "Load or add..."; - } - - - } - } - else // field is found - { - // Prompt for confirmation, and if answer is no, return. - var result = MessageBox.Show("The QA Field, " + QAfieldname + " exists. Use it?", "USE QA FIELD", System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxImage.Asterisk); - // Return if cancel value is chosen - if (Convert.ToString(result) == "Cancel") - { - QAFieldComboBox.Text = "Choose..."; - return; - } - else - { - // Leave the field name in the box, and activate controls - FrameworkApplication.State.Activate("active_state_3"); - EditNoteComboBox.Text = "Load or add..."; - } - } - - }); - } - - catch (Exception ex) - { - MessageBox.Show("Error in AddQAFieldToLayer: " + ex.ToString(), "Error"); - } - - } - - - public void EditQANoteFieldValue(string NoteValue) - { - try - { - // Update value of EditNoteComboBox - var qaFieldValue = QAFieldComboBox.Text; - if (qaFieldValue == null || qaFieldValue == "") - { - MessageBox.Show("Choose a note field to store the update.", "Note Field Required"); - return; - } - - QueuedTask.Run(() => - { - if (NoteValue == "QANoteCombo") - { - // Update value of EditNoteComboBox - var qaNoteValue = EditNoteComboBox.Text; - if (qaNoteValue == "Load or add...") { return; } - if (qaNoteValue == null) { NoteValue = ""; } - else { NoteValue = qaNoteValue.ToString(); } - } - - // Get the chosen QA field and set the selected records to the NoteValue - // if selection is empty, present error dialog box - var LayerName = LayerComboBox.Text; - var QANoteFieldName = QAFieldComboBox.Text; - // Get all the fields from the selected item in LayerComboBox - // Get the layer in the ComboBox selection - var QALayer = MapView.Active.Map.FindLayers(LayerName).FirstOrDefault() as FeatureLayer; - if (QALayer == null) { return; } - - // check to make sure that the QA note field exists - string QAfieldname = QAFieldComboBox.Text.ToString(); - if (QAfieldname == "Choose...") - { - MessageBox.Show("Choose a valid note field.", "Choose Note Field"); - return; - } - // check if field exists - int qaFieldIndex = QALayer.GetTable().GetDefinition().FindField(QAfieldname); - if (qaFieldIndex == -1) // field not found - { - MessageBox.Show("The field: " + QAfieldname + ", does not exist. Update your note field choice.", "Error"); - QAFieldComboBox.Text = "Choose..."; - return; - } - - // Get the selection - Selection QASelection = QALayer.GetSelection(); - var selectionSet = QASelection.GetObjectIDs(); - if (QASelection.GetCount() == 0) - { - MessageBox.Show("No selection available for operation.", "Edit Note"); - return; - } - // create an instance of the inspector class - var inspector = new Inspector(); - // load the selected features into the inspector using a list of object IDs - inspector.Load(QALayer, selectionSet); - inspector[QANoteFieldName] = NoteValue; - // apply the changes as an edit operation - var editOp = new EditOperation(); - editOp.Name = "Edit: " + NoteValue; - editOp.Modify(inspector); - bool result = editOp.Execute(); - if (!result) - { - MessageBox.Show("Operation was not added to undo stack."); - } - }); - } - catch (Exception ex) - { - MessageBox.Show("Error in EditQANoteFieldValue: " + ex.ToString(), "Error"); - } - } - - public void SaveCustomNoteValues() - { - // Routine to load and maintain QA Note values within the combobox - try - { - QueuedTask.Run(() => - { - // Get current custom Note value and save to new settings file - // Update value of EditNoteComboBox - var qaNoteValue = EditNoteComboBox.Text; - if (qaNoteValue == null) { return; } - - // Don't add duplicates to the list - string selectedNotevalue; - bool duplicateFound = false; - - for (int i = 0; i < EditNoteComboBox.ItemCollection.Count; i++) - { - EditNoteComboBox.SelectedIndex = i; - selectedNotevalue = EditNoteComboBox.SelectedItem.ToString(); - if (selectedNotevalue == qaNoteValue) { duplicateFound = true; } - } - - if (duplicateFound == false) - { - EditNoteComboBox.AddItem(new ComboBoxItem(qaNoteValue)); - } - - - EditNoteComboBox.Text = qaNoteValue; - EditNoteComboBox.SelectedItem = qaNoteValue; - - }); - - } - - catch (Exception ex) - { - MessageBox.Show("Error in SaveCustomNoteValues: " + ex.ToString(), "Error"); - } - - } - - private bool _dialogPath = false; - public void LoadNoteFile() - { - try - { - // Load the setting with the default path, if there is a setting. - - - // Read a file and load the contents into the Note values combobox - string startLocation; - if (_dialogPath == false) - { - startLocation = System.IO.Path.GetDirectoryName(Project.Current.URI); - } - else - { - startLocation = AppSettings.Default.NoteFilePath; - } - - OpenItemDialog openDialog = new OpenItemDialog() - { - Title = "Select a Note values file to load", - MultiSelect = false, - Filter = ItemFilters.TextFiles, - InitialLocation = startLocation - }; - string savePath; - if (openDialog.ShowDialog() == true) - { - IEnumerable selectedItem = openDialog.Items; - foreach (Item i in selectedItem) - { - System.IO.StreamReader file = new System.IO.StreamReader(i.Path); - string line; - while ((line = file.ReadLine()) != null) - { - EditNoteComboBox.AddItem(new ComboBoxItem(line)); - } - savePath = System.IO.Path.GetDirectoryName(i.Path); - AppSettings.Default.NoteFilePath = savePath; - } - EditNoteComboBox.SelectedItem = EditNoteComboBox.ItemCollection.FirstOrDefault(); - - AppSettings.Default.Save(); - _dialogPath = true; // is now set - } - } - - catch (Exception ex) - { - MessageBox.Show("Error in LoadNoteFile: " + ex.ToString(), "Error"); - } - } - - public void SaveNoteFile() - { - try - { - string startLocation; - if (_dialogPath == false) - { - startLocation = System.IO.Path.GetDirectoryName(Project.Current.URI); - } - else - { - startLocation = AppSettings.Default.NoteFilePath; - } - - string currentNoteValue = EditNoteComboBox.Text; - // Save the values found in the Note values combobox to a file - SaveItemDialog saveDialog = new SaveItemDialog() - { - Title = "Save the Note values to a file", - Filter = ItemFilters.TextFiles, - DefaultExt = "txt", - InitialLocation = startLocation - }; - - if (saveDialog.ShowDialog() == true) - { - // IEnumerable selectedItem = openDialog.Items; - - // If the file is there, open it, or else it will be created - System.IO.StreamWriter writer; - writer = new System.IO.StreamWriter(saveDialog.FilePath, true); - string selectedNotevalue; - for (int i = 0; i < EditNoteComboBox.ItemCollection.Count; i++) - { - EditNoteComboBox.SelectedIndex = i; - selectedNotevalue = EditNoteComboBox.SelectedItem.ToString(); - writer.WriteLine(selectedNotevalue); - } - writer.Close(); - EditNoteComboBox.Text = currentNoteValue; - - string savePath = System.IO.Path.GetDirectoryName(saveDialog.FilePath); - AppSettings.Default.NoteFilePath = savePath; - - AppSettings.Default.Save(); - _dialogPath = true; // is now set - - } - } - - catch (Exception ex) - { - MessageBox.Show("Error in SaveNoteFile: " + ex.ToString(), "Error"); - } - - } - - public void UndoOperation() - { - try - { - // Undo the last operation - var operationMgr = MapView.Active.Map.OperationManager; - if (operationMgr.CanUndo) { operationMgr.UndoAsync(); } - - } - catch (Exception ex) - { - MessageBox.Show("Error in UndoOperation: " + ex.ToString(), "Error"); - } - } - - public void SaveEdits() - { - try - { - var cmdSaveEdits = FrameworkApplication.GetPlugInWrapper("esri_editing_SaveEditsBtn") as ICommand; - if (cmdSaveEdits != null) - { - if (cmdSaveEdits.CanExecute(null)) - { - cmdSaveEdits.Execute(null); - } - - } - } - catch (Exception ex) - { - MessageBox.Show("Error in SaveEdits: " + ex.ToString(), "Error"); - } - - } - - public void DiscardEdits() - { - { - try - { - var cmdSaveEdits = FrameworkApplication.GetPlugInWrapper("esri_editing_DiscardEditsBtn") as ICommand; - if (cmdSaveEdits != null) - { - if (cmdSaveEdits.CanExecute(null)) - { - cmdSaveEdits.Execute(null); - } - - } - } - catch (Exception ex) - { - MessageBox.Show("Error in SaveEdits: " + ex.ToString(), "Error"); - } - - } - - } - - - #endregion - - - #region Overrides - /// - /// Called by Framework when ArcGIS Pro is closing - /// - /// False to prevent Pro from closing, otherwise True - protected override bool CanUnload() - { - - return true; - } - - - - protected override Func ExecuteCommand(string id) - { - - var command = FrameworkApplication.GetPlugInWrapper(id) as ICommand; - if (command == null) - return () => Task.FromResult(0); - if (!command.CanExecute(null)) - return () => Task.FromResult(0); - - return () => - { - command.Execute(null); // if it is a tool, execute will set current tool - return Task.FromResult(0); - }; - } - - #endregion Overrides - - } + /// + /// This sample is a simplified data quality assurance(QA) review workflow. It provides a set of controls guiding an operator through a data quality assurance review workflow to visually inspecting each feature and optionally add a QA notation to the record. + /// + /// + /// 1. Download the Community Sample data(see under the 'Resources' section for downloading sample data). Make sure that the Sample dataset is unzipped under c:\data and that the sample data contains the folder C:\Data\QAReviewTool containing a map package named "QA_Review_Tool.ppkx" which is required for this sample. + /// 1. Open this solution in Visual Studio. + /// 1. Click the build menu and select Build Solution. + /// 1. Click the Start button to run the solution. ArcGIS Pro will open. + /// 1. Open the map package "QA_Review_Tool.ppkx" located in the "C:\Data\QAReviewTool" folder. This project contains all required data. Be sure the Topographic basemap layer is displayed. + /// 1. Click on the "Review" tab provided by the add-in. In the "Review Layer Selection" group, click the dropdown button for the "Layer" combobox and select "La_Jolla_Roads". This is the feature class to be reviewed. Press the "Start Feature Review" button, which enables the comboboxes in the controls in the "Feature Review Field Settings" group. You can also click the "Open Attribute Table" button to view the selected table's attribute table. + /// ![UI](Screenshot/Screenshot1.png) + /// 1. In the "Feature Review Field Settings" group, click on the dropdown button for the "Value Field" and scroll to the bottom of the list and choose the field "review_code". This will populate the "Value" field combobox with the unique data values from the review_code field. It will then zoom to the feature containing the value "1" in the "Value" field. The forward and backward navigation buttons are now enabled, and you can click on these buttons to zoom to the different records containing other review_code values. Click on "Show Selected Records" in the attribute table to just show the selected record(s). + /// ![UI](Screenshot/Screenshot2.png) + /// 1. In the "Note Field" combobox, choose the "QA_NOTE" from the list of available field names to store your QA notes. If the entered field name doesn't exist, the add-in prompts before adding the field to your table. If you chose to add the QA_NOTE field to your schema check the attribute table to verify the addition. The field , and is also listed in the Note Field combobox. This step will enable the rest of the controls on the Review tab. + /// ![UI](Screenshot/Screenshot3.png) + /// 1. You are now able to use the enabled Note Shortcuts to apply a brief description to any selected records.Use the "Forward" button to navigate to review_code value 3 and you will see three road features selected. As the Topographic basemap layer does not show a street for these features, change the basemap to Imagery to see verify the data. You will see the features represent the entrance driveway to a building and its parking lot. Press the "Correct" note shortcut button to set the QA review value. + /// ![UI](Screenshot/Screenshot4.png) + /// 1. Next, you can try applying custom notes and managing your edits using the controls in the "Custom Notes" group.You can load a set of custom notes from a textfile and use these in place of the note shortcuts.Press the "Load Note File" button and navigate to the C:\Data\QAReviewTool folder.Click on the file "Custom Notes.txt" and press OK. + /// ![UI](Screenshot/Screenshot5.png) + /// 1. The values will be loaded into the "Note Text" combobox.You can then select from these values and apply them to your current selected records using the "Save Notation" button.You can also add new values to the Note Text combobox and save the values to a new note file.Finally, you can use the Undo, Save and Discard buttons to manage your edits. + /// ![UI](Screenshot/Screenshot6.png) + /// + internal class Module1 : Module + { + + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current + { + get + { + return _this ?? (_this = (Module1)FrameworkApplication.FindModule("QAReviewTool_Module")); + } + } + + public Module1() + { + // this constructor is getting called at startup of Pro + // in order to load the layer list combobox + // we subscribe to the active mapview changed event which occurs + // when a map view has changed + ActiveMapViewChangedEvent.Subscribe(OnActiveMapViewChanged); + } + + #region Event Listening + + private MapView _currentActiveMapView = null; + + private void OnActiveMapViewChanged(ActiveMapViewChangedEventArgs activeMapViewChangedEventArgs) + { + try + { + // We are only interested in the current mapview, when focus changes, + // we do not refresh if we are still on the current active mapview + if (activeMapViewChangedEventArgs.IncomingView == null) return; + if (activeMapViewChangedEventArgs.IncomingView == _currentActiveMapView) return; + _currentActiveMapView = activeMapViewChangedEventArgs.IncomingView; + + // we now have a new mapview, refresh the layer list combobox + InitializeLayerComboBox(); + } + catch (Exception ex) + { + MessageBox.Show("Error in OnActiveMapViewChanged: " + ex.ToString(), "Error"); + } + } + + #endregion Event Listening + + #region Business Logic: Layer Handling + + // These properties are used by the ribbon controls + private LayerListComboBox _layerListComboBox; + public LayerListComboBox LayerComboBox + { + get { return _layerListComboBox; } + set + { + _layerListComboBox = value; + InitializeLayerComboBox(); + } + } + + // if true the layer list was initialized + private bool _LayerHasBeenDefined = false; + + /// + /// The layer combo box is initialized with the layers in the current map + /// + private void InitializeLayerComboBox() + { + if (_LayerHasBeenDefined) + ClearSession(); + // the UI is not running yet + if (LayerComboBox == null) + return; + LayerComboBox.ClearItems(); + Map map = MapView.Active?.Map; + if (map == null) + return; + + var layers = map.GetLayersAsFlattenedList().OfType(); + bool hasItems = false; + foreach (var lyr in layers) + { + string fc = lyr.Name; + LayerComboBox.AddItem(new ComboBoxItem(fc)); + hasItems = true; + } + if (hasItems) + { + LayerComboBox.Text = "Choose..."; + } + FrameworkApplication.State.Deactivate("CanStartReview"); + _LayerHasBeenDefined = true; + } + + public bool LayerHasBeenInitialized + { + get { return _LayerHasBeenDefined; } + set { _LayerHasBeenDefined = value; } + } + + private ComboBoxItem _LayerComboboxItemSelected; + public ComboBoxItem LayerComboboxItemSelected + { + get + { + return _LayerComboboxItemSelected; + } + internal set + { + _LayerComboboxItemSelected = value; + ClearSession(); + + FrameworkApplication.State.Activate("CanStartReview"); + } + } + + /// + /// If a session was started, clear all the comboboxes and deactivate the states + /// + public void ClearSession() + { + if (LayerHasBeenInitialized) + { + if (Project.Current.HasEdits) + { + MessageBox.Show("You have ended your current review session. You have unsaved edits."); + } + // clear the comboboxes + NotationNoteComboBox.ClearItems(); + LayerFieldComboBox.ClearItems(); + FieldValueComboBox.ClearItems(); + + // reset states to deactivated + FrameworkApplication.State.Deactivate("LayerSelectedState"); + FrameworkApplication.State.Deactivate("CanStartReview"); + FrameworkApplication.State.Deactivate("NavigationQueryDefined"); + FrameworkApplication.State.Deactivate("QANotationDefined"); + + LayerHasBeenInitialized = true; + } + } + + /// + /// This refresh method is called when the active map view changes and therefore the list of layers needs to be refreshed + /// + public void RefreshLayerComboBox() + { + try + { + if (LayerComboBox == null) + { + _LayerHasBeenDefined = true; + return; + } + } + catch (Exception ex) + { + MessageBox.Show("Error in RefreshLayerComboBox: " + ex.ToString(), "Error"); + } + } + + /// + /// This method is called when the Layer refresh button is clicked + /// + internal void LayerRefreshClicked() + { + try + { + if (string.IsNullOrEmpty(LayerComboBox.Text) + || LayerComboBox.Text == "Choose...") + { + MessageBox.Show("First select a layer from the list.", "Select a layer"); + return; + } + // Populate the Field combobox with the list of fields from the selected layer + RefreshLayerFieldComboBox(); + + ClearValueComboBox(); + } + catch (Exception ex) + { + MessageBox.Show("Error in LayerRefreshClicked: " + ex.ToString(), "Error"); + } + } + + public void OpenAttributeTable() + { + try + { + if (LayerComboBox.SelectedItem == null || LayerComboBox.SelectedItem.ToString() == "") + { + MessageBox.Show("First select a layer from the list.", "Select a layer"); + return; + } + // Get the layer and create a list from all the values + var QALayer = MapView.Active.Map.FindLayers((LayerComboBox.SelectedItem).ToString()).FirstOrDefault() as FeatureLayer; + if (QALayer == null) return; + + FrameworkExtender.OpenTablePane(FrameworkApplication.Panes, QALayer, TableViewMode.eAllRecords); + + } + catch (Exception ex) + { + MessageBox.Show("Error in OpenAttributeTable: " + ex.ToString(), "Error"); + } + } + + #endregion Business Logic: Layer Handling + + #region Business Logic: QA Field Handling + + private QAFieldListComboBox _qaFieldComboBox; + public QAFieldListComboBox QAFieldComboBox + { + get + { + return _qaFieldComboBox; + } + set + { + var oldValue = _qaFieldComboBox; + _qaFieldComboBox = value; + if (oldValue == null) + InitializeQAFieldComboBox(); + } + } + + public NavigateFieldNameListCombo LayerFieldComboBox { get; set; } + public NavigateValueListCombo FieldValueComboBox { get; set; } + + public void InitializeQAFieldComboBox() + { + try + { + if (QAFieldComboBox == null || QAFieldComboBox.ItemCollection.Count > 0) + return; + QAFieldComboBox.AddItem(new ComboBoxItem("QA_Notes")); + QAFieldComboBox.AddItem(new ComboBoxItem("ReviewerNotes")); + QAFieldComboBox.AddItem(new ComboBoxItem("QA_NOTE")); + QAFieldComboBox.AddItem(new ComboBoxItem("REV_NOTE")); + } + catch (Exception ex) + { + MessageBox.Show("Error in RefreshQAFieldComboBox: " + ex.ToString(), "Error"); + } + } + + private Selection QALayerSelection; + public void RefreshLayerFieldComboBox() + { + try + { + LayerFieldComboBox.ClearItems(); + QueuedTask.Run(() => + { + var LayerName = LayerComboBox.SelectedItem.ToString(); + // Get all the fields from the selected item in LayerComboBox + // Get the layer in the ComboBox selection + var QALayer = MapView.Active.Map.FindLayers(LayerName).FirstOrDefault() as FeatureLayer; + if (QALayer == null) return; + var FieldsList = QALayer.GetTable().GetDefinition().GetFields(); // as string + // set default to the ObjectID field + ComboBoxItem oidCbItem = null; + foreach (var fld in FieldsList) + { + if (fld.FieldType == FieldType.Geometry) continue; // skip the shape field (geometry) + if (fld.FieldType == FieldType.OID) oidCbItem = new ComboBoxItem(fld.Name); + LayerFieldComboBox.AddItem(new ComboBoxItem(fld.Name)); + } + LayerFieldComboBox.Text = oidCbItem.Text; + + // set the selected set which is then used for navigation + // Zoom to either the selected features, or the extent of all layers in the map + var featureLayers = MapView.Active.Map.Layers.OfType().Where((featurelayer) => featurelayer.Name == LayerComboBox.SelectedItem.ToString()); + QALayerSelection = QALayer.Select(); // select all features + var selectionSet = QALayerSelection.GetObjectIDs(); + if (QALayerSelection.GetCount() > 0) + { + MapView.Active.ZoomTo(QALayer, selectionSet, TimeSpan.FromSeconds(0)); + MapView.Active.ZoomOutFixed(TimeSpan.FromSeconds(0)); + } + else + { + MapView.Active.ZoomTo(QALayer); + } + + if (oidCbItem != null) + LayerFieldComboBox.SelectedItem = oidCbItem; + + }); + } + catch (Exception ex) + { + MessageBox.Show("Error in RefreshLayerFieldComboBox: " + ex.ToString(), "Error"); + } + } + + public void ClearValueComboBox() + { + FieldValueComboBox.ClearItems(); + } + + + /// + /// Populates the FieldValueComboBox with the unique values from the selected field + /// + /// + /// + public async Task RefreshFieldValueComboBoxAsync(string fieldName) + { + try + { + FieldValueComboBox.ClearItems(); + var result = await QueuedTask.Run(() => + { + // Get the layer and create a list from all the values + var QALayer = MapView.Active.Map.FindLayers((LayerComboBox.SelectedItem).ToString()).FirstOrDefault() as FeatureLayer; + if (QALayer == null) return string.Empty; + + // a QA layer was selected -> get the field values too + List QALayerCodeList = new() { }; + RowCursor QARowCursor = QALayerSelection.Search(); + using (QARowCursor) + { + while (QARowCursor.MoveNext()) + { + using Row currentRow = QARowCursor.Current; + QALayerCodeList.Add(currentRow[fieldName]); + } + } + QALayerCodeList.Sort(); + var isEmpty = true; + // Get unique values in the list + foreach (object item in QALayerCodeList.Distinct()) + { + if (item == null) continue; + var str = item.ToString(); + // add to combobox + FieldValueComboBox.AddItem(new ComboBoxItem(str)); + isEmpty = false; + } + if (isEmpty) return string.Empty; + FieldValueComboBox.SelectedItem = FieldValueComboBox.ItemCollection.FirstOrDefault(); + FieldValueComboBox.Text = FieldValueComboBox.ItemCollection.FirstOrDefault().ToString(); + + // Select the recordset by this first value in the list + object selectionvalue = FieldValueComboBox.SelectedItem; + SelectByValue(selectionvalue); + return string.Empty; + }); + return result; + } + catch (Exception ex) + { + return $@"Error in RefreshFieldValueComboBox: {ex.ToString()}"; + } + } + + #endregion Business Logic: QA Field Handling + + #region Business Logic: Navigation Handling + + + public void SelectNextValue(bool forwardDirection) + { + try + { + int index = FieldValueComboBox.SelectedIndex; + int lastindex = FieldValueComboBox.ItemCollection.Count - 1; + if (forwardDirection == false) + { + // if current item is the minimum value in itemcollection, then go to the last + if (index == 0) + { + FieldValueComboBox.SelectedIndex = lastindex; + } + else + { + FieldValueComboBox.SelectedIndex = (index - 1); + } + } + if (forwardDirection == true) + { + // if current item is the minimum value in itemcollection, then go to the last + if (index == lastindex) + { + FieldValueComboBox.SelectedIndex = (lastindex - index); + } + else + { + FieldValueComboBox.SelectedIndex = (index + 1); + } + } + } + catch (Exception ex) + { + MessageBox.Show("Error in SelectNextValue: " + ex.ToString(), "Error"); + } + } + + #endregion Business Logic: Navigation Handling + + #region Business Logic: Edit QA Field Handling + public NotationNoteComboBox NotationNoteComboBox { get; set; } + + public void OnEnterSearchValue() + { + try + { + object selectionvalue = FieldValueComboBox.Text; + SelectByValue(selectionvalue); + } + catch (Exception ex) + { + MessageBox.Show("Error in OnEnterSearchValue: " + ex.ToString(), "Error"); + } + } + + public void SelectByValue(object selectionvalue) + { + try + { + QueuedTask.Run(() => + { + // Get the layer and create a list from all the values + var QALayer = MapView.Active.Map.FindLayers((LayerComboBox.SelectedItem).ToString()).FirstOrDefault() as FeatureLayer; + if (QALayer == null) return; + + string fieldname = LayerFieldComboBox.SelectedItem.ToString(); + var FieldsList = QALayer.GetTable().GetDefinition().GetFields(); + var field = FieldsList.Where((fld) => fld.Name.Equals(fieldname, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); + if (field == null) return; + + var fieldtype = field.FieldType; + + string clause; + if (fieldtype.ToString() == "String") + { + clause = fieldname + " = '" + selectionvalue + "'"; + } + else + { + clause = fieldname + " = " + selectionvalue; + } + + var qf = new QueryFilter + { + WhereClause = clause + }; + + if (QALayerSelection == null || QALayerSelection.GetCount() == 0) { return; } + Selection subselection = QALayerSelection.Select(qf, SelectionOption.Normal); + var subselectionIDs = subselection.GetObjectIDs(); + QALayer.SetSelection(subselection); + if (subselection.GetCount() > 0) + { + MapView.Active.ZoomTo(QALayer, subselectionIDs, TimeSpan.FromSeconds(0)); + MapView.Active.ZoomOutFixed(TimeSpan.FromSeconds(0)); + } + + FrameworkApplication.State.Activate("NavigationQueryDefined"); + + }); + } + catch (Exception ex) + { + MessageBox.Show("Error in SelectByValue: " + ex.ToString(), "Error"); + } + } + + public void AddQAFieldToLayer() + { + try + { + QueuedTask.Run(async () => + { + if (string.IsNullOrEmpty (QAFieldComboBox.Text)) return; + string QAfieldname = QAFieldComboBox.Text.ToString(); + // search the layer for the field, if exists, then confirm use, if not, confirm addition + var LayerName = LayerComboBox.Text.ToString(); + var QALayer = MapView.Active.Map.FindLayers(LayerName).FirstOrDefault() as FeatureLayer; + if (QALayer == null) return; + + var FieldsList = QALayer.GetTable().GetDefinition().GetFields(); + var field = FieldsList.Where((fld) => fld.Name.Equals(QAfieldname, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); + if (field == null) // field not found + { + // Prompt for confirmation, and if answer is no, return. + var result = ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Add new QA notation field: '" + QAfieldname + "'?", "Create QA Notation Field", System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Question); + // Return if cancel value is chosen + if (result == System.Windows.MessageBoxResult.Cancel + || result == System.Windows.MessageBoxResult.Yes) + { + FrameworkApplication.State.Deactivate("QANotationDefined"); + return; + } + else + { + // Check for edits, and if they exist prompt for saving - essential for attribute creation + if (Project.Current.HasEdits) + { + // Prompt for confirmation, and if answer is no, return. + result = MessageBox.Show("Edits must be saved before proceeding. Save edits?", "Save All Edits", System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxImage.Asterisk); + // Return if cancel value is chosen + if (Convert.ToString(result) == "OK") + { + await Project.Current.SaveEditsAsync(); + } + else // operation Canceled + { + MessageBox.Show("Add field Canceled."); + return; + } + } + + // Add the field + // AddField_management(in_table, field_name, field_type, { field_precision}, { field_scale}, { field_length}, { field_alias}, { field_is_nullable}, { field_is_required}, { field_domain}) + var parameters = Geoprocessing.MakeValueArray(QALayer.GetTable(), QAfieldname, "TEXT"); + var gpResult = await Geoprocessing.ExecuteToolAsync("Management.AddField", parameters); + //Geoprocessing.ShowMessageBox(gpResult.Messages, "GP Messages", + //gpResult.IsFailed ? GPMessageBoxStyle.Error : GPMessageBoxStyle.Default); + if (gpResult.IsFailed == true) + { + MessageBox.Show("New attribute operation failed.", "ERROR"); + } + + // Activate controls + FrameworkApplication.State.Activate("QANotationDefined"); + if (NotationNoteComboBox.ItemCollection.FirstOrDefault() == null || NotationNoteComboBox.ItemCollection.FirstOrDefault().ToString() == "") + { + NotationNoteComboBox.Text = "Load or add..."; + } + } + } + else // field is found + { + // Prompt for confirmation, and if answer is no, return. + var result = MessageBox.Show($@"The QA Field, '{QAfieldname}' exists. Use it?", + "Use existing QA Field", + System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Question); + // Return if cancel value is chosen + if (result == System.Windows.MessageBoxResult.Cancel + || result == System.Windows.MessageBoxResult.No) + { + return; + } + else + { + // Leave the field name in the box, and activate controls + FrameworkApplication.State.Activate("QANotationDefined"); + NotationNoteComboBox.Text = "Load or add..."; + } + } + }); + } + catch (Exception ex) + { + MessageBox.Show("Error in AddQAFieldToLayer: " + ex.ToString(), "Error"); + } + } + + private async Task AddFieldToTable (FeatureLayer featureLayer, string newStringFieldName) + { + var result = await QueuedTask.Run(() => + { + var selectedLayerTable = featureLayer.GetTable(); + var stringFieldDescription = new ArcGIS.Core.Data.DDL.FieldDescription(newStringFieldName, FieldType.String); + using var geoDb = selectedLayerTable.GetDatastore() as Geodatabase; + var fcName = selectedLayerTable.GetName(); + try + { + FeatureClassDefinition originalFeatureClassDefinition = geoDb.GetDefinition(fcName); + FeatureClassDescription originalFeatureClassDescription = new FeatureClassDescription(originalFeatureClassDefinition); + + // Assemble a list of all of new field descriptions + var fieldDescriptions = new List() { + stringFieldDescription + }; + // Create a FeatureClassDescription object to describe the feature class to create + var fcDescription = + new FeatureClassDescription(fcName, fieldDescriptions, originalFeatureClassDescription.ShapeDescription); + + // Create a SchemaBuilder object + SchemaBuilder schemaBuilder = new SchemaBuilder(geoDb); + + // Add the modification to the feature class to our list of DDL tasks + schemaBuilder.Modify(fcDescription); + + // Execute the DDL + bool success = schemaBuilder.Build(); + } + catch (Exception ex) + { + return $@"Exception: {ex}"; + } + return string.Empty; + }); + return result; + } + + public void EditQANoteFieldValue(string NoteValue) + { + try + { + // Update value of NotationNoteComboBox + var qaFieldValue = QAFieldComboBox.Text; + if (qaFieldValue == null || qaFieldValue == "") + { + MessageBox.Show("Choose a note field to store the update.", "Note Field Required"); + return; + } + + QueuedTask.Run(() => + { + if (NoteValue == "QANoteCombo") + { + // Update value of NotationNoteComboBox + var qaNoteValue = NotationNoteComboBox.Text; + if (qaNoteValue == "Load or add...") { return; } + if (qaNoteValue == null) { NoteValue = ""; } + else { NoteValue = qaNoteValue.ToString(); } + } + + // Get the chosen QA field and set the selected records to the NoteValue + // if selection is empty, present error dialog box + var LayerName = LayerComboBox.Text; + var QANoteFieldName = QAFieldComboBox.Text; + // Get all the fields from the selected item in LayerComboBox + // Get the layer in the ComboBox selection + var QALayer = MapView.Active.Map.FindLayers(LayerName).FirstOrDefault() as FeatureLayer; + if (QALayer == null) { return; } + + // check to make sure that the QA note field exists + string QAfieldname = QAFieldComboBox.Text.ToString(); + if (string.IsNullOrEmpty (QAfieldname)) + { + MessageBox.Show("Choose a valid note field.", "Choose Note Field"); + return; + } + // check if field exists + + var FieldsList = QALayer.GetTable().GetDefinition().GetFields(); + var field = FieldsList.Where((fld) => fld.Name.Equals(QAfieldname, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); + if (field == null) // field not found + { + MessageBox.Show("The field: " + QAfieldname + ", does not exist. Update your note field choice.", "Error"); + return; + } + + // Get the selection + Selection QASelection = QALayer.GetSelection(); + var selectionSet = QASelection.GetObjectIDs(); + if (QASelection.GetCount() == 0) + { + MessageBox.Show("No selection available for operation.", "Edit Note"); + return; + } + // create an instance of the inspector class + var inspector = new Inspector(); + // load the selected features into the inspector using a list of object IDs + inspector.Load(QALayer, selectionSet); + inspector[QANoteFieldName] = NoteValue; + // apply the changes as an edit operation + var editOp = new EditOperation(); + editOp.Name = "Edit: " + NoteValue; + editOp.Modify(inspector); + bool result = editOp.Execute(); + if (!result) + { + MessageBox.Show("Operation was not added to undo stack."); + } + }); + } + catch (Exception ex) + { + MessageBox.Show("Error in EditQANoteFieldValue: " + ex.ToString(), "Error"); + } + } + + /// + /// The 'Note Text' text is added to + /// + public void AddNewEditNoteValue(string qaNoteValue) + { + // Routine to load and maintain QA Note Texts within the combobox + try + { + if (string.IsNullOrEmpty(qaNoteValue)) return; + // Don't add duplicates to the list + if (NotationNoteComboBox.ItemCollection.Contains(qaNoteValue)) return; + var newComboItem = new ComboBoxItem(qaNoteValue); + NotationNoteComboBox.AddItem(newComboItem); + NotationNoteComboBox.SelectedItem = newComboItem; + } + catch (Exception ex) + { + MessageBox.Show($@"Error in AddNewEditNoteValue: {ex.ToString()}", "Error"); + } + } + + private bool _dialogPath = false; + public void LoadNoteFile() + { + try + { + // Load the setting with the default path, if there is a setting. + // Read a file and load the contents into the Note Texts combobox + string startLocation; + if (_dialogPath == false) + { + startLocation = System.IO.Path.GetDirectoryName(Project.Current.URI); + } + else + { + startLocation = AppSettings.Default.NoteFilePath; + } + OpenItemDialog openDialog = new OpenItemDialog() + { + Title = "Select a Note Texts file to load", + MultiSelect = false, + Filter = ItemFilters.TextFiles, + InitialLocation = startLocation + }; + string savePath; + if (openDialog.ShowDialog() == true) + { + IEnumerable selectedItem = openDialog.Items; + foreach (Item i in selectedItem) + { + System.IO.StreamReader file = new System.IO.StreamReader(i.Path); + string line; + while ((line = file.ReadLine()) != null) + { + NotationNoteComboBox.AddItem(new ComboBoxItem(line)); + } + savePath = System.IO.Path.GetDirectoryName(i.Path); + AppSettings.Default.NoteFilePath = savePath; + } + NotationNoteComboBox.SelectedItem = NotationNoteComboBox.ItemCollection.FirstOrDefault(); + + AppSettings.Default.Save(); + _dialogPath = true; // is now set + } + } + catch (Exception ex) + { + MessageBox.Show("Error in LoadNoteFile: " + ex.ToString(), "Error"); + } + } + + public void SaveNoteFile() + { + try + { + string startLocation; + if (_dialogPath == false) + { + startLocation = System.IO.Path.GetDirectoryName(Project.Current.URI); + } + else + { + startLocation = AppSettings.Default.NoteFilePath; + } + + string currentNoteValue = NotationNoteComboBox.Text; + // Save the values found in the Note Texts combobox to a file + var bpf = new BrowseProjectFilter("esri_browseDialogFilters_textFiles_txt") + { + Name = ".txt file to export 'Note Texts' to", + InitialPath = startLocation + }; + var saveItemDialog = new SaveItemDialog { BrowseFilter = bpf }; + var result = saveItemDialog.ShowDialog(); + if (result.Value == false) return; + var txtFilePath = $@"{saveItemDialog.FilePath}"; + if (!txtFilePath.ToLower().EndsWith(".txt")) txtFilePath += ".txt"; + var folder = System.IO.Path.GetDirectoryName(txtFilePath); + if (!System.IO.Directory.Exists(folder)) + System.IO.Directory.CreateDirectory(folder); + var exists = System.IO.File.Exists(txtFilePath); + if (exists) + { + var isYes = MessageBox.Show($@"The export will write over the existing file {txtFilePath}", "Override File", System.Windows.MessageBoxButton.YesNo); + if (isYes != System.Windows.MessageBoxResult.Yes) return; + System.IO.File.Delete(txtFilePath); + } + // If the file is there, open it, or else it will be created + System.IO.StreamWriter writer; + writer = new System.IO.StreamWriter(txtFilePath); + foreach (var note in NotationNoteComboBox.ItemCollection) + { + writer.WriteLine(note); + } + writer.Close(); + NotationNoteComboBox.Text = currentNoteValue; + + string savePath = System.IO.Path.GetDirectoryName(txtFilePath); + AppSettings.Default.NoteFilePath = savePath; + + AppSettings.Default.Save(); + _dialogPath = true; // is now set + } + catch (Exception ex) + { + MessageBox.Show("Error in SaveNoteFile: " + ex.ToString(), "Error"); + } + + } + + public void UndoOperation() + { + try + { + // Undo the last operation + var operationMgr = MapView.Active.Map.OperationManager; + if (operationMgr.CanUndo) { operationMgr.UndoAsync(); } + + } + catch (Exception ex) + { + MessageBox.Show("Error in UndoOperation: " + ex.ToString(), "Error"); + } + } + + public void SaveEdits() + { + try + { + var cmdSaveEdits = FrameworkApplication.GetPlugInWrapper("esri_editing_SaveEditsBtn") as ICommand; + if (cmdSaveEdits != null) + { + if (cmdSaveEdits.CanExecute(null)) + { + cmdSaveEdits.Execute(null); + } + + } + } + catch (Exception ex) + { + MessageBox.Show("Error in SaveEdits: " + ex.ToString(), "Error"); + } + + } + + public void DiscardEdits() + { + { + try + { + var cmdSaveEdits = FrameworkApplication.GetPlugInWrapper("esri_editing_DiscardEditsBtn") as ICommand; + if (cmdSaveEdits != null) + { + if (cmdSaveEdits.CanExecute(null)) + { + cmdSaveEdits.Execute(null); + } + + } + } + catch (Exception ex) + { + MessageBox.Show("Error in SaveEdits: " + ex.ToString(), "Error"); + } + + } + + } + + + #endregion + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + + return true; + } + + + + protected override Func ExecuteCommand(string id) + { + + var command = FrameworkApplication.GetPlugInWrapper(id) as ICommand; + if (command == null) + return () => Task.FromResult(0); + if (!command.CanExecute(null)) + return () => Task.FromResult(0); + + return () => + { + command.Execute(null); // if it is a tool, execute will set current tool + return Task.FromResult(0); + }; + } + + #endregion Overrides + + } } diff --git a/Framework/QAReviewTool/BackwardButton.cs b/Framework/QAReviewTool/NavigateBackward.cs similarity index 95% rename from Framework/QAReviewTool/BackwardButton.cs rename to Framework/QAReviewTool/NavigateBackward.cs index 303aa710..e38e4272 100644 --- a/Framework/QAReviewTool/BackwardButton.cs +++ b/Framework/QAReviewTool/NavigateBackward.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class BackwardButton : Button + internal class NavigateBackward : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/NavigateFieldNameListCombo.cs b/Framework/QAReviewTool/NavigateFieldNameListCombo.cs new file mode 100644 index 00000000..c7a55154 --- /dev/null +++ b/Framework/QAReviewTool/NavigateFieldNameListCombo.cs @@ -0,0 +1,87 @@ +/* + + Copyright 2019 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; + + + +namespace QAReviewTool +{ + /// + /// Represents the ComboBox + /// + internal class NavigateFieldNameListCombo : ComboBox + { + /// + /// Combo Box constructor + /// + public NavigateFieldNameListCombo() + { + Module1.Current.LayerFieldComboBox = this; + } + + internal void AddItem(object comboitem) + { + Add(comboitem); + } + + internal void ClearItems() + { + Clear(); + } + + private string _previousSelectedFieldName = string.Empty; + + /// + /// The on comboBox selection change event. + /// + /// The newly selected combo box item + protected override async void OnSelectionChange(ComboBoxItem item) + { + if (item == null) + return; + + if (string.IsNullOrEmpty(item.Text)) + { + Module1.Current.FieldValueComboBox.ClearItems(); + return; + } + if (item.Text == _previousSelectedFieldName) + return; + _previousSelectedFieldName = item.Text; + + // only refresh the field value combo box if it is empty + if (Module1.Current.FieldValueComboBox.ItemCollection.Count == 0) + { + var result = await Module1.Current.RefreshFieldValueComboBoxAsync(item.Text); + if (!string.IsNullOrEmpty(result)) + MessageBox.Show(result, "Error occurred", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + } + } + + } +} diff --git a/Framework/QAReviewTool/ForwardButton.cs b/Framework/QAReviewTool/NavigateForward.cs similarity index 95% rename from Framework/QAReviewTool/ForwardButton.cs rename to Framework/QAReviewTool/NavigateForward.cs index 70cf0637..60b0f094 100644 --- a/Framework/QAReviewTool/ForwardButton.cs +++ b/Framework/QAReviewTool/NavigateForward.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class ForwardButton : Button + internal class NavigateForward : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/ValueListComboBox.cs b/Framework/QAReviewTool/NavigateValueListCombo.cs similarity index 95% rename from Framework/QAReviewTool/ValueListComboBox.cs rename to Framework/QAReviewTool/NavigateValueListCombo.cs index 5cf2bf51..c9bafcad 100644 --- a/Framework/QAReviewTool/ValueListComboBox.cs +++ b/Framework/QAReviewTool/NavigateValueListCombo.cs @@ -34,12 +34,12 @@ namespace QAReviewTool /// /// Represents the ComboBox /// - internal class ValueListComboBox : ComboBox + internal class NavigateValueListCombo : ComboBox { /// /// Combo Box constructor /// - public ValueListComboBox() + public NavigateValueListCombo() { Module1.Current.FieldValueComboBox = this; } diff --git a/Framework/QAReviewTool/DiscardEditsButton.cs b/Framework/QAReviewTool/NotationDiscardEdits.cs similarity index 94% rename from Framework/QAReviewTool/DiscardEditsButton.cs rename to Framework/QAReviewTool/NotationDiscardEdits.cs index d4144e39..92d7f163 100644 --- a/Framework/QAReviewTool/DiscardEditsButton.cs +++ b/Framework/QAReviewTool/NotationDiscardEdits.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class DiscardEditsButton : Button + internal class NotationDiscardEdits : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/LoadNoteFileButton.cs b/Framework/QAReviewTool/NotationListLoad.cs similarity index 95% rename from Framework/QAReviewTool/LoadNoteFileButton.cs rename to Framework/QAReviewTool/NotationListLoad.cs index a7d52074..5f9c1ee9 100644 --- a/Framework/QAReviewTool/LoadNoteFileButton.cs +++ b/Framework/QAReviewTool/NotationListLoad.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class LoadNoteFileButton : Button + internal class NotationListLoad : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/SaveNoteFileButton.cs b/Framework/QAReviewTool/NotationListSave.cs similarity index 95% rename from Framework/QAReviewTool/SaveNoteFileButton.cs rename to Framework/QAReviewTool/NotationListSave.cs index 36c921c3..430ffd22 100644 --- a/Framework/QAReviewTool/SaveNoteFileButton.cs +++ b/Framework/QAReviewTool/NotationListSave.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class SaveNoteFileButton : Button + internal class NotationListSave : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/NotationNoteComboBox.cs b/Framework/QAReviewTool/NotationNoteComboBox.cs new file mode 100644 index 00000000..db70f705 --- /dev/null +++ b/Framework/QAReviewTool/NotationNoteComboBox.cs @@ -0,0 +1,71 @@ +/* + + Copyright 2019 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; + +namespace QAReviewTool +{ + /// + /// Represents the ComboBox + /// + internal class NotationNoteComboBox : ComboBox + { + /// + /// Combo Box constructor + /// + public NotationNoteComboBox() + { + Module1.Current.NotationNoteComboBox = this; + UpdateCombo(); + } + + internal void AddItem(object comboitem) + { + Add(comboitem); + } + + internal void ClearItems() + { + Clear(); + } + + /// + /// Updates the combo box with all the items. + /// + + private void UpdateCombo() + { + Clear(); + Enabled = true; //enables the ComboBox + } + + protected override void OnEnter() + { + Module1.Current.AddNewEditNoteValue(this.Text); + } + + } +} diff --git a/Framework/QAReviewTool/SaveEditsButton.cs b/Framework/QAReviewTool/NotationSaveEdits.cs similarity index 95% rename from Framework/QAReviewTool/SaveEditsButton.cs rename to Framework/QAReviewTool/NotationSaveEdits.cs index bedcf690..2832578e 100644 --- a/Framework/QAReviewTool/SaveEditsButton.cs +++ b/Framework/QAReviewTool/NotationSaveEdits.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class SaveEditsButton : Button + internal class NotationSaveEdits : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/EditCorrectButton.cs b/Framework/QAReviewTool/NotationSetNoteToCorrect.cs similarity index 94% rename from Framework/QAReviewTool/EditCorrectButton.cs rename to Framework/QAReviewTool/NotationSetNoteToCorrect.cs index c5e11341..170fe80e 100644 --- a/Framework/QAReviewTool/EditCorrectButton.cs +++ b/Framework/QAReviewTool/NotationSetNoteToCorrect.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class EditCorrectButton : Button + internal class NotationSetNoteToCorrect : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/EditRecheckButton.cs b/Framework/QAReviewTool/NotationSetNoteToRecheck.cs similarity index 94% rename from Framework/QAReviewTool/EditRecheckButton.cs rename to Framework/QAReviewTool/NotationSetNoteToRecheck.cs index d4754ee8..bc517159 100644 --- a/Framework/QAReviewTool/EditRecheckButton.cs +++ b/Framework/QAReviewTool/NotationSetNoteToRecheck.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class EditRecheckButton : Button + internal class NotationSetNoteToRecheck : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/EditWrongButton.cs b/Framework/QAReviewTool/NotationSetNoteToWrong.cs similarity index 94% rename from Framework/QAReviewTool/EditWrongButton.cs rename to Framework/QAReviewTool/NotationSetNoteToWrong.cs index 53f05523..1ef5b54c 100644 --- a/Framework/QAReviewTool/EditWrongButton.cs +++ b/Framework/QAReviewTool/NotationSetNoteToWrong.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class EditWrongButton : Button + internal class NotationSetNoteToWrong : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/EditUndoButton.cs b/Framework/QAReviewTool/NotationUndo.cs similarity index 95% rename from Framework/QAReviewTool/EditUndoButton.cs rename to Framework/QAReviewTool/NotationUndo.cs index e1411f3e..a2bf9f2f 100644 --- a/Framework/QAReviewTool/EditUndoButton.cs +++ b/Framework/QAReviewTool/NotationUndo.cs @@ -26,7 +26,7 @@ limitations under the License. namespace QAReviewTool { - internal class EditUndoButton : Button + internal class NotationUndo : Button { protected override void OnClick() { diff --git a/Framework/QAReviewTool/QAFieldListComboBox.cs b/Framework/QAReviewTool/QAFieldListComboBox.cs index c2dd8bef..6e8915ff 100644 --- a/Framework/QAReviewTool/QAFieldListComboBox.cs +++ b/Framework/QAReviewTool/QAFieldListComboBox.cs @@ -71,23 +71,8 @@ protected override void OnSelectionChange(ComboBoxItem item) return; Module1.Current.AddQAFieldToLayer(); - } - - //protected void OnComboBoxClosed(object sender, EventArgs e) - //{ - // if (item == null) - // return; - - // if (string.IsNullOrEmpty(item.Text)) - // return; - - // Module1.Current.AddQAFieldToLayer(); - //} - - - protected override void OnEnter() { Module1.Current.AddQAFieldToLayer(); diff --git a/Framework/QAReviewTool/QAReviewTool (C#).md b/Framework/QAReviewTool/QAReviewTool (C#).md index abd4bfa5..8b0c1baa 100644 --- a/Framework/QAReviewTool/QAReviewTool (C#).md +++ b/Framework/QAReviewTool/QAReviewTool (C#).md @@ -1,7 +1,7 @@ ## QAReviewTool -This sample provides a set of controls which guide the user through a data quality assurance(QA) review workflow, with tools for visually reviewing and notating datasets based on their accuracy. +This sample is a simplified data quality assurance(QA) review workflow. It provides a set of controls guiding an operator through a data quality assurance review workflow to visually inspecting each feature and optionally add a QA notation to the record. @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` @@ -33,18 +33,18 @@ Visual Studio: 2022 2. Open this solution in Visual Studio. 3. Click the build menu and select Build Solution. 4. Click the Start button to run the solution. ArcGIS Pro will open. -5. Open the map package "QA_Review_Tool.ppkx" located in the "C:\Data\QAReviewTool" folder.This project contains all required data. Be sure the Topographic basemap layer is displayed. -6. Click on the new "Review" tab provided by the add-in. In the "Layer and Selection" group, click the dropdown button for the "Layer" combobox and select "La_Jolla_Roads". Press the "Refresh Selection" button, which will enable the comboboxes in the "Field Setting" group.Then press the "Open Attribute Table" button and adjust the size of the table to where you can see around 3 or 4 records. +5. Open the map package "QA_Review_Tool.ppkx" located in the "C:\Data\QAReviewTool" folder. This project contains all required data. Be sure the Topographic basemap layer is displayed. +6. Click on the "Review" tab provided by the add-in. In the "Review Layer Selection" group, click the dropdown button for the "Layer" combobox and select "La_Jolla_Roads". This is the feature class to be reviewed. Press the "Start Feature Review" button, which enables the comboboxes in the controls in the "Feature Review Field Settings" group. You can also click the "Open Attribute Table" button to view the selected table's attribute table. ![UI](Screenshot/Screenshot1.png) -7. In the Field Setting group, click on the dropdown button for the "Value Field" and scroll to the bottom of the list and choose the field "review_code". This will populate the "Value" field combobox with the unique data values from the review_code field.It will then zoom to the feature containing the value "1". The forward and backward navigation buttons are now enabled, and you can click on these to zoom to the different records containing other review_code values.Click on "Show Selected Records" in the attribute table to just show the selected record(s). +7. In the "Feature Review Field Settings" group, click on the dropdown button for the "Value Field" and scroll to the bottom of the list and choose the field "review_code". This will populate the "Value" field combobox with the unique data values from the review_code field. It will then zoom to the feature containing the value "1" in the "Value" field. The forward and backward navigation buttons are now enabled, and you can click on these buttons to zoom to the different records containing other review_code values. Click on "Show Selected Records" in the attribute table to just show the selected record(s). ![UI](Screenshot/Screenshot2.png) -8. In the "Note Field" combobox, choose the "QA_NOTE" from the list of available field names to store your QA notes. It will ask if you would like to add the field to your data, and press "OK" to add it.Check to see that QA_NOTE is added at the end of your attribute table, and is also listed in the Note Field combobox. This step will enable the rest of the controls on the Review tab. +8. In the "Note Field" combobox, choose the "QA_NOTE" from the list of available field names to store your QA notes. If the entered field name doesn't exist, the add-in prompts before adding the field to your table. If you chose to add the QA_NOTE field to your schema check the attribute table to verify the addition. The field , and is also listed in the Note Field combobox. This step will enable the rest of the controls on the Review tab. ![UI](Screenshot/Screenshot3.png) 9. You are now able to use the enabled Note Shortcuts to apply a brief description to any selected records.Use the "Forward" button to navigate to review_code value 3 and you will see three road features selected. As the Topographic basemap layer does not show a street for these features, change the basemap to Imagery to see verify the data. You will see the features represent the entrance driveway to a building and its parking lot. Press the "Correct" note shortcut button to set the QA review value. ![UI](Screenshot/Screenshot4.png) 10. Next, you can try applying custom notes and managing your edits using the controls in the "Custom Notes" group.You can load a set of custom notes from a textfile and use these in place of the note shortcuts.Press the "Load Note File" button and navigate to the C:\Data\QAReviewTool folder.Click on the file "Custom Notes.txt" and press OK. ![UI](Screenshot/Screenshot5.png) -11. The values will be loaded into the "Note Value" combobox.You can then select from these values and apply them to your current selected records using the "Commit" button.You can also add new values to the note value combobox and save the values to a new note file.Finally, you can use the Undo, Save and Discard buttons to manage your edits. +11. The values will be loaded into the "Note Text" combobox.You can then select from these values and apply them to your current selected records using the "Save Notation" button.You can also add new values to the Note Text combobox and save the values to a new note file.Finally, you can use the Undo, Save and Discard buttons to manage your edits. ![UI](Screenshot/Screenshot6.png) diff --git a/Framework/QAReviewTool/ReadMe.md b/Framework/QAReviewTool/ReadMe.md index abd4bfa5..8b0c1baa 100644 --- a/Framework/QAReviewTool/ReadMe.md +++ b/Framework/QAReviewTool/ReadMe.md @@ -1,7 +1,7 @@ ## QAReviewTool -This sample provides a set of controls which guide the user through a data quality assurance(QA) review workflow, with tools for visually reviewing and notating datasets based on their accuracy. +This sample is a simplified data quality assurance(QA) review workflow. It provides a set of controls guiding an operator through a data quality assurance review workflow to visually inspecting each feature and optionally add a QA notation to the record. @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` @@ -33,18 +33,18 @@ Visual Studio: 2022 2. Open this solution in Visual Studio. 3. Click the build menu and select Build Solution. 4. Click the Start button to run the solution. ArcGIS Pro will open. -5. Open the map package "QA_Review_Tool.ppkx" located in the "C:\Data\QAReviewTool" folder.This project contains all required data. Be sure the Topographic basemap layer is displayed. -6. Click on the new "Review" tab provided by the add-in. In the "Layer and Selection" group, click the dropdown button for the "Layer" combobox and select "La_Jolla_Roads". Press the "Refresh Selection" button, which will enable the comboboxes in the "Field Setting" group.Then press the "Open Attribute Table" button and adjust the size of the table to where you can see around 3 or 4 records. +5. Open the map package "QA_Review_Tool.ppkx" located in the "C:\Data\QAReviewTool" folder. This project contains all required data. Be sure the Topographic basemap layer is displayed. +6. Click on the "Review" tab provided by the add-in. In the "Review Layer Selection" group, click the dropdown button for the "Layer" combobox and select "La_Jolla_Roads". This is the feature class to be reviewed. Press the "Start Feature Review" button, which enables the comboboxes in the controls in the "Feature Review Field Settings" group. You can also click the "Open Attribute Table" button to view the selected table's attribute table. ![UI](Screenshot/Screenshot1.png) -7. In the Field Setting group, click on the dropdown button for the "Value Field" and scroll to the bottom of the list and choose the field "review_code". This will populate the "Value" field combobox with the unique data values from the review_code field.It will then zoom to the feature containing the value "1". The forward and backward navigation buttons are now enabled, and you can click on these to zoom to the different records containing other review_code values.Click on "Show Selected Records" in the attribute table to just show the selected record(s). +7. In the "Feature Review Field Settings" group, click on the dropdown button for the "Value Field" and scroll to the bottom of the list and choose the field "review_code". This will populate the "Value" field combobox with the unique data values from the review_code field. It will then zoom to the feature containing the value "1" in the "Value" field. The forward and backward navigation buttons are now enabled, and you can click on these buttons to zoom to the different records containing other review_code values. Click on "Show Selected Records" in the attribute table to just show the selected record(s). ![UI](Screenshot/Screenshot2.png) -8. In the "Note Field" combobox, choose the "QA_NOTE" from the list of available field names to store your QA notes. It will ask if you would like to add the field to your data, and press "OK" to add it.Check to see that QA_NOTE is added at the end of your attribute table, and is also listed in the Note Field combobox. This step will enable the rest of the controls on the Review tab. +8. In the "Note Field" combobox, choose the "QA_NOTE" from the list of available field names to store your QA notes. If the entered field name doesn't exist, the add-in prompts before adding the field to your table. If you chose to add the QA_NOTE field to your schema check the attribute table to verify the addition. The field , and is also listed in the Note Field combobox. This step will enable the rest of the controls on the Review tab. ![UI](Screenshot/Screenshot3.png) 9. You are now able to use the enabled Note Shortcuts to apply a brief description to any selected records.Use the "Forward" button to navigate to review_code value 3 and you will see three road features selected. As the Topographic basemap layer does not show a street for these features, change the basemap to Imagery to see verify the data. You will see the features represent the entrance driveway to a building and its parking lot. Press the "Correct" note shortcut button to set the QA review value. ![UI](Screenshot/Screenshot4.png) 10. Next, you can try applying custom notes and managing your edits using the controls in the "Custom Notes" group.You can load a set of custom notes from a textfile and use these in place of the note shortcuts.Press the "Load Note File" button and navigate to the C:\Data\QAReviewTool folder.Click on the file "Custom Notes.txt" and press OK. ![UI](Screenshot/Screenshot5.png) -11. The values will be loaded into the "Note Value" combobox.You can then select from these values and apply them to your current selected records using the "Commit" button.You can also add new values to the note value combobox and save the values to a new note file.Finally, you can use the Undo, Save and Discard buttons to manage your edits. +11. The values will be loaded into the "Note Text" combobox.You can then select from these values and apply them to your current selected records using the "Save Notation" button.You can also add new values to the Note Text combobox and save the values to a new note file.Finally, you can use the Undo, Save and Discard buttons to manage your edits. ![UI](Screenshot/Screenshot6.png) diff --git a/Framework/QAReviewTool/Screenshot/Screenshot1.png b/Framework/QAReviewTool/Screenshot/Screenshot1.png index b7c92eb4..9a8e281f 100644 Binary files a/Framework/QAReviewTool/Screenshot/Screenshot1.png and b/Framework/QAReviewTool/Screenshot/Screenshot1.png differ diff --git a/Framework/QAReviewTool/Screenshot/Screenshot2.png b/Framework/QAReviewTool/Screenshot/Screenshot2.png index 8028cb71..c6d624d8 100644 Binary files a/Framework/QAReviewTool/Screenshot/Screenshot2.png and b/Framework/QAReviewTool/Screenshot/Screenshot2.png differ diff --git a/Framework/QAReviewTool/Screenshot/Screenshot3.png b/Framework/QAReviewTool/Screenshot/Screenshot3.png index 44295f6d..37bf54d0 100644 Binary files a/Framework/QAReviewTool/Screenshot/Screenshot3.png and b/Framework/QAReviewTool/Screenshot/Screenshot3.png differ diff --git a/Framework/QAReviewTool/Screenshot/Screenshot4.png b/Framework/QAReviewTool/Screenshot/Screenshot4.png index 7f5b1bbb..3296b749 100644 Binary files a/Framework/QAReviewTool/Screenshot/Screenshot4.png and b/Framework/QAReviewTool/Screenshot/Screenshot4.png differ diff --git a/Framework/QAReviewTool/Screenshot/Screenshot5.png b/Framework/QAReviewTool/Screenshot/Screenshot5.png index 24433c46..ea336671 100644 Binary files a/Framework/QAReviewTool/Screenshot/Screenshot5.png and b/Framework/QAReviewTool/Screenshot/Screenshot5.png differ diff --git a/Framework/QAReviewTool/Screenshot/Screenshot6.png b/Framework/QAReviewTool/Screenshot/Screenshot6.png index 9a5fab84..ff9bf32a 100644 Binary files a/Framework/QAReviewTool/Screenshot/Screenshot6.png and b/Framework/QAReviewTool/Screenshot/Screenshot6.png differ diff --git a/Framework/README.md b/Framework/README.md index 389277f0..1cc16951 100644 --- a/Framework/README.md +++ b/Framework/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Framework -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Framework' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Framework' topic. ## Features diff --git a/Framework/ReferencingArcGISProImages/ReadMe.md b/Framework/ReferencingArcGISProImages/ReadMe.md index 0464f5e5..958bfc14 100644 --- a/Framework/ReferencingArcGISProImages/ReadMe.md +++ b/Framework/ReferencingArcGISProImages/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ReferencingArcGISProImages/ReferencingArcGISProImages (C#).md b/Framework/ReferencingArcGISProImages/ReferencingArcGISProImages (C#).md index 0464f5e5..958bfc14 100644 --- a/Framework/ReferencingArcGISProImages/ReferencingArcGISProImages (C#).md +++ b/Framework/ReferencingArcGISProImages/ReferencingArcGISProImages (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/RemoveAddins/ReadMe.md b/Framework/RemoveAddins/ReadMe.md index 8c27f726..705d1fef 100644 --- a/Framework/RemoveAddins/ReadMe.md +++ b/Framework/RemoveAddins/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/RemoveAddins/RemoveAddins (C#).md b/Framework/RemoveAddins/RemoveAddins (C#).md index 8c27f726..705d1fef 100644 --- a/Framework/RemoveAddins/RemoveAddins (C#).md +++ b/Framework/RemoveAddins/RemoveAddins (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ReusableUserControl/ReadMe.md b/Framework/ReusableUserControl/ReadMe.md index 5fd838f0..f6fd395e 100644 --- a/Framework/ReusableUserControl/ReadMe.md +++ b/Framework/ReusableUserControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ReusableUserControl/ReusableUserControl (C#).md b/Framework/ReusableUserControl/ReusableUserControl (C#).md index 5fd838f0..f6fd395e 100644 --- a/Framework/ReusableUserControl/ReusableUserControl (C#).md +++ b/Framework/ReusableUserControl/ReusableUserControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ReusingProCommands/ReadMe.md b/Framework/ReusingProCommands/ReadMe.md index 844298e9..dbb50026 100644 --- a/Framework/ReusingProCommands/ReadMe.md +++ b/Framework/ReusingProCommands/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/ReusingProCommands/ReusingProCommands (C#).md b/Framework/ReusingProCommands/ReusingProCommands (C#).md index 844298e9..dbb50026 100644 --- a/Framework/ReusingProCommands/ReusingProCommands (C#).md +++ b/Framework/ReusingProCommands/ReusingProCommands (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/RibbonControls/ReadMe.md b/Framework/RibbonControls/ReadMe.md index bb753d56..d4424c06 100644 --- a/Framework/RibbonControls/ReadMe.md +++ b/Framework/RibbonControls/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/RibbonControls/RibbonControls (C#).md b/Framework/RibbonControls/RibbonControls (C#).md index bb753d56..d4424c06 100644 --- a/Framework/RibbonControls/RibbonControls (C#).md +++ b/Framework/RibbonControls/RibbonControls (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/SLR_Analyst/ReadMe.md b/Framework/SLR_Analyst/ReadMe.md index 241959e3..0d77c5d6 100644 --- a/Framework/SLR_Analyst/ReadMe.md +++ b/Framework/SLR_Analyst/ReadMe.md @@ -23,8 +23,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/SLR_Analyst/SLR_Analyst (C#).md b/Framework/SLR_Analyst/SLR_Analyst (C#).md index 241959e3..0d77c5d6 100644 --- a/Framework/SLR_Analyst/SLR_Analyst (C#).md +++ b/Framework/SLR_Analyst/SLR_Analyst (C#).md @@ -23,8 +23,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/UndoRedo/ReadMe.md b/Framework/UndoRedo/ReadMe.md index e5ed421c..5412b90c 100644 --- a/Framework/UndoRedo/ReadMe.md +++ b/Framework/UndoRedo/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/UndoRedo/UndoRedo (C#).md b/Framework/UndoRedo/UndoRedo (C#).md index e5ed421c..5412b90c 100644 --- a/Framework/UndoRedo/UndoRedo (C#).md +++ b/Framework/UndoRedo/UndoRedo (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/WebViewBrowser/ReadMe.md b/Framework/WebViewBrowser/ReadMe.md index 701b6775..35a8f828 100644 --- a/Framework/WebViewBrowser/ReadMe.md +++ b/Framework/WebViewBrowser/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/WebViewBrowser/WebViewBrowser (C#).md b/Framework/WebViewBrowser/WebViewBrowser (C#).md index 701b6775..35a8f828 100644 --- a/Framework/WebViewBrowser/WebViewBrowser (C#).md +++ b/Framework/WebViewBrowser/WebViewBrowser (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/WizardSample/ReadMe.md b/Framework/WizardSample/ReadMe.md index 14a1327c..f81cf9a3 100644 --- a/Framework/WizardSample/ReadMe.md +++ b/Framework/WizardSample/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/WizardSample/WizardSample (C#).md b/Framework/WizardSample/WizardSample (C#).md index 14a1327c..f81cf9a3 100644 --- a/Framework/WizardSample/WizardSample (C#).md +++ b/Framework/WizardSample/WizardSample (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/WorkingWithDAML/ReadMe.md b/Framework/WorkingWithDAML/ReadMe.md index 922e4174..b4f4b89c 100644 --- a/Framework/WorkingWithDAML/ReadMe.md +++ b/Framework/WorkingWithDAML/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/WorkingWithDAML/WorkingWithDAML (C#).md b/Framework/WorkingWithDAML/WorkingWithDAML (C#).md index 922e4174..b4f4b89c 100644 --- a/Framework/WorkingWithDAML/WorkingWithDAML (C#).md +++ b/Framework/WorkingWithDAML/WorkingWithDAML (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/XAML-Icons/ReadMe.md b/Framework/XAML-Icons/ReadMe.md index 445b0716..8099198c 100644 --- a/Framework/XAML-Icons/ReadMe.md +++ b/Framework/XAML-Icons/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Framework/XAML-Icons/XamlIcons (C#).md b/Framework/XAML-Icons/XamlIcons (C#).md index 445b0716..8099198c 100644 --- a/Framework/XAML-Icons/XamlIcons (C#).md +++ b/Framework/XAML-Icons/XamlIcons (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/AddDeleteFieldToFromFeatureClass/AddDeleteFieldToFromFeatureClass (C#).md b/Geodatabase/AddDeleteFieldToFromFeatureClass/AddDeleteFieldToFromFeatureClass (C#).md index 0aaecce6..9e47e45f 100644 --- a/Geodatabase/AddDeleteFieldToFromFeatureClass/AddDeleteFieldToFromFeatureClass (C#).md +++ b/Geodatabase/AddDeleteFieldToFromFeatureClass/AddDeleteFieldToFromFeatureClass (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/AddDeleteFieldToFromFeatureClass/ReadMe.md b/Geodatabase/AddDeleteFieldToFromFeatureClass/ReadMe.md index 0aaecce6..9e47e45f 100644 --- a/Geodatabase/AddDeleteFieldToFromFeatureClass/ReadMe.md +++ b/Geodatabase/AddDeleteFieldToFromFeatureClass/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/CalculateStatistics/CalculateStatistics (C#).md b/Geodatabase/CalculateStatistics/CalculateStatistics (C#).md index 37c29f0a..bc423c33 100644 --- a/Geodatabase/CalculateStatistics/CalculateStatistics (C#).md +++ b/Geodatabase/CalculateStatistics/CalculateStatistics (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/CalculateStatistics/ReadMe.md b/Geodatabase/CalculateStatistics/ReadMe.md index 37c29f0a..bc423c33 100644 --- a/Geodatabase/CalculateStatistics/ReadMe.md +++ b/Geodatabase/CalculateStatistics/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLAddField2FeatureClass/DDLAddField2FeatureClass (C#).md b/Geodatabase/DDLAddField2FeatureClass/DDLAddField2FeatureClass (C#).md index f6275205..25ea5265 100644 --- a/Geodatabase/DDLAddField2FeatureClass/DDLAddField2FeatureClass (C#).md +++ b/Geodatabase/DDLAddField2FeatureClass/DDLAddField2FeatureClass (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLAddField2FeatureClass/ReadMe.md b/Geodatabase/DDLAddField2FeatureClass/ReadMe.md index f6275205..25ea5265 100644 --- a/Geodatabase/DDLAddField2FeatureClass/ReadMe.md +++ b/Geodatabase/DDLAddField2FeatureClass/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLAddRemoveFields/AddRemoveFields (C#).md b/Geodatabase/DDLAddRemoveFields/AddRemoveFields (C#).md index 9aa6182d..79fccfbc 100644 --- a/Geodatabase/DDLAddRemoveFields/AddRemoveFields (C#).md +++ b/Geodatabase/DDLAddRemoveFields/AddRemoveFields (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLAddRemoveFields/ReadMe.md b/Geodatabase/DDLAddRemoveFields/ReadMe.md index 9aa6182d..79fccfbc 100644 --- a/Geodatabase/DDLAddRemoveFields/ReadMe.md +++ b/Geodatabase/DDLAddRemoveFields/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/DDLCreateDeleteAttributeAndSpatialIndexes (C#).md b/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/DDLCreateDeleteAttributeAndSpatialIndexes (C#).md index 660e20f9..3352632c 100644 --- a/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/DDLCreateDeleteAttributeAndSpatialIndexes (C#).md +++ b/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/DDLCreateDeleteAttributeAndSpatialIndexes (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/ReadMe.md b/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/ReadMe.md index 660e20f9..3352632c 100644 --- a/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/ReadMe.md +++ b/Geodatabase/DDLCreateDeleteAttributeAndSpatialIndexes/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/DDLCreateDeleteFeatureClassWithSubtypes (C#).md b/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/DDLCreateDeleteFeatureClassWithSubtypes (C#).md index 5e1cb516..ac2c6dec 100644 --- a/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/DDLCreateDeleteFeatureClassWithSubtypes (C#).md +++ b/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/DDLCreateDeleteFeatureClassWithSubtypes (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/ReadMe.md b/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/ReadMe.md index 5e1cb516..ac2c6dec 100644 --- a/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/ReadMe.md +++ b/Geodatabase/DDLCreateDeleteFeatureClassWithSubtypes/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateDeleteRelationshipClass/DDLCreateDeleteRelationshipClass (C#).md b/Geodatabase/DDLCreateDeleteRelationshipClass/DDLCreateDeleteRelationshipClass (C#).md index 911ae643..cb1e600b 100644 --- a/Geodatabase/DDLCreateDeleteRelationshipClass/DDLCreateDeleteRelationshipClass (C#).md +++ b/Geodatabase/DDLCreateDeleteRelationshipClass/DDLCreateDeleteRelationshipClass (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateDeleteRelationshipClass/ReadMe.md b/Geodatabase/DDLCreateDeleteRelationshipClass/ReadMe.md index 911ae643..cb1e600b 100644 --- a/Geodatabase/DDLCreateDeleteRelationshipClass/ReadMe.md +++ b/Geodatabase/DDLCreateDeleteRelationshipClass/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateFeatureClass/DDLCreateFeatureClass (C#).md b/Geodatabase/DDLCreateFeatureClass/DDLCreateFeatureClass (C#).md index 4630ea59..95a44b6f 100644 --- a/Geodatabase/DDLCreateFeatureClass/DDLCreateFeatureClass (C#).md +++ b/Geodatabase/DDLCreateFeatureClass/DDLCreateFeatureClass (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DDLCreateFeatureClass/ReadMe.md b/Geodatabase/DDLCreateFeatureClass/ReadMe.md index 4630ea59..95a44b6f 100644 --- a/Geodatabase/DDLCreateFeatureClass/ReadMe.md +++ b/Geodatabase/DDLCreateFeatureClass/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DatastoresDefinitionsAndDatasets/DatastoresDefinitionsAndDatasets (C#).md b/Geodatabase/DatastoresDefinitionsAndDatasets/DatastoresDefinitionsAndDatasets (C#).md index c08163fc..2d6055b1 100644 --- a/Geodatabase/DatastoresDefinitionsAndDatasets/DatastoresDefinitionsAndDatasets (C#).md +++ b/Geodatabase/DatastoresDefinitionsAndDatasets/DatastoresDefinitionsAndDatasets (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DatastoresDefinitionsAndDatasets/ReadMe.md b/Geodatabase/DatastoresDefinitionsAndDatasets/ReadMe.md index c08163fc..2d6055b1 100644 --- a/Geodatabase/DatastoresDefinitionsAndDatasets/ReadMe.md +++ b/Geodatabase/DatastoresDefinitionsAndDatasets/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DeleteFeaturesBasedOnSubtype/DeleteFeaturesBasedOnSubtype (C#).md b/Geodatabase/DeleteFeaturesBasedOnSubtype/DeleteFeaturesBasedOnSubtype (C#).md index b2e63005..7844c5d4 100644 --- a/Geodatabase/DeleteFeaturesBasedOnSubtype/DeleteFeaturesBasedOnSubtype (C#).md +++ b/Geodatabase/DeleteFeaturesBasedOnSubtype/DeleteFeaturesBasedOnSubtype (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DeleteFeaturesBasedOnSubtype/ReadMe.md b/Geodatabase/DeleteFeaturesBasedOnSubtype/ReadMe.md index b2e63005..7844c5d4 100644 --- a/Geodatabase/DeleteFeaturesBasedOnSubtype/ReadMe.md +++ b/Geodatabase/DeleteFeaturesBasedOnSubtype/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/DeleteFeaturesBasedOnSubtypeVersioned (C#).md b/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/DeleteFeaturesBasedOnSubtypeVersioned (C#).md index cf7cc3cc..1fd1633e 100644 --- a/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/DeleteFeaturesBasedOnSubtypeVersioned (C#).md +++ b/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/DeleteFeaturesBasedOnSubtypeVersioned (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/ReadMe.md b/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/ReadMe.md index cf7cc3cc..1fd1633e 100644 --- a/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/ReadMe.md +++ b/Geodatabase/DeleteFeaturesBasedOnSubtypeVersioned/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DomainsUsage/DomainsUsage (C#).md b/Geodatabase/DomainsUsage/DomainsUsage (C#).md index 6cb602ad..38d6d340 100644 --- a/Geodatabase/DomainsUsage/DomainsUsage (C#).md +++ b/Geodatabase/DomainsUsage/DomainsUsage (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DomainsUsage/ReadMe.md b/Geodatabase/DomainsUsage/ReadMe.md index 6cb602ad..38d6d340 100644 --- a/Geodatabase/DomainsUsage/ReadMe.md +++ b/Geodatabase/DomainsUsage/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DynamicJoins/DynamicJoins (C#).md b/Geodatabase/DynamicJoins/DynamicJoins (C#).md index be7ca53a..7fd53b23 100644 --- a/Geodatabase/DynamicJoins/DynamicJoins (C#).md +++ b/Geodatabase/DynamicJoins/DynamicJoins (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/DynamicJoins/ReadMe.md b/Geodatabase/DynamicJoins/ReadMe.md index be7ca53a..7fd53b23 100644 --- a/Geodatabase/DynamicJoins/ReadMe.md +++ b/Geodatabase/DynamicJoins/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/FavoriteQueries/FavoriteQueries (C#).md b/Geodatabase/FavoriteQueries/FavoriteQueries (C#).md index 8356cdae..7a4f0e87 100644 --- a/Geodatabase/FavoriteQueries/FavoriteQueries (C#).md +++ b/Geodatabase/FavoriteQueries/FavoriteQueries (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/FavoriteQueries/ReadMe.md b/Geodatabase/FavoriteQueries/ReadMe.md index 8356cdae..7a4f0e87 100644 --- a/Geodatabase/FavoriteQueries/ReadMe.md +++ b/Geodatabase/FavoriteQueries/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/FilterFeaturesBasedOnAttributesWithinAnExtent (C#).md b/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/FilterFeaturesBasedOnAttributesWithinAnExtent (C#).md index 440990a3..4642f873 100644 --- a/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/FilterFeaturesBasedOnAttributesWithinAnExtent (C#).md +++ b/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/FilterFeaturesBasedOnAttributesWithinAnExtent (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/ReadMe.md b/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/ReadMe.md index 440990a3..4642f873 100644 --- a/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/ReadMe.md +++ b/Geodatabase/FilterFeaturesBasedOnAttributesWithinAnExtent/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/LayerGDBInfo/LayerGDBInfo (C#).md b/Geodatabase/LayerGDBInfo/LayerGDBInfo (C#).md index 93887d6e..b583f0f2 100644 --- a/Geodatabase/LayerGDBInfo/LayerGDBInfo (C#).md +++ b/Geodatabase/LayerGDBInfo/LayerGDBInfo (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/LayerGDBInfo/ReadMe.md b/Geodatabase/LayerGDBInfo/ReadMe.md index 93887d6e..b583f0f2 100644 --- a/Geodatabase/LayerGDBInfo/ReadMe.md +++ b/Geodatabase/LayerGDBInfo/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/ListGeodataContent/ListGeodataContent (C#).md b/Geodatabase/ListGeodataContent/ListGeodataContent (C#).md index d92e0739..e286e3a4 100644 --- a/Geodatabase/ListGeodataContent/ListGeodataContent (C#).md +++ b/Geodatabase/ListGeodataContent/ListGeodataContent (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/ListGeodataContent/ReadMe.md b/Geodatabase/ListGeodataContent/ReadMe.md index d92e0739..e286e3a4 100644 --- a/Geodatabase/ListGeodataContent/ReadMe.md +++ b/Geodatabase/ListGeodataContent/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/MemoryGeodatabase/MemoryGeodatabase (C#).md b/Geodatabase/MemoryGeodatabase/MemoryGeodatabase (C#).md index e936fdd8..ec3c0895 100644 --- a/Geodatabase/MemoryGeodatabase/MemoryGeodatabase (C#).md +++ b/Geodatabase/MemoryGeodatabase/MemoryGeodatabase (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/MemoryGeodatabase/ReadMe.md b/Geodatabase/MemoryGeodatabase/ReadMe.md index e936fdd8..ec3c0895 100644 --- a/Geodatabase/MemoryGeodatabase/ReadMe.md +++ b/Geodatabase/MemoryGeodatabase/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/QueryDefDataQuery/QueryDefDataQuery (C#).md b/Geodatabase/QueryDefDataQuery/QueryDefDataQuery (C#).md index 25e42920..929476a3 100644 --- a/Geodatabase/QueryDefDataQuery/QueryDefDataQuery (C#).md +++ b/Geodatabase/QueryDefDataQuery/QueryDefDataQuery (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/QueryDefDataQuery/ReadMe.md b/Geodatabase/QueryDefDataQuery/ReadMe.md index 25e42920..929476a3 100644 --- a/Geodatabase/QueryDefDataQuery/ReadMe.md +++ b/Geodatabase/QueryDefDataQuery/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/README.md b/Geodatabase/README.md index ba326d79..8661ab97 100644 --- a/Geodatabase/README.md +++ b/Geodatabase/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Geodatabase -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Geodatabase' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Geodatabase' topic. ## Features @@ -34,6 +34,7 @@ This folder contains ArcGIS Pro Add-In Samples that fall under the 'Geodatabase' * [QueryDefDataQuery (c#)](../../../tree/master/Geodatabase/QueryDefDataQuery) * [ReplaceAttachments (c#)](../../../tree/master/Geodatabase/ReplaceAttachments) * [ValidateFeatures (c#)](../../../tree/master/Geodatabase/ValidateFeatures) +* [VersionUpdatePerformance (c#)](../../../tree/master/Geodatabase/VersionUpdatePerformance) ## Instructions diff --git a/Geodatabase/ReplaceAttachments/ReadMe.md b/Geodatabase/ReplaceAttachments/ReadMe.md index c6238b30..a65913ca 100644 --- a/Geodatabase/ReplaceAttachments/ReadMe.md +++ b/Geodatabase/ReplaceAttachments/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/ReplaceAttachments/ReplaceAttachments (C#).md b/Geodatabase/ReplaceAttachments/ReplaceAttachments (C#).md index c6238b30..a65913ca 100644 --- a/Geodatabase/ReplaceAttachments/ReplaceAttachments (C#).md +++ b/Geodatabase/ReplaceAttachments/ReplaceAttachments (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/ValidateFeatures/ReadMe.md b/Geodatabase/ValidateFeatures/ReadMe.md index 7d266574..96516989 100644 --- a/Geodatabase/ValidateFeatures/ReadMe.md +++ b/Geodatabase/ValidateFeatures/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/ValidateFeatures/ValidateFeatures (C#).md b/Geodatabase/ValidateFeatures/ValidateFeatures (C#).md index 7d266574..96516989 100644 --- a/Geodatabase/ValidateFeatures/ValidateFeatures (C#).md +++ b/Geodatabase/ValidateFeatures/ValidateFeatures (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geodatabase/VersionUpdatePerformance/Config.daml b/Geodatabase/VersionUpdatePerformance/Config.daml new file mode 100644 index 00000000..3bbd5ef6 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/Config.daml @@ -0,0 +1,64 @@ + + + + + VersionUpdatePerformance + VersionUpdatePerformance description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + esri, https://www.esri.com + 7/31/2024 1:40:25 PM + Framework + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Geodatabase/VersionUpdatePerformance/DarkImages/AddInDesktop16.png b/Geodatabase/VersionUpdatePerformance/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/DarkImages/AddInDesktop16.png differ diff --git a/Geodatabase/VersionUpdatePerformance/DarkImages/AddInDesktop32.png b/Geodatabase/VersionUpdatePerformance/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/DarkImages/AddInDesktop32.png differ diff --git a/Geodatabase/VersionUpdatePerformance/FieldMap.cs b/Geodatabase/VersionUpdatePerformance/FieldMap.cs new file mode 100644 index 00000000..247d92b3 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/FieldMap.cs @@ -0,0 +1,71 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.Data; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace VersionUpdatePerformance +{ + internal class FieldMap + { + /// + /// Create the FieldMap to map from fields to to fields + /// + /// + /// + public FieldMap(FeatureClass fromFc, FeatureClass toFc) + { + var fromFcDef = fromFc.GetDefinition(); + var toFcDef = toFc.GetDefinition(); + var excludeNames = new List + { + fromFcDef.GetShapeField(), + fromFcDef.GetAreaField(), + fromFcDef.GetLengthField(), + fromFcDef.GetObjectIDField(), + fromFcDef.GetGlobalIDField(), + fromFcDef.GetEditorField(), + fromFcDef.GetEditedAtField(), + fromFcDef.GetCreatedAtField(), + fromFcDef.GetCreatorField() + }; + ToShapeName = toFcDef.GetShapeField(); + var fromFields = fromFcDef.GetFields().Select((f) => f.Name); + var toFields = toFcDef.GetFields().Select((f) => f.Name); + foreach (var fromField in fromFields) + { + // exclude shape, area and length + if (excludeNames.Contains(fromField)) continue; + if (toFields.Contains(fromField)) + { + FromToMap.Add((fromField, fromField)); + } + } + } + + public List<(string FromFieldName, string ToFieldName)> FromToMap = []; + + public string ToShapeName { get; set; } + } + +} diff --git a/Geodatabase/VersionUpdatePerformance/Images/AddInDesktop16.png b/Geodatabase/VersionUpdatePerformance/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Images/AddInDesktop16.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Images/AddInDesktop32.png b/Geodatabase/VersionUpdatePerformance/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Images/AddInDesktop32.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Module1.cs b/Geodatabase/VersionUpdatePerformance/Module1.cs new file mode 100644 index 00000000..bebd0927 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/Module1.cs @@ -0,0 +1,88 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace VersionUpdatePerformance +{ + /// + /// This sample exercises the update performance to Enterprise Geodatabases. The updates can be measured against version updates and default version updates. + /// + /// + /// 1. This sample requires an ArcGIS Pro project with a connection file to an Enterprise Geodatabase (.SDE). When running the performance test the test will create a copy of a source feature class, so 'create' level access is required. + /// 1. In Visual Studio click the Build menu. Then select Build Solution. + /// 1. Launch the debugger to open ArcGIS Pro. + /// 1. ArcGIS Pro opens, open an aprx project that allows you to connect to an Enterprise Geodatabase + /// 1. Click on the 'Performance' tab on the ArcGIS Pro ribbon and click the 'Update /w Versions' button to open the 'Version Update' dockpane. + /// 1. Click the 'Select the Feature Class Source' button and select an Enterprise Connection file from on the popup dialog, the select a suitable test Feature Class (note that all features from this feature class will be copied for the performance test). + /// ![UI](Screenshots/Screenshot1.png) + /// 1. Enter a name for a new destination Feature class. The destination will use the source's Enterprise Geodatabase connection and if the destination doesn't exist the schema of the source is used to create the destination Feature Class. + /// ![UI](Screenshots/Screenshot2.png) + /// 1. In order to select a specific version for your test you have to click the 'Version Refresh' first. + /// ![UI](Screenshots/Screenshot3.png) + /// 1. After using the 'Version Refresh' button use the version drop-down to select an existing version to perform the performance test, or enter a new version name to create a new version. + /// ![UI](Screenshots/Screenshot4.png) + /// 1. Click the 'Copy' button to start the performance test. + /// ![UI](Screenshots/Screenshot5.png) + /// 1. Performance Stats are displayed in this text box: + /// ![UI](Screenshots/Screenshot6.png) + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("VersionUpdatePerformance_Module"); + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Geodatabase/VersionUpdatePerformance/Properties/launchSettings.json b/Geodatabase/VersionUpdatePerformance/Properties/launchSettings.json new file mode 100644 index 00000000..00c177cf --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "VersionUpdatePerformance": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Geodatabase/VersionUpdatePerformance/ReadMe.md b/Geodatabase/VersionUpdatePerformance/ReadMe.md new file mode 100644 index 00000000..cc2bf453 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/ReadMe.md @@ -0,0 +1,55 @@ +## VersionUpdatePerformance + + +This sample exercises the update performance to Enterprise Geodatabases. The updates can be measured against version updates and default version updates. + + + +View it live + + +``` +Language: C# +Subject: Framework +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. This sample requires an ArcGIS Pro project with a connection file to an Enterprise Geodatabase (.SDE). When running the performance test the test will create a copy of a source feature class, so 'create' level access is required. +2. In Visual Studio click the Build menu. Then select Build Solution. +3. Launch the debugger to open ArcGIS Pro. +4. ArcGIS Pro opens, open an aprx project that allows you to connect to an Enterprise Geodatabase +5. Click on the 'Performance' tab on the ArcGIS Pro ribbon and click the 'Update /w Versions' button to open the 'Version Update' dockpane. +6. Click the 'Select the Feature Class Source' button and select an Enterprise Connection file from on the popup dialog, the select a suitable test Feature Class (note that all features from this feature class will be copied for the performance test). +![UI](Screenshots/Screenshot1.png) +7. Enter a name for a new destination Feature class. The destination will use the source's Enterprise Geodatabase connection and if the destination doesn't exist the schema of the source is used to create the destination Feature Class. +![UI](Screenshots/Screenshot2.png) +8. In order to select a specific version for your test you have to click the 'Version Refresh' first. +![UI](Screenshots/Screenshot3.png) +9. After using the 'Version Refresh' button use the version drop-down to select an existing version to perform the performance test, or enter a new version name to create a new version. +![UI](Screenshots/Screenshot4.png) +10. Click the 'Copy' button to start the performance test. +![UI](Screenshots/Screenshot5.png) +11. Performance Stats are displayed in this text box: +![UI](Screenshots/Screenshot6.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot1.png b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot1.png new file mode 100644 index 00000000..bd5f48bd Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot1.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot2.png b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot2.png new file mode 100644 index 00000000..02335835 Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot2.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot3.png b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot3.png new file mode 100644 index 00000000..225cbf9b Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot3.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot4.png b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot4.png new file mode 100644 index 00000000..64065628 Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot4.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot5.png b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot5.png new file mode 100644 index 00000000..2bd6806d Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot5.png differ diff --git a/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot6.png b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot6.png new file mode 100644 index 00000000..4562313b Binary files /dev/null and b/Geodatabase/VersionUpdatePerformance/Screenshots/Screenshot6.png differ diff --git a/Geodatabase/VersionUpdatePerformance/VersionUpdate.xaml b/Geodatabase/VersionUpdatePerformance/VersionUpdate.xaml new file mode 100644 index 00000000..bb28d41f --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/VersionUpdate.xaml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Geodatabase/VersionUpdatePerformance/VersionUpdate.xaml.cs b/Geodatabase/VersionUpdatePerformance/VersionUpdate.xaml.cs new file mode 100644 index 00000000..ae110682 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/VersionUpdate.xaml.cs @@ -0,0 +1,47 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + + +namespace VersionUpdatePerformance +{ + /// + /// Interaction logic for VersionUpdateView.xaml + /// + public partial class VersionUpdateView : UserControl + { + public VersionUpdateView() + { + InitializeComponent(); + } + } +} diff --git a/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance (C#).md b/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance (C#).md new file mode 100644 index 00000000..cc2bf453 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance (C#).md @@ -0,0 +1,55 @@ +## VersionUpdatePerformance + + +This sample exercises the update performance to Enterprise Geodatabases. The updates can be measured against version updates and default version updates. + + + +View it live + + +``` +Language: C# +Subject: Framework +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. This sample requires an ArcGIS Pro project with a connection file to an Enterprise Geodatabase (.SDE). When running the performance test the test will create a copy of a source feature class, so 'create' level access is required. +2. In Visual Studio click the Build menu. Then select Build Solution. +3. Launch the debugger to open ArcGIS Pro. +4. ArcGIS Pro opens, open an aprx project that allows you to connect to an Enterprise Geodatabase +5. Click on the 'Performance' tab on the ArcGIS Pro ribbon and click the 'Update /w Versions' button to open the 'Version Update' dockpane. +6. Click the 'Select the Feature Class Source' button and select an Enterprise Connection file from on the popup dialog, the select a suitable test Feature Class (note that all features from this feature class will be copied for the performance test). +![UI](Screenshots/Screenshot1.png) +7. Enter a name for a new destination Feature class. The destination will use the source's Enterprise Geodatabase connection and if the destination doesn't exist the schema of the source is used to create the destination Feature Class. +![UI](Screenshots/Screenshot2.png) +8. In order to select a specific version for your test you have to click the 'Version Refresh' first. +![UI](Screenshots/Screenshot3.png) +9. After using the 'Version Refresh' button use the version drop-down to select an existing version to perform the performance test, or enter a new version name to create a new version. +![UI](Screenshots/Screenshot4.png) +10. Click the 'Copy' button to start the performance test. +![UI](Screenshots/Screenshot5.png) +11. Performance Stats are displayed in this text box: +![UI](Screenshots/Screenshot6.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance.csproj b/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance.csproj new file mode 100644 index 00000000..4d2472d6 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance.csproj @@ -0,0 +1,105 @@ + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\GeoProcessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + diff --git a/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance.sln b/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance.sln new file mode 100644 index 00000000..cc5d1db8 --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/VersionUpdatePerformance.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35122.118 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersionUpdatePerformance", "VersionUpdatePerformance.csproj", "{2536507A-CF3E-4CAE-B0FB-25FC406F55EC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2536507A-CF3E-4CAE-B0FB-25FC406F55EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2536507A-CF3E-4CAE-B0FB-25FC406F55EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2536507A-CF3E-4CAE-B0FB-25FC406F55EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2536507A-CF3E-4CAE-B0FB-25FC406F55EC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {585D1522-0CE7-4737-B9E1-B40D70D7FE56} + EndGlobalSection +EndGlobal diff --git a/Geodatabase/VersionUpdatePerformance/VersionUpdateViewModel.cs b/Geodatabase/VersionUpdatePerformance/VersionUpdateViewModel.cs new file mode 100644 index 00000000..753807ce --- /dev/null +++ b/Geodatabase/VersionUpdatePerformance/VersionUpdateViewModel.cs @@ -0,0 +1,582 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ActiproSoftware.Windows.Extensions; +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Data.DDL; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace VersionUpdatePerformance +{ + internal class VersionUpdateViewModel : DockPane + { + private const string _dockPaneID = "VersionUpdatePerformance_VersionUpdate"; + private string _nl = Environment.NewLine; + + private (bool IsSDE, bool IsFileGdb) SourceGdbType; + private (bool IsSDE, bool IsFileGdb) DestGdbType; + + protected VersionUpdateViewModel() + { + System.Windows.Data.BindingOperations.EnableCollectionSynchronization(_versions, _lock); + } + + #region Feature Class input/output + + private string _fcSource; + public string FcSource + { + get { return _fcSource; } + set + { + SetProperty(ref _fcSource, value, () => FcSource); + } + } + + private string _fcDestination; + public string FcDestination + { + get { return _fcDestination; } + set + { + SetProperty(ref _fcDestination, value, () => FcDestination); + } + } + + private string _status; + public string Status + { + get { return _status; } + set + { + SetProperty(ref _status, value, () => Status); + } + } + + private ObservableCollection _versions = []; + private object _lock = new(); + public ObservableCollection Versions + { + get => _versions; + } + + private string _selectedVersion; + public string SelectedVersion + { + get => _selectedVersion; + set + { + SetProperty(ref _selectedVersion, value); + } + } + + public ICommand CmdUpdateDestinationFc + { + get + { + return new RelayCommand(() => { + OpenItemDialog openFc = new() + { + Title = "Select Destination Feature Class", + InitialLocation = @"C:\Data", + MultiSelect = false, + //Use BrowseFilter property to specify the filter + //you want the dialog to display + BrowseFilter = BrowseProjectFilter.GetFilter("esri_browseDialogFilters_geodatabaseItems_featureClasses") + }; + bool? ok = openFc.ShowDialog(); + if (ok.HasValue && ok.Value && openFc.Items.Count > 0) + { + foreach (Item itm in openFc.Items) + { + FcDestination = itm.Path; + break; + } + } + }, true); + } + } + + public ICommand CmdUpdateSourceFc + { + get + { + return new RelayCommand(() => { + OpenItemDialog openFc = new () + { + Title = "Select Source Feature Class", + InitialLocation = @"C:\Data", + MultiSelect = false, + //Use BrowseFilter property to specify the filter + //you want the dialog to display + BrowseFilter = BrowseProjectFilter.GetFilter("esri_browseDialogFilters_geodatabaseItems_featureClasses") + }; + bool? ok = openFc.ShowDialog(); + if (ok.HasValue && ok.Value && openFc.Items.Count() > 0) + { + foreach (Item itm in openFc.Items) + { + FcSource = itm.Path; + break; + } + } + }, true); + } + } + + public ICommand CmdRefreshDestinationFc + { + get + { + return new RelayCommand(async () => + { + try + { + StringBuilder sb = new(); + Versions.Clear(); + // step 1: parse input values: FcSource and FcDest + var sourceGdbPath = string.Empty; + var sourceFcName = string.Empty; + var destGdbPath = string.Empty; + var destFcName = string.Empty; + var singleGDB = false; + sb.Append(ParseInput(out singleGDB, + out sourceGdbPath, out sourceFcName, + out destGdbPath, out destFcName)); + Status = sb.ToString(); + if (DestGdbType.IsSDE) + { + var versionLst = await QueuedTask.Run>(() => + { + // open the source feature class + using Geodatabase geodatabase = new(new DatabaseConnectionFile(new Uri(destGdbPath, UriKind.Absolute))); + return GetVersions(geodatabase); + }); + Versions.AddRange(versionLst); + if (Versions.Count > 0) + { + SelectedVersion = Versions[0]; + } + } + } + catch (Exception ex) + { + MessageBox.Show($@"Error trying to get versions: {ex}"); + } + }); + } + } + + public ICommand CmdCopy + { + get + { + return new RelayCommand(async () => + { + StringBuilder sb = new(); + try + { + // step 1: parse input values: FcSource and FcDest + var sourceGdbPath = string.Empty; + var sourceFcName = string.Empty; + var destGdbPath = string.Empty; + var destFcName = string.Empty; + var createNewFeatureClass = false; + sb.Append(ParseInput(out createNewFeatureClass, + out sourceGdbPath, out sourceFcName, + out destGdbPath, out destFcName)); + Status = sb.ToString(); + // Step 2: Check is Gdbs existing and create destination F/C if it doesn't exist + var prepResult = await QueuedTask.Run<(bool isOk, string msg)>(() => + { + FeatureClass sourceFc = null; + FeatureClass destFc = null; + // open the source feature class + using Geodatabase geodatabase = SourceGdbType.IsFileGdb ? + new(new FileGeodatabaseConnectionPath(new Uri(sourceGdbPath, UriKind.Absolute))) + : new(new DatabaseConnectionFile(new Uri(sourceGdbPath, UriKind.Absolute))); + sourceFc = geodatabase.OpenDataset(sourceFcName); + // open the Dest feature class + // open a file geodatabase + using Geodatabase destGeodatabase = DestGdbType.IsFileGdb ? + new(new FileGeodatabaseConnectionPath(new Uri(destGdbPath, UriKind.Absolute))) + : new(new DatabaseConnectionFile(new Uri(destGdbPath, UriKind.Absolute))); + try + { + destFc = destGeodatabase.OpenDataset(destFcName); + createNewFeatureClass = destFc == null; + } + catch + { + createNewFeatureClass = true; + } + if (createNewFeatureClass) + { + var newFcName = destFcName; + sb.AppendLine($@"Created new F/C: {newFcName}"); + // create the destination GDB F/C + destFc = null; + FeatureClassDefinition fcDef = sourceFc.GetDefinition(); + List fieldDescriptions = new(); + foreach (var field in fcDef.GetFields()) + { + if (field.FieldType != FieldType.Geometry + && !field.ModelName.StartsWith("Shape.")) + fieldDescriptions.Add(new ArcGIS.Core.Data.DDL.FieldDescription(field)); + } + // Create a TableDescription object to describe the table to create + FeatureClassDescription featureClassDescription = new(newFcName, + fieldDescriptions, + new ShapeDescription(fcDef)); + // Create a SchemaBuilder object + SchemaBuilder schemaBuilder = new(destGeodatabase); + // Add the creation of PoleInspection to our list of DDL tasks + schemaBuilder.Create(featureClassDescription); + // Execute the DDL + bool success = schemaBuilder.Build(); + return (success, string.Join(",", schemaBuilder.ErrorMessages)); + } + return (true, string.Empty); + }); + Status = sb.ToString(); + if (!prepResult.isOk) + { + MessageBox.Show($@"Failed to create {destFcName} {prepResult.msg} "); + return; + } + // Step 3: now copy the data to the correct version + // if the version doesn't exist then the version is created + await QueuedTask.Run(() => + { + using Geodatabase sourceGdb = SourceGdbType.IsFileGdb ? + new(new FileGeodatabaseConnectionPath(new Uri(sourceGdbPath, UriKind.Absolute))) + : new(new DatabaseConnectionFile(new Uri(sourceGdbPath, UriKind.Absolute))); + var sourceFc = sourceGdb.OpenDataset(sourceFcName); + Geodatabase destGdb = DestGdbType.IsFileGdb ? + new(new FileGeodatabaseConnectionPath(new Uri(destGdbPath, UriKind.Absolute))) + : new(new DatabaseConnectionFile(new Uri(destGdbPath, UriKind.Absolute))); + if (DestGdbType.IsSDE) + { + var versionGdb = ConnectToVersion(destGdb, SelectedVersion); + if (versionGdb == null) + { + // create the version + var newVersion = CreateVersion(destGdb, SelectedVersion, $@"Perf test: {DateTime.Now.ToShortTimeString}", VersionAccessType.Public); + destGdb = ConnectToVersion(destGdb, SelectedVersion); + } + else + { + // use the verisonGdb + destGdb = versionGdb; + } + } + var destFc = destGdb.OpenDataset(destFcName); + + FieldMap fieldMap = new(sourceFc, destFc); + + var timer = new Stopwatch(); + timer.Start(); + using var rowCursor = sourceFc.Search(); + timer.Stop(); + TimeSpan timeTaken = timer.Elapsed; + sb.AppendLine($@"Search: {timeTaken}"); + timer.Restart(); + uint recordCnt = 0; + destGdb.ApplyEdits(() => + { + while (rowCursor.MoveNext()) + { + using var feature = rowCursor.Current as Feature; + using RowBuffer rowBuffer = destFc.CreateRowBuffer(); + // use the fieldMap to copy attributes in addition to Geometry + rowBuffer[fieldMap.ToShapeName] = feature.GetShape().Clone(); + foreach (var fldMap in fieldMap.FromToMap) + { + rowBuffer[fldMap.ToFieldName] = feature[fldMap.FromFieldName]; + } + destFc.CreateRow(rowBuffer); + recordCnt++; + } + }); + timer.Stop(); + timeTaken = timer.Elapsed; + sb.AppendLine($@"Cursor: {timeTaken.TotalMilliseconds} msec"); + sb.AppendLine($@"Records: {recordCnt}"); + if (recordCnt > 0) + { + var dblMs = Convert.ToDouble(timeTaken.TotalMilliseconds); + var dblCnt = Convert.ToDouble(recordCnt); + sb.AppendLine($@"Per record: {dblMs / dblCnt} msec"); + } + }); + Status = sb.ToString(); + // Step 4: add the new FeatureClass to the map + var newLyr = await QueuedTask.Run(() => + { + var lyrName = $@"New: {destFcName}"; + // does the layer exist? + if (MapView.Active != null + && MapView.Active.Map.GetLayersAsFlattenedList().OfType().FirstOrDefault(layer => layer.Name.Equals(lyrName)) == null) + { + Geodatabase destGdb = DestGdbType.IsFileGdb ? + new(new FileGeodatabaseConnectionPath(new Uri(destGdbPath, UriKind.Absolute))) + : new(new DatabaseConnectionFile(new Uri(destGdbPath, UriKind.Absolute))); + if (DestGdbType.IsSDE) + { + var versionGdb = ConnectToVersion(destGdb, SelectedVersion); + if (versionGdb == null) + { + // create the version + var newVersion = CreateVersion(destGdb, SelectedVersion, $@"Perf test: {DateTime.Now.ToShortTimeString}", VersionAccessType.Public); + destGdb = ConnectToVersion(destGdb, SelectedVersion); + } + else + { + // use the verisonGdb + destGdb = versionGdb; + } + } + var newFc = destGdb.OpenDataset(destFcName); + return LayerFactory.Instance.CreateLayer(new FeatureLayerCreationParams(newFc) { Name = lyrName }, MapView.Active.Map); + } + return null; + }); + } + catch (Exception ex) + { + sb.AppendLine(ex.ToString()); + } + Status = sb.ToString(); + }, true); + } + } + + private string ParseInput( + out bool singleGDB, + out string sourceGdbPath, + out string sourceFcName, + out string destGdbPath, + out string destFcName) + { + singleGDB = false; + StringBuilder sb = new(); + SourceGdbType = ParseGeoDatabasePath(FcSource, out sourceGdbPath, out sourceFcName); + if (!SourceGdbType.IsFileGdb && !SourceGdbType.IsSDE) + { + sb.AppendLine($@"Unable to parse source Path:{_nl}{FcSource}"); + } + else + { + sb.AppendLine($@"Source Gdb:{_nl}{sourceGdbPath}{_nl}{sourceFcName}"); + } + destGdbPath = string.Empty; + destFcName = string.Empty; + DestGdbType = ParseGeoDatabasePath(FcDestination, out destGdbPath, out destFcName); + if (!DestGdbType.IsSDE && !DestGdbType.IsFileGdb) + { + var newDest = $@"{sourceGdbPath}\{FcDestination}"; + DestGdbType = ParseGeoDatabasePath(newDest, out destGdbPath, out destFcName); + if (!DestGdbType.IsSDE && !DestGdbType.IsFileGdb) + { + sb.AppendLine($@"Unable to parse destination Path:{_nl}{FcDestination}"); + destFcName = FcDestination; + sb.AppendLine($@"Create destination F/C:{_nl}{FcDestination}"); + } + else + { + destGdbPath = sourceGdbPath; + singleGDB = true; + sb.AppendLine($@"Destination Gdb:{_nl}{destGdbPath}{_nl}{destFcName}"); + } + } + else + { + sb.AppendLine($@"Destination Gdb:{_nl}{destGdbPath}{_nl}{destFcName}"); + } + return sb.ToString(); + } + + #endregion Feature Class input/output + + #region Button Images loaded from Pro + + public System.Windows.Media.ImageSource SourceImg + { + get { return System.Windows.Application.Current.Resources["AddBathymetryDataset32"] as System.Windows.Media.ImageSource; } + } + + public System.Windows.Media.ImageSource DestinationImg + { + get { return System.Windows.Application.Current.Resources["SaveMetadataGDB32"] as System.Windows.Media.ImageSource; } + } + + public System.Windows.Media.ImageSource CopyImg + { + get { return System.Windows.Application.Current.Resources["SelectionCopySelectedFeatures32"] as System.Windows.Media.ImageSource; } + } + + public System.Windows.Media.ImageSource RefreshDestinationImg + { + get { return System.Windows.Application.Current.Resources["MapSeriesRefresh16"] as System.Windows.Media.ImageSource; } + } + + #endregion + + /// + /// Parse a geodatabase path into GeoDatabase, GeoDatabase Type, and FeatureClass Name + /// i.e. + /// C:\Users\wolf2125\Documents\ArcGIS\Projects\MyProject\SQLServer-localhost-PerformanceTest.sde\PerformanceTest.DBO.ReadTest + /// + /// + /// + /// + private (bool IsSDE, bool IsFileGdb) ParseGeoDatabasePath(string geodatabasePath, out string gdb, out string FcName) + { + gdb = null; + FcName = null; + var isGdb = false; + var isSde = geodatabasePath.Contains(@".sde\", StringComparison.CurrentCultureIgnoreCase); + if (isSde) + { + var parts = geodatabasePath.ToLower().Split(@".sde\"); + gdb = parts[0] + @".sde"; + FcName = parts[1]; + if (!string.IsNullOrEmpty(FcName) && FcName.Contains(@".")) + { + parts = FcName.Split(@"."); + FcName = parts[^1]; + } + } + else + { + isGdb = geodatabasePath.Contains(@".gdb\", StringComparison.CurrentCultureIgnoreCase); + if (isGdb) + { + var parts = geodatabasePath.ToLower().Split(@".gdb\"); + gdb = parts[0] + @".gdb"; + FcName = parts[1]; + } + } + if (!string.IsNullOrEmpty(FcName) && FcName.Contains(@"\")) + { + var parts = FcName.Split(@"\"); + FcName = parts[^1]; + } + return (isSde, isGdb); + } + + public ArcGIS.Core.Data.Version CreateVersion(Geodatabase geodatabase, string versionName, string description, VersionAccessType versionAccessType) + { + if (!geodatabase.IsVersioningSupported()) return null; + + using (VersionManager versionManager = geodatabase.GetVersionManager()) + { + VersionDescription versionDescription = new VersionDescription(versionName, description, versionAccessType); + return versionManager.CreateVersion(versionDescription); + } + } + + public Geodatabase ConnectToVersion(Geodatabase geodatabase, string versionName) + { + Geodatabase connectedVersion = null; + try + { + if (geodatabase.IsVersioningSupported()) + { + using VersionManager versionManager = geodatabase.GetVersionManager(); + using ArcGIS.Core.Data.Version version = versionManager.GetVersion(versionName); + connectedVersion = version.Connect(); + } + } + catch { } + return connectedVersion; + } + + public IReadOnlyList GetVersions(Geodatabase geodatabase) + { + if (geodatabase.IsVersioningSupported()) + { + using VersionManager versionManager = geodatabase.GetVersionManager(); + IReadOnlyList versions = versionManager.GetVersionNames(); + return versions; + } + return null; + } + + private static Task FeatureClassExistsAsync(Geodatabase geoDatabase, string fcName) + { + return QueuedTask.Run(() => + { + try + { + using FeatureClass fc = geoDatabase.OpenDataset(fcName); + return fc != null; + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($@"FeatureClassExists Error: {ex.ToString()}"); + return false; + } + }); + } + + + /// + /// Show the DockPane. + /// + internal static void Show() + { + DockPane pane = FrameworkApplication.DockPaneManager.Find(_dockPaneID); + if (pane == null) + return; + + pane.Activate(); + } + } + + /// + /// Button implementation to show the DockPane. + /// + internal class VersionUpdate_ShowButton : Button + { + protected override void OnClick() + { + VersionUpdateViewModel.Show(); + } + } +} diff --git a/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ConstructingGeometries_CSharp (C#).md b/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ConstructingGeometries_CSharp (C#).md index 889a4ce8..3cd23705 100644 --- a/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ConstructingGeometries_CSharp (C#).md +++ b/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ConstructingGeometries_CSharp (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Geometry, Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ReadMe.md b/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ReadMe.md index 889a4ce8..3cd23705 100644 --- a/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ReadMe.md +++ b/Geometry/Constructing-Geometries/ConstructingGeometries_CSharp/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Geometry, Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/Constructing-Geometries/ConstructingGeometries_VB/ConstructingGeometries_VB (VB).md b/Geometry/Constructing-Geometries/ConstructingGeometries_VB/ConstructingGeometries_VB (VB).md index 50abd731..866a4121 100644 --- a/Geometry/Constructing-Geometries/ConstructingGeometries_VB/ConstructingGeometries_VB (VB).md +++ b/Geometry/Constructing-Geometries/ConstructingGeometries_VB/ConstructingGeometries_VB (VB).md @@ -16,8 +16,8 @@ Language: VB Subject: Geometry, Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/Constructing-Geometries/ConstructingGeometries_VB/Readme.md b/Geometry/Constructing-Geometries/ConstructingGeometries_VB/Readme.md index 50abd731..866a4121 100644 --- a/Geometry/Constructing-Geometries/ConstructingGeometries_VB/Readme.md +++ b/Geometry/Constructing-Geometries/ConstructingGeometries_VB/Readme.md @@ -16,8 +16,8 @@ Language: VB Subject: Geometry, Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/CoordinateSystemDialog/CoordinateSystemPicker (C#).md b/Geometry/CoordinateSystemDialog/CoordinateSystemPicker (C#).md index 525f042d..37372a7d 100644 --- a/Geometry/CoordinateSystemDialog/CoordinateSystemPicker (C#).md +++ b/Geometry/CoordinateSystemDialog/CoordinateSystemPicker (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/CoordinateSystemDialog/ReadMe.md b/Geometry/CoordinateSystemDialog/ReadMe.md index 525f042d..37372a7d 100644 --- a/Geometry/CoordinateSystemDialog/ReadMe.md +++ b/Geometry/CoordinateSystemDialog/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/GeometrySamples/Button1.cs b/Geometry/GeometrySamples/Button1.cs index f95ef264..69c5606b 100644 --- a/Geometry/GeometrySamples/Button1.cs +++ b/Geometry/GeometrySamples/Button1.cs @@ -40,32 +40,30 @@ protected override void OnClick() } QueuedTask.Run(() => { - using (var fc = polyLayer.GetTable() as FeatureClass) - { - if (fc == null) return; + using var fc = polyLayer.GetTable() as FeatureClass; + if (fc == null) return; - var fcDefinition = fc.GetDefinition(); + var fcDefinition = fc.GetDefinition(); - var editOperation = new EditOperation(); - editOperation.Name = "Create outer ring"; + var editOperation = new EditOperation + { + Name = "Create outer ring" + }; - using (var cursor = fc.Search()) - { - while (cursor.MoveNext()) - { - using (var feature = cursor.Current as Feature) - { - if (feature == null) continue; + using (var cursor = fc.Search()) + { + while (cursor.MoveNext()) + { + using var feature = cursor.Current as Feature; + if (feature == null) continue; - var outerRings = Module1.Current.GetOutermostRings(feature.GetShape() as Polygon); - if (outerRings != null) - editOperation.Create(polyLayer, outerRings); - } - } - } - editOperation.Execute(); - } - }); + var outerRings = Module1.Current.GetOutermostRings(feature.GetShape() as Polygon); + if (outerRings != null) + editOperation.Create(polyLayer, outerRings); + } + } + editOperation.Execute(); + }); } } } \ No newline at end of file diff --git a/Geometry/GeometrySamples/GeometrySamples (C#).md b/Geometry/GeometrySamples/GeometrySamples (C#).md index 4e7b2a0f..03a64293 100644 --- a/Geometry/GeometrySamples/GeometrySamples (C#).md +++ b/Geometry/GeometrySamples/GeometrySamples (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/GeometrySamples/ReadMe.md b/Geometry/GeometrySamples/ReadMe.md index 4e7b2a0f..03a64293 100644 --- a/Geometry/GeometrySamples/ReadMe.md +++ b/Geometry/GeometrySamples/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/MultipatchBuilderEx/MultipatchBuilderEx (C#).md b/Geometry/MultipatchBuilderEx/MultipatchBuilderEx (C#).md index ce94ee48..1a47bcc4 100644 --- a/Geometry/MultipatchBuilderEx/MultipatchBuilderEx (C#).md +++ b/Geometry/MultipatchBuilderEx/MultipatchBuilderEx (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/MultipatchBuilderEx/ReadMe.md b/Geometry/MultipatchBuilderEx/ReadMe.md index ce94ee48..1a47bcc4 100644 --- a/Geometry/MultipatchBuilderEx/ReadMe.md +++ b/Geometry/MultipatchBuilderEx/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/QueryGraphicBoundary/QueryGraphicBoundary (C#).md b/Geometry/QueryGraphicBoundary/QueryGraphicBoundary (C#).md index a8cf11ce..de5a448b 100644 --- a/Geometry/QueryGraphicBoundary/QueryGraphicBoundary (C#).md +++ b/Geometry/QueryGraphicBoundary/QueryGraphicBoundary (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/QueryGraphicBoundary/ReadMe.md b/Geometry/QueryGraphicBoundary/ReadMe.md index a8cf11ce..de5a448b 100644 --- a/Geometry/QueryGraphicBoundary/ReadMe.md +++ b/Geometry/QueryGraphicBoundary/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/README.md b/Geometry/README.md index e5f9f7a1..9e652656 100644 --- a/Geometry/README.md +++ b/Geometry/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Geometry -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Geometry' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Geometry' topic. ## Features diff --git a/Geometry/RubiksCube/ReadMe.md b/Geometry/RubiksCube/ReadMe.md index ecfbffcf..a0c29971 100644 --- a/Geometry/RubiksCube/ReadMe.md +++ b/Geometry/RubiksCube/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geometry/RubiksCube/RubiksCube (C#).md b/Geometry/RubiksCube/RubiksCube (C#).md index ecfbffcf..a0c29971 100644 --- a/Geometry/RubiksCube/RubiksCube (C#).md +++ b/Geometry/RubiksCube/RubiksCube (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geometry Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ApplySymbology/ApplySymbology (C#).md b/Geoprocessing/ApplySymbology/ApplySymbology (C#).md index c38ed38f..47c15adf 100644 --- a/Geoprocessing/ApplySymbology/ApplySymbology (C#).md +++ b/Geoprocessing/ApplySymbology/ApplySymbology (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ApplySymbology/ReadMe.md b/Geoprocessing/ApplySymbology/ReadMe.md index c38ed38f..47c15adf 100644 --- a/Geoprocessing/ApplySymbology/ReadMe.md +++ b/Geoprocessing/ApplySymbology/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ApplySymbologyFromFeatureLayer/ApplySymbologyFromFeatureLayer (C#).md b/Geoprocessing/ApplySymbologyFromFeatureLayer/ApplySymbologyFromFeatureLayer (C#).md index 87b81c00..59d9dc5c 100644 --- a/Geoprocessing/ApplySymbologyFromFeatureLayer/ApplySymbologyFromFeatureLayer (C#).md +++ b/Geoprocessing/ApplySymbologyFromFeatureLayer/ApplySymbologyFromFeatureLayer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ApplySymbologyFromFeatureLayer/ReadMe.md b/Geoprocessing/ApplySymbologyFromFeatureLayer/ReadMe.md index 87b81c00..59d9dc5c 100644 --- a/Geoprocessing/ApplySymbologyFromFeatureLayer/ReadMe.md +++ b/Geoprocessing/ApplySymbologyFromFeatureLayer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/AsyncGeoProcessing/AsyncGeoProcessing (C#).md b/Geoprocessing/AsyncGeoProcessing/AsyncGeoProcessing (C#).md new file mode 100644 index 00000000..91f0393d --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/AsyncGeoProcessing (C#).md @@ -0,0 +1,52 @@ +## AsyncGeoProcessing + + +This sample shows who to run GP tools with and without progressors and the effect on UI responsiveness. + + + +View it live + + +``` +Language: C# +Subject: Geodatabase +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 10/30/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual studio rebuild the solution. +2. Debug the add-in. +3. When ArcGIS Pro opens open any project with a map containing at least one polygon layer. +4. Select the "Async GP Tools" tab. Select a polygon feature in the map. +![UI](Screenshots/Screen1.png) +5. Click the "Run w/ Progress" button to create a series of buffers around the selected polygon feature. +6. A progressor is displayed while the tool is running. Notice that the UI is not responsive while the tool is running. +![UI](Screenshots/Screen2.png) +7. Click the "Run w/o Progress" button to create a series of buffers around the selected polygon feature. +8. No progressor is displayed while this tool is running. Notice that the UI is now responsive while the tool is running. With each newly created polygon the table of content is updated. +![UI](Screenshots/Screen3.png) +9. Click the "Run w/o Interface" button to create a series of buffers around the selected polygon feature. +10. No progressor is displayed while this tool is running and the table of content is not updated until the whole process is complete. Notice that the UI is fully responsive while the tool is running. With each newly created polygon the table of content is updated. +![UI](Screenshots/Screen4.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Geoprocessing/AsyncGeoProcessing/AsyncGeoProcessing.sln b/Geoprocessing/AsyncGeoProcessing/AsyncGeoProcessing.sln new file mode 100644 index 00000000..7db2f9c9 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/AsyncGeoProcessing.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35122.118 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AsyncGeoProcessing", "AsyncGeoProcessing.csproj", "{3A9453CF-545B-4749-8821-423FFD49DCB9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3A9453CF-545B-4749-8821-423FFD49DCB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A9453CF-545B-4749-8821-423FFD49DCB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A9453CF-545B-4749-8821-423FFD49DCB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A9453CF-545B-4749-8821-423FFD49DCB9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {33E944C5-AEFA-4CF6-82CA-85D8B7C2BD7E} + EndGlobalSection +EndGlobal diff --git a/Geoprocessing/AsyncGeoProcessing/ClearBufferData.cs b/Geoprocessing/AsyncGeoProcessing/ClearBufferData.cs new file mode 100644 index 00000000..073e9e55 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/ClearBufferData.cs @@ -0,0 +1,124 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Data.DDL; +using ArcGIS.Core.Data.Exceptions; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AsyncGeoProcessing +{ + internal class ClearBufferData : Button + { + protected override async void OnClick() + { + try + { + var map = MapView.Active.Map; + if (map == null) + return; + var removeFeatureClasses = new List<(Geodatabase geoDatabase, FeatureClass fc)>() { }; + + var bufferPrefix = "GPL0_Buffer"; + + // remove all demo layers from map + var removeLayers = MapView.Active.Map.GetLayersAsFlattenedList(). + OfType(). + Where(fl => fl.Name.StartsWith(bufferPrefix)); + await QueuedTask.Run(() => + { + map.RemoveLayers(removeLayers); + }); + + // remove all FeatureClasses from project databases + IEnumerable gdbProjectItems = Project.Current.GetItems(); + await QueuedTask.Run(() => + { + foreach (GDBProjectItem gdbProjectItem in gdbProjectItems) + { + using Datastore datastore = gdbProjectItem.GetDatastore(); + // Unsupported DataStores (non File GDB and non Enterprise GDB) + // will be of type UnknownDatastore + if (datastore is UnknownDatastore) + continue; + + using Geodatabase geodatabase = datastore as Geodatabase; + // Use the GeoDatabase. + IReadOnlyList fcDefinitions = geodatabase.GetDefinitions(); + foreach (FeatureClassDefinition fcDef in fcDefinitions) + { + var fcName = fcDef.GetName(); + if (fcName.StartsWith(bufferPrefix)) + { + DeleteFeatureClass(geodatabase, geodatabase.OpenDataset(fcName)); + } + } + // refresh Pro UI + gdbProjectItem.Refresh(); + } + }); + } + catch (GeodatabaseException ex) + { + if (ex.Message == "The table was not found.") return; + + MessageBox.Show(ex.Message); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + + public bool DeleteFeatureClass(Geodatabase geoDatabase, FeatureClass featureClass) + { + #region Deleting a Feature Class + + // Create a FeatureClassDescription object + FeatureClassDescription featureClassDescription = new FeatureClassDescription(featureClass.GetDefinition()); + + // Create a SchemaBuilder object + SchemaBuilder schemaBuilder = new SchemaBuilder(geoDatabase); + + // Add the deletion for the feature class to our list of DDL tasks + schemaBuilder.Delete(featureClassDescription); + + // Execute the DDL + bool success = schemaBuilder.Build(); + return success; + #endregion + } + } +} diff --git a/Geoprocessing/AsyncGeoProcessing/Config.daml b/Geoprocessing/AsyncGeoProcessing/Config.daml new file mode 100644 index 00000000..badb3ab1 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/Config.daml @@ -0,0 +1,89 @@ + + + + + AsyncGeoProcessing + AsyncGeoProcessing description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + esri, https://www.esri.com + 7/26/2024 12:24:12 AM + Geodatabase + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Geoprocessing/AsyncGeoProcessing/DarkImages/AddInDesktop16.png b/Geoprocessing/AsyncGeoProcessing/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/DarkImages/AddInDesktop16.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/DarkImages/AddInDesktop32.png b/Geoprocessing/AsyncGeoProcessing/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/DarkImages/AddInDesktop32.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/GPCycles.cs b/Geoprocessing/AsyncGeoProcessing/GPCycles.cs new file mode 100644 index 00000000..7cdd682c --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/GPCycles.cs @@ -0,0 +1,100 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AsyncGeoProcessing +{ + /// + /// Represents the ComboBox + /// + internal class GPCycles : ComboBox + { + + private bool _isInitialized; + + /// + /// Combo Box constructor + /// + public GPCycles() + { + UpdateCombo(); + } + + /// + /// Updates the combo box with all the items. + /// + + private void UpdateCombo() + { + if (_isInitialized) + SelectedItem = ItemCollection.FirstOrDefault(); + if (!_isInitialized) + { + Clear(); + + int[] values = [10, 100, 1000, 10000]; + + foreach (int value in values) + { + Add(new ComboBoxItem($@"{value}")); + } + _isInitialized = true; + } + Enabled = true; //enables the ComboBox + SelectedItem = ItemCollection.FirstOrDefault(); + } + + /// + /// The on comboBox selection change event. + /// + /// The newly selected combo box item + protected override void OnSelectionChange(ComboBoxItem item) + { + if (item == null) + return; + if (string.IsNullOrEmpty(item.Text)) + return; + if (uint.TryParse (item.Text, out uint value)) + { + Module1.Current.GPCycles = value; + } + } + + } +} diff --git a/Geoprocessing/AsyncGeoProcessing/Images/AddInDesktop16.png b/Geoprocessing/AsyncGeoProcessing/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/Images/AddInDesktop16.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/Images/AddInDesktop32.png b/Geoprocessing/AsyncGeoProcessing/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/Images/AddInDesktop32.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/Module1.cs b/Geoprocessing/AsyncGeoProcessing/Module1.cs new file mode 100644 index 00000000..91066b2d --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/Module1.cs @@ -0,0 +1,87 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace AsyncGeoProcessing +{ + /// + /// This sample shows who to run GP tools with and without progressors and the effect on UI responsiveness. + /// + /// + /// 1. In Visual studio rebuild the solution. + /// 1. Debug the add-in. + /// 1. When ArcGIS Pro opens open any project with a map containing at least one polygon layer. + /// 1. Select the "Async GP Tools" tab. Select a polygon feature in the map. + /// ![UI](Screenshots/Screen1.png) + /// 1. Click the "Run w/ Progress" button to create a series of buffers around the selected polygon feature. + /// 1. A progressor is displayed while the tool is running. Notice that the UI is not responsive while the tool is running. + /// ![UI](Screenshots/Screen2.png) + /// 1. Click the "Run w/o Progress" button to create a series of buffers around the selected polygon feature. + /// 1. No progressor is displayed while this tool is running. Notice that the UI is now responsive while the tool is running. With each newly created polygon the table of content is updated. + /// ![UI](Screenshots/Screen3.png) + /// 1. Click the "Run w/o Interface" button to create a series of buffers around the selected polygon feature. + /// 1. No progressor is displayed while this tool is running and the table of content is not updated until the whole process is complete. Notice that the UI is fully responsive while the tool is running. With each newly created polygon the table of content is updated. + /// ![UI](Screenshots/Screen4.png) + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("AsyncGeoProcessing_Module"); + + public uint GPCycles { get; internal set; } + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Geoprocessing/AsyncGeoProcessing/Properties/launchSettings.json b/Geoprocessing/AsyncGeoProcessing/Properties/launchSettings.json new file mode 100644 index 00000000..6b213538 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "AsyncGeoProcessing": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Geoprocessing/AsyncGeoProcessing/ReadMe.md b/Geoprocessing/AsyncGeoProcessing/ReadMe.md new file mode 100644 index 00000000..91f0393d --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/ReadMe.md @@ -0,0 +1,52 @@ +## AsyncGeoProcessing + + +This sample shows who to run GP tools with and without progressors and the effect on UI responsiveness. + + + +View it live + + +``` +Language: C# +Subject: Geodatabase +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 10/30/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual studio rebuild the solution. +2. Debug the add-in. +3. When ArcGIS Pro opens open any project with a map containing at least one polygon layer. +4. Select the "Async GP Tools" tab. Select a polygon feature in the map. +![UI](Screenshots/Screen1.png) +5. Click the "Run w/ Progress" button to create a series of buffers around the selected polygon feature. +6. A progressor is displayed while the tool is running. Notice that the UI is not responsive while the tool is running. +![UI](Screenshots/Screen2.png) +7. Click the "Run w/o Progress" button to create a series of buffers around the selected polygon feature. +8. No progressor is displayed while this tool is running. Notice that the UI is now responsive while the tool is running. With each newly created polygon the table of content is updated. +![UI](Screenshots/Screen3.png) +9. Click the "Run w/o Interface" button to create a series of buffers around the selected polygon feature. +10. No progressor is displayed while this tool is running and the table of content is not updated until the whole process is complete. Notice that the UI is fully responsive while the tool is running. With each newly created polygon the table of content is updated. +![UI](Screenshots/Screen4.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Geoprocessing/AsyncGeoProcessing/RunGPTools.cs b/Geoprocessing/AsyncGeoProcessing/RunGPTools.cs new file mode 100644 index 00000000..46942469 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/RunGPTools.cs @@ -0,0 +1,130 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Core.Geoprocessing; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AsyncGeoProcessing +{ + internal class RunGPTools : Button + { + protected override async void OnClick() + { + // get the first selected polygon layer + // and then get the first selected feature + // for use in the GeoProcessing tool + if (MapView.Active?.Map == null) return; + var polyGeometry = await QueuedTask.Run(() => + { + var selectionSet = MapView.Active.Map.GetSelection().ToDictionary(); + // For each map member with a selection on it. + foreach (var selectedKeyValue in selectionSet) + { + var mapMember = selectedKeyValue.Key; + if (!(mapMember is BasicFeatureLayer layer)) + continue; + if (layer.ShapeType != esriGeometryType.esriGeometryPolygon) + continue; + using var cursor = layer.Search(new QueryFilter() { ObjectIDs = [selectedKeyValue.Value[0]] }); + if (cursor.MoveNext()) + { + using var feature = cursor.Current as Feature; + if (feature == null) continue; + return feature.GetShape().Clone(); + } + } + return null; + }); + if (polyGeometry == null) + { + MessageBox.Show("Couldn't find a selected polygon feature."); + return; + } + try + { + _ = RunGPToolAsync(Module1.Current.GPCycles, polyGeometry); + } + catch (Exception ex) + { + MessageBox.Show($@"Error: {ex.Message}"); + } + } + + private async Task RunGPToolAsync(uint numBuffers, Geometry geometry) + { + // create and initialize the progress dialog + // Note: Progress dialogs are not displayed when debugging in Visual Studio + var progDlg = new ProgressDialog($@"Creating {numBuffers} buffers", "Canceled", false); + var progsrc = new CancelableProgressorSource(progDlg); + for (uint iBuffer = 1; iBuffer <= numBuffers; iBuffer++) + { + var valueArray = await QueuedTask.Run>(() => + { + var geometries = new List() { geometry }; + // Creates a 100-meter buffer around the geometry object + // null indicates a default output name is used + var valueArray = Geoprocessing.MakeValueArray(geometries, null, $@"{iBuffer * 100} Meters"); + return valueArray; + }); + progsrc.ExtendedStatus = $@"Creating buffer #: {iBuffer} of {numBuffers}"; + progsrc.Value = 100 * (iBuffer - 1); + progsrc.Max = 100 * numBuffers + 1; + var gpResult = await Geoprocessing.ExecuteToolAsync("analysis.Buffer", valueArray, null, progsrc.Progressor); + if (gpResult.IsFailed) + { + // display error messages if the tool fails, otherwise shows the default messages + if (gpResult.Messages.Count() != 0) + { + Geoprocessing.ShowMessageBox(gpResult.Messages, progsrc.Message, + gpResult.IsFailed ? + GPMessageBoxStyle.Error : GPMessageBoxStyle.Default); + } + else + { + MessageBox.Show($@"{progsrc.Message} failed with errorcode, check parameters."); + } + break; + } + // check if the operator canceled + if (progsrc.CancellationTokenSource.IsCancellationRequested) break; + } + if (progsrc.CancellationTokenSource.IsCancellationRequested) + { + MessageBox.Show("The operation was canceled."); + } + } + } + } diff --git a/Geoprocessing/AsyncGeoProcessing/RunGPToolsWo.cs b/Geoprocessing/AsyncGeoProcessing/RunGPToolsWo.cs new file mode 100644 index 00000000..5b02b012 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/RunGPToolsWo.cs @@ -0,0 +1,118 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Core.Geoprocessing; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AsyncGeoProcessing +{ + internal class RunGPToolsWo : Button + { + protected override async void OnClick() + { + // get the first selected polygon layer + // and then get the first selected feature + // for use in the GeoProcessing tool + if (MapView.Active?.Map == null) return; + var polyGeometry = await QueuedTask.Run(() => + { + var selectionSet = MapView.Active.Map.GetSelection().ToDictionary(); + // For each map member with a selection on it. + foreach (var selectedKeyValue in selectionSet) + { + var mapMember = selectedKeyValue.Key; + if (!(mapMember is BasicFeatureLayer layer)) + continue; + if (layer.ShapeType != esriGeometryType.esriGeometryPolygon) + continue; + using var cursor = layer.Search(new QueryFilter() { ObjectIDs = [selectedKeyValue.Value[0]] }); + if (cursor.MoveNext()) + { + using var feature = cursor.Current as Feature; + if (feature == null) continue; + return feature.GetShape().Clone(); + } + } + return null; + }); + if (polyGeometry == null) + { + MessageBox.Show("Couldn't find a selected polygon feature."); + return; + } + try + { + _ = RunGPToolAsync(Module1.Current.GPCycles, polyGeometry); + } + catch (Exception ex) + { + MessageBox.Show($@"Error: {ex.Message}"); + } + } + + private async Task RunGPToolAsync(uint numBuffers, Geometry geometry) + { + for (uint iBuffer = 1; iBuffer <= numBuffers; iBuffer++) + { + var valueArray = await QueuedTask.Run>(() => + { + var geometries = new List() { geometry }; + // Creates a 100-meter buffer around the geometry object + // null indicates a default output name is used + var valueArray = Geoprocessing.MakeValueArray(geometries, null, $@"{iBuffer * 100} Meters"); + return valueArray; + }); + var gpResult = await Geoprocessing.ExecuteToolAsync("analysis.Buffer", valueArray, + null, CancelableProgressor.None, GPExecuteToolFlags.Default); + if (gpResult.IsFailed) + { + // display error messages if the tool fails, otherwise shows the default messages + if (gpResult.Messages.Count() != 0) + { + Geoprocessing.ShowMessageBox(gpResult.Messages, $@"GP tool error: [{gpResult.ErrorCode}]", + gpResult.IsFailed ? + GPMessageBoxStyle.Error : GPMessageBoxStyle.Default); + } + else + { + MessageBox.Show($@"GP tool error: [{gpResult.ErrorCode}], check parameters."); + } + break; + } + } + } + } +} diff --git a/Geoprocessing/AsyncGeoProcessing/RunGPToolsWoInterface.cs b/Geoprocessing/AsyncGeoProcessing/RunGPToolsWoInterface.cs new file mode 100644 index 00000000..dda8d602 --- /dev/null +++ b/Geoprocessing/AsyncGeoProcessing/RunGPToolsWoInterface.cs @@ -0,0 +1,211 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Data.Exceptions; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Core.Geoprocessing; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Documents; +using System.Windows.Media.Animation; + +namespace AsyncGeoProcessing +{ + internal class RunGPToolsWoInterface : Button + { + protected override async void OnClick() + { + // get the first selected polygon layer + // and then get the first selected feature + // for use in the GeoProcessing tool + if (MapView.Active?.Map == null) return; + var polyGeometry = await QueuedTask.Run(() => + { + var selectionSet = MapView.Active.Map.GetSelection().ToDictionary(); + // For each map member with a selection on it. + foreach (var selectedKeyValue in selectionSet) + { + var mapMember = selectedKeyValue.Key; + if (!(mapMember is BasicFeatureLayer layer)) + continue; + if (layer.ShapeType != esriGeometryType.esriGeometryPolygon) + continue; + using var cursor = layer.Search(new QueryFilter() { ObjectIDs = [selectedKeyValue.Value[0]] }); + if (cursor.MoveNext()) + { + using var feature = cursor.Current as Feature; + if (feature == null) continue; + return feature.GetShape().Clone(); + } + } + return null; + }); + if (polyGeometry == null) + { + MessageBox.Show("Couldn't find a selected polygon feature."); + return; + } + try + { + var lastGPBufferName = await GetLastGPName(); + _ = RunGPToolAsync(Module1.Current.GPCycles, polyGeometry, lastGPBufferName); + + } + catch (Exception ex) + { + MessageBox.Show($@"Error: {ex.Message}"); + } + } + + private async Task AddToMapViewAsync((string GdbPath, string FcName) lastGPBufferName, uint gPCycles) + { + var bufferPrefix = "GPL0_Buffer"; + uint idxStartOffset = 0; + if (string.IsNullOrEmpty(lastGPBufferName.GdbPath)) throw (new Exception("Default GeoDatabase path is missing.")); + if (string.IsNullOrEmpty(lastGPBufferName.FcName)) + { + lastGPBufferName = (lastGPBufferName.GdbPath, bufferPrefix); + } + else + { + if (uint.TryParse(lastGPBufferName.FcName.Replace(bufferPrefix, string.Empty), out uint lastBufferIdx)) + { + idxStartOffset = lastBufferIdx; + } + } + await QueuedTask.Run(() => + { + for (uint iBuffer = 1; iBuffer <= gPCycles; iBuffer++) + { + Uri fcUri = null; + if (iBuffer == 1 && lastGPBufferName.FcName == bufferPrefix) + { + fcUri = new Uri($@"{lastGPBufferName.GdbPath}\{bufferPrefix}"); + } + else + { + fcUri = new Uri($@"{lastGPBufferName.GdbPath}\{bufferPrefix}{iBuffer + idxStartOffset}"); + } + //Define the Feature Layer's parameters. + var layerParams = new FeatureLayerCreationParams(fcUri); + //Create the layer with the feature layer parameters and add it to the active map + LayerFactory.Instance.CreateLayer(layerParams, MapView.Active.Map); + } + }); + } + + private async Task RunGPToolAsync(uint numBuffers, Geometry geometry, (string GdbPath, string FcName) lastGPBufferName) + { + for (uint iBuffer = 1; iBuffer <= numBuffers; iBuffer++) + { + var valueArray = await QueuedTask.Run>(() => + { + var geometries = new List() { geometry }; + // Creates a 100-meter buffer around the geometry object + // null indicates a default output name is used + var valueArray = Geoprocessing.MakeValueArray(geometries, null, $@"{iBuffer * 100} Meters"); + return valueArray; + }); + var gpResult = await Geoprocessing.ExecuteToolAsync("analysis.Buffer", valueArray, + null, CancelableProgressor.None, GPExecuteToolFlags.None); + if (gpResult.IsFailed) + { + // display error messages if the tool fails, otherwise shows the default messages + if (gpResult.Messages.Count() != 0) + { + Geoprocessing.ShowMessageBox(gpResult.Messages, $@"GP tool error: [{gpResult.ErrorCode}]", + gpResult.IsFailed ? + GPMessageBoxStyle.Error : GPMessageBoxStyle.Default); + } + else + { + MessageBox.Show($@"GP tool error: [{gpResult.ErrorCode}], check parameters."); + } + break; + } + } + await AddToMapViewAsync(lastGPBufferName, Module1.Current.GPCycles); + } + + private async Task<(string GdbPath, string FcName)> GetLastGPName() + { + (string GdbPath, string FcName) lastGPName = (string.Empty, string.Empty); + try + { + var bufferPrefix = "GPL0_Buffer"; + + // check all project databases for the buffer feature classes + IEnumerable gdbProjectItems = Project.Current.GetItems(); + await QueuedTask.Run(() => + { + foreach (GDBProjectItem gdbProjectItem in gdbProjectItems) + { + using Datastore datastore = gdbProjectItem.GetDatastore(); + // Unsupported DataStores (non File GDB and non Enterprise GDB) + // will be of type UnknownDatastore + if (datastore is UnknownDatastore) + continue; + + using Geodatabase geodatabase = datastore as Geodatabase; + // Use the GeoDatabase. + IReadOnlyList fcDefinitions = geodatabase.GetDefinitions(); + foreach (FeatureClassDefinition fcDef in fcDefinitions) + { + var fcName = fcDef.GetName(); + if (fcName.StartsWith(bufferPrefix)) + { + var path = gdbProjectItem.Path; + lastGPName = (path, fcName); + } + } + // refresh Pro UI + gdbProjectItem.Refresh(); + } + }); + } + catch (GeodatabaseException ex) + { + if (ex.Message == "The table was not found.") return (string.Empty, string.Empty); + + MessageBox.Show(ex.Message); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + return lastGPName; + } + } +} diff --git a/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen1.png b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen1.png new file mode 100644 index 00000000..e292772a Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen1.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen2.png b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen2.png new file mode 100644 index 00000000..7a57b09c Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen2.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen3.png b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen3.png new file mode 100644 index 00000000..6e451fa9 Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen3.png differ diff --git a/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen4.png b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen4.png new file mode 100644 index 00000000..874d02a2 Binary files /dev/null and b/Geoprocessing/AsyncGeoProcessing/Screenshots/Screen4.png differ diff --git a/Geoprocessing/CallScriptFromNet/CallScriptFromNet (c#).md b/Geoprocessing/CallScriptFromNet/CallScriptFromNet (c#).md index 827d664e..23c7eb3e 100644 --- a/Geoprocessing/CallScriptFromNet/CallScriptFromNet (c#).md +++ b/Geoprocessing/CallScriptFromNet/CallScriptFromNet (c#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/CallScriptFromNet/ReadMe.md b/Geoprocessing/CallScriptFromNet/ReadMe.md index 827d664e..23c7eb3e 100644 --- a/Geoprocessing/CallScriptFromNet/ReadMe.md +++ b/Geoprocessing/CallScriptFromNet/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/DeepThought/DeepThought (C#).md b/Geoprocessing/DeepThought/DeepThought (C#).md index 10e27cc8..b6aedba8 100644 --- a/Geoprocessing/DeepThought/DeepThought (C#).md +++ b/Geoprocessing/DeepThought/DeepThought (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/DeepThought/ReadMe.md b/Geoprocessing/DeepThought/ReadMe.md index 10e27cc8..b6aedba8 100644 --- a/Geoprocessing/DeepThought/ReadMe.md +++ b/Geoprocessing/DeepThought/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/DriveTimeGP/DriveTimeGP (C#).md b/Geoprocessing/DriveTimeGP/DriveTimeGP (C#).md index 7ac46779..7b1c89c1 100644 --- a/Geoprocessing/DriveTimeGP/DriveTimeGP (C#).md +++ b/Geoprocessing/DriveTimeGP/DriveTimeGP (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/DriveTimeGP/ReadMe.md b/Geoprocessing/DriveTimeGP/ReadMe.md index 7ac46779..7b1c89c1 100644 --- a/Geoprocessing/DriveTimeGP/ReadMe.md +++ b/Geoprocessing/DriveTimeGP/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ExecuteModelTool/ExecuteModelTool (C#).md b/Geoprocessing/ExecuteModelTool/ExecuteModelTool (C#).md index ffe44325..63e39a46 100644 --- a/Geoprocessing/ExecuteModelTool/ExecuteModelTool (C#).md +++ b/Geoprocessing/ExecuteModelTool/ExecuteModelTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ExecuteModelTool/ReadMe.md b/Geoprocessing/ExecuteModelTool/ReadMe.md index ffe44325..63e39a46 100644 --- a/Geoprocessing/ExecuteModelTool/ReadMe.md +++ b/Geoprocessing/ExecuteModelTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ExecuteSnap/ExecuteSnap (C#).md b/Geoprocessing/ExecuteSnap/ExecuteSnap (C#).md index 42a92361..deba0895 100644 --- a/Geoprocessing/ExecuteSnap/ExecuteSnap (C#).md +++ b/Geoprocessing/ExecuteSnap/ExecuteSnap (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/ExecuteSnap/ReadMe.md b/Geoprocessing/ExecuteSnap/ReadMe.md index 42a92361..deba0895 100644 --- a/Geoprocessing/ExecuteSnap/ReadMe.md +++ b/Geoprocessing/ExecuteSnap/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/GeoProcessingHistory/GeoProcessingHistory (C#).md b/Geoprocessing/GeoProcessingHistory/GeoProcessingHistory (C#).md index b52fbeb2..38f0d729 100644 --- a/Geoprocessing/GeoProcessingHistory/GeoProcessingHistory (C#).md +++ b/Geoprocessing/GeoProcessingHistory/GeoProcessingHistory (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/GeoProcessingHistory/ReadMe.md b/Geoprocessing/GeoProcessingHistory/ReadMe.md index b52fbeb2..38f0d729 100644 --- a/Geoprocessing/GeoProcessingHistory/ReadMe.md +++ b/Geoprocessing/GeoProcessingHistory/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Config.daml b/Geoprocessing/GeoProcesssingEventsWithUI/Config.daml new file mode 100644 index 00000000..a3b23649 --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/Config.daml @@ -0,0 +1,78 @@ + + + + + GeoProcesssingEventsWithUI + GeoProcesssingEventsWithUI description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + esri, https://www.esri.com + 3/15/2023 12:14:00 PM + Framework + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/DarkImages/AddInDesktop16.png b/Geoprocessing/GeoProcesssingEventsWithUI/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Geoprocessing/GeoProcesssingEventsWithUI/DarkImages/AddInDesktop16.png differ diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/DarkImages/AddInDesktop32.png b/Geoprocessing/GeoProcesssingEventsWithUI/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Geoprocessing/GeoProcesssingEventsWithUI/DarkImages/AddInDesktop32.png differ diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GPExample.cs b/Geoprocessing/GeoProcesssingEventsWithUI/GPExample.cs new file mode 100644 index 00000000..88b7c32f --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GPExample.cs @@ -0,0 +1,173 @@ +/* + + Copyright 2023 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Data.DDL; +using ArcGIS.Core.Data.UtilityNetwork.Trace; +using ArcGIS.Core.Geometry; +using ArcGIS.Core.Internal.CIM; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Core.Geoprocessing; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GeoProcesssingEventsWithUI +{ + internal class GPExample : Button + { + internal static int Iteration = 0; + + protected override async void OnClick() + { + // if _Buffer layer exists use that as an input + // check if we ran this command before and if so we use that as the input + var inName = Iteration == 0 ? $@"{Module1.TestFcName}" : $@"{Module1.TestFcName}_Buf_{Iteration}"; + var outName = $@"{Module1.TestFcName}_Buf_{Iteration+1}"; + try + { + var toolName = "sa.AddSurfaceInformation"; // copied from Python after "arcpy." + + // all GP Tool input parameters in their proper sequence + var in_featureclass = $@"citieslong"; + var in_surface = $@"https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"; + var out_property = "Z"; + var method = "BILINEAR"; + var sample_distance = "None"; + var z_factor = "1"; + var pyramid_level_resolution = "0"; + var noise_filtering = ""; + GPFeedbackViewModel.AddGPStatusMessage($@"Ready to run: Buffer: in [{in_featureclass}] out [{in_surface}] by {out_property}"); + var values = Geoprocessing.MakeValueArray([ + in_featureclass, + in_surface, + out_property, + method, + sample_distance, + z_factor, + pyramid_level_resolution, + noise_filtering + ]); + GPFeedbackViewModel.ClearGPStatusMessage(); + var gpResult = await Geoprocessing.ExecuteToolAsync(toolName, values, + null, null, (eventName, o) => + { + // "OnValidate" - (o as IGPMessage[]) + // "OnMessage" - (o as IGPMessage) + // "OnProgressMessage" - (string)o + // "OnProgressPos" - (int)o + // "OnBeginExecute" - o = null + // "OnEndExecute" - (o as IGPResult) + switch (eventName) + { + case "OnValidate": + { + var messages = o as IGPMessage[]; + foreach (var message in messages) + { + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} = {message.Text}"); + } + } + break; + case "OnMessage": + { + var message = o as IGPMessage; + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} = {message.Text}"); + } + break; + case "OnProgressMessage": + { + var message = o as string; + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} = {message}"); + } + break; + case "OnProgressPos": + { + var pos = (int)o; + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} = position: {pos}"); + GPFeedbackViewModel.ProgressBarValue(Convert.ToDouble(pos)); + } + break; + case "OnBeginExecute": + { + var gpResult = o as IGPResult; + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName}"); + } + break; + case "OnEndExecute": + { + var result = o as IGPResult; + if (result.IsFailed || result.ErrorCode != 0) + { + var errorMsg = string.Join(Environment.NewLine, result.ErrorMessages.Select(m => m.Text)); + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} execute failed: {errorMsg}"); + } + else + { + var messages = string.Join(Environment.NewLine, result.Messages); + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} finished: {messages}"); + } + } + break; + default: + GPFeedbackViewModel.AddGPStatusMessage($@"GP {eventName} = {o}"); + break; + } + }, GPExecuteToolFlags.Default|GPExecuteToolFlags.AddToHistory); + // gpResult is the returned result object from a call to ExecuteToolAsync + if (gpResult.IsFailed) + { + // display error messages if the tool fails, otherwise shows the default messages + if (gpResult.Messages.Count() != 0) + { + Geoprocessing.ShowMessageBox(gpResult.Messages, "GP Messages", + gpResult.IsFailed ? + GPMessageBoxStyle.Error : GPMessageBoxStyle.Default); + } + else + { + var errorMsg = string.Join(Environment.NewLine, gpResult.ErrorMessages.Select(m => m.ErrorCode.ToString())); + MessageBox.Show($@"GP Tool {toolName} failed with '{errorMsg}', check parameters.", "GP Tool failed", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + } + } + else + { + Iteration++; + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + + } +} diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedback.xaml b/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedback.xaml new file mode 100644 index 00000000..b79d3522 --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedback.xaml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedback.xaml.cs b/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedback.xaml.cs new file mode 100644 index 00000000..1d98628c --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedback.xaml.cs @@ -0,0 +1,60 @@ +/* + + Copyright 2023 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + + +namespace GeoProcesssingEventsWithUI +{ + /// + /// Interaction logic for GPFeedbackView.xaml + /// + public partial class GPFeedbackView : UserControl + { + /// + /// Initializes a new instance of the class. + /// + public GPFeedbackView() + { + InitializeComponent(); + TxtGPStatus.TextChanged += TxtGPStatus_TextChanged; + } + + private void TxtGPStatus_TextChanged(object sender, TextChangedEventArgs e) + { + if (sender is TextBox tb) + { + tb.CaretIndex = tb.Text.Length; + tb.ScrollToEnd(); + } + } + } +} diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedbackViewModel.cs b/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedbackViewModel.cs new file mode 100644 index 00000000..54c0e678 --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GPFeedbackViewModel.cs @@ -0,0 +1,183 @@ +/* + + Copyright 2023 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using System.Windows.Input; + +namespace GeoProcesssingEventsWithUI +{ + internal class GPFeedbackViewModel : DockPane + { + private const string _dockPaneID = "GeoProcesssingEventsWithUI_GPFeedback"; + + protected GPFeedbackViewModel() + { + Module1.GPFeedbackViewModel = this; + } + + /// + /// Show the DockPane. + /// + internal static void Show() + { + DockPane pane = FrameworkApplication.DockPaneManager.Find(_dockPaneID); + if (pane == null) return; + pane.Activate(); + } + + #region Public accessible methods + + public static void ProgressBarValue (double newProgressValue) + { + if (Module1.GPFeedbackViewModel == null) return; + RunOnUIThread(() => + { + Module1.GPFeedbackViewModel.ProgressValue = newProgressValue; + }); + } + + public static void AddGPStatusMessage(string message) + { + if (Module1.GPFeedbackViewModel == null) return; + RunOnUIThread(() => + { + Module1.GPFeedbackViewModel.GPStatus = + $@"{Module1.GPFeedbackViewModel.GPStatus}{Environment.NewLine}{message}"; + }); + } + + public static void ClearGPStatusMessage() + { + if (Module1.GPFeedbackViewModel == null) return; + RunOnUIThread(() => + { + Module1.GPFeedbackViewModel.GPStatus = string.Empty; + }); + } + + #endregion Public accessible methods + + #region Public properties + + private string _GPStatus; + private double _progressValue; + private System.Windows.Visibility _progressVisibility = System.Windows.Visibility.Collapsed; + private string _progressTest; + + public string GPStatus + { + get => _GPStatus; + set => SetProperty(ref _GPStatus, value); + } + + public double ProgressValue + { + get => _progressValue; + set + { + SetProperty(ref _progressValue, value); + ProgressVisibility = _progressValue > 0 ? System.Windows.Visibility.Visible + : System.Windows.Visibility.Collapsed; + ProgressText = _progressValue > 0 ? $"{_progressValue} %" : string.Empty; + } + } + + public double ProgressValueMax + { + get => 100; + } + + public System.Windows.Visibility ProgressVisibility + { + get => _progressVisibility; + set => SetProperty(ref _progressVisibility, value); + } + + public string ProgressText + { + get => _progressTest; + set => SetProperty(ref _progressTest, value); + } + + #endregion Public properties + + #region Helpers + + /// + /// Utility function to enable an action to run on the UI thread (if not already) + /// + /// the action to execute + /// + internal static Task RunOnUIThread(Action action) + { + if (OnUIThread) + { + action(); + return Task.FromResult(0); + } + else + return Task.Factory.StartNew(action, System.Threading.CancellationToken.None, TaskCreationOptions.None, QueuedTask.UIScheduler); + } + + /// + /// Determines if the application is currently on the UI thread + /// + private static bool OnUIThread + { + get + { + if (FrameworkApplication.TestMode) + return QueuedTask.OnWorker; + else + return System.Windows.Application.Current.Dispatcher.CheckAccess(); + } + } + + #endregion + } + + /// + /// Button implementation to show the DockPane. + /// + internal class GPFeedback_ShowButton : Button + { + protected override void OnClick() + { + GPFeedbackViewModel.Show(); + } + } +} diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI (C#).md b/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI (C#).md new file mode 100644 index 00000000..cfcdb253 --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI (C#).md @@ -0,0 +1,48 @@ +## GeoProcesssingEventsWithUI + + +This sample shows how to capture GP Tool runtime events including the percentage completion event. + + + +View it live + + +``` +Language: C# +Subject: Framework +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. Download the Community Sample data (see under the 'Resources' section for downloading sample data). The sample data contains a project called 'AdminSample.aprx' that includes data that is used by this sample. Make sure that the Sample data is unzipped in c:\data and "C:\Data\Admin" is available. +2. In Visual studio rebuild the solution. +3. Debug the add-in. +4. After ArcGIS Pro opens, open the "C:\Data\Admin\AdminSample.aprx" project. +5. Select the "GP Events" tab. +6. On the "GPTool Events" Group click the "Show GP Feedback" button to display the "GP Runtime Feedback" dockpane. +![UI](Screenshots/Screen1.png) +7. On the "GPTool Events" Group click the "Run GP tool" button to run the "Add Surface Information" GP Tool (Spatial Analyst Tools). +![UI](Screenshots/Screen2.png) +8. Notice the updates to the GP Tool progress status and progress bar. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI.csproj b/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI.csproj new file mode 100644 index 00000000..591c54fa --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI.csproj @@ -0,0 +1,95 @@ + + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\GeoProcessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + \ No newline at end of file diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI.sln b/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI.sln new file mode 100644 index 00000000..011b0255 --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/GeoProcesssingEventsWithUI.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33502.453 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GeoProcesssingEventsWithUI", "GeoProcesssingEventsWithUI.csproj", "{6040A5EA-FE57-46C9-800C-F9C2B43D0737}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6040A5EA-FE57-46C9-800C-F9C2B43D0737}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6040A5EA-FE57-46C9-800C-F9C2B43D0737}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6040A5EA-FE57-46C9-800C-F9C2B43D0737}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6040A5EA-FE57-46C9-800C-F9C2B43D0737}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EB7B286B-CD10-4A1F-98CD-CBBD8204FA39} + EndGlobalSection +EndGlobal diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Images/AddInDesktop16.png b/Geoprocessing/GeoProcesssingEventsWithUI/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Geoprocessing/GeoProcesssingEventsWithUI/Images/AddInDesktop16.png differ diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Images/AddInDesktop32.png b/Geoprocessing/GeoProcesssingEventsWithUI/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Geoprocessing/GeoProcesssingEventsWithUI/Images/AddInDesktop32.png differ diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Module1.cs b/Geoprocessing/GeoProcesssingEventsWithUI/Module1.cs new file mode 100644 index 00000000..3ef3358f --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/Module1.cs @@ -0,0 +1,117 @@ +/* + + Copyright 2023 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace GeoProcesssingEventsWithUI +{ + /// + /// This sample shows how to capture GP Tool runtime events including the percentage completion event. + /// + /// + /// 1. Download the Community Sample data (see under the 'Resources' section for downloading sample data). The sample data contains a project called 'AdminSample.aprx' that includes data that is used by this sample. Make sure that the Sample data is unzipped in c:\data and "C:\Data\Admin" is available. + /// 1. In Visual studio rebuild the solution. + /// 1. Debug the add-in. + /// 1. After ArcGIS Pro opens, open the "C:\Data\Admin\AdminSample.aprx" project. + /// 1. Select the "GP Events" tab. + /// 1. On the "GPTool Events" Group click the "Show GP Feedback" button to display the "GP Runtime Feedback" dockpane. + /// ![UI](Screenshots/Screen1.png) + /// 1. On the "GPTool Events" Group click the "Run GP tool" button to run the "Add Surface Information" GP Tool (Spatial Analyst Tools). + /// ![UI](Screenshots/Screen2.png) + /// 1. Notice the updates to the GP Tool progress status and progress bar. + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("GeoProcesssingEventsWithUI_Module"); + + internal static string TestFcName = "xyzTest"; + + internal static string MemoryLayerName = "Memory GDB Layer"; + + internal static GPFeedbackViewModel GPFeedbackViewModel + { + get; set; + } + + internal static void OpenStatsDockpane () + { + if (Module1.GPFeedbackViewModel == null) + { + GPFeedbackViewModel.Show(); + } + } + + #region Count records in FC + + internal static long GetRecordCountFeatureClass(MemoryConnectionProperties memoryCPs, + string fcName) + { + using var geoDb = new Geodatabase(memoryCPs); + var fc = geoDb.OpenDataset(fcName); + return fc.GetCount(); + } + + internal static long GetRecordCountFeatureClass(FileGeodatabaseConnectionPath connectionPath, + string fcName) + { + using var geoDb = new Geodatabase(connectionPath); + var fc = geoDb.OpenDataset(fcName); + return fc.GetCount(); + } + + #endregion + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Properties/launchSettings.json b/Geoprocessing/GeoProcesssingEventsWithUI/Properties/launchSettings.json new file mode 100644 index 00000000..ff45282c --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "GeoProcesssingEventsWithUI": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/ReadMe.md b/Geoprocessing/GeoProcesssingEventsWithUI/ReadMe.md new file mode 100644 index 00000000..cfcdb253 --- /dev/null +++ b/Geoprocessing/GeoProcesssingEventsWithUI/ReadMe.md @@ -0,0 +1,48 @@ +## GeoProcesssingEventsWithUI + + +This sample shows how to capture GP Tool runtime events including the percentage completion event. + + + +View it live + + +``` +Language: C# +Subject: Framework +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. Download the Community Sample data (see under the 'Resources' section for downloading sample data). The sample data contains a project called 'AdminSample.aprx' that includes data that is used by this sample. Make sure that the Sample data is unzipped in c:\data and "C:\Data\Admin" is available. +2. In Visual studio rebuild the solution. +3. Debug the add-in. +4. After ArcGIS Pro opens, open the "C:\Data\Admin\AdminSample.aprx" project. +5. Select the "GP Events" tab. +6. On the "GPTool Events" Group click the "Show GP Feedback" button to display the "GP Runtime Feedback" dockpane. +![UI](Screenshots/Screen1.png) +7. On the "GPTool Events" Group click the "Run GP tool" button to run the "Add Surface Information" GP Tool (Spatial Analyst Tools). +![UI](Screenshots/Screen2.png) +8. Notice the updates to the GP Tool progress status and progress bar. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Screenshots/Screen1.png b/Geoprocessing/GeoProcesssingEventsWithUI/Screenshots/Screen1.png new file mode 100644 index 00000000..23a8c715 Binary files /dev/null and b/Geoprocessing/GeoProcesssingEventsWithUI/Screenshots/Screen1.png differ diff --git a/Geoprocessing/GeoProcesssingEventsWithUI/Screenshots/Screen2.png b/Geoprocessing/GeoProcesssingEventsWithUI/Screenshots/Screen2.png new file mode 100644 index 00000000..257468ed Binary files /dev/null and b/Geoprocessing/GeoProcesssingEventsWithUI/Screenshots/Screen2.png differ diff --git a/Geoprocessing/GeoProcesssingWithMemoryGDB/GeoProcesssingWithMemoryGDB (C#).md b/Geoprocessing/GeoProcesssingWithMemoryGDB/GeoProcesssingWithMemoryGDB (C#).md index ce8ede76..8be961d7 100644 --- a/Geoprocessing/GeoProcesssingWithMemoryGDB/GeoProcesssingWithMemoryGDB (C#).md +++ b/Geoprocessing/GeoProcesssingWithMemoryGDB/GeoProcesssingWithMemoryGDB (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/GeoProcesssingWithMemoryGDB/ReadMe.md b/Geoprocessing/GeoProcesssingWithMemoryGDB/ReadMe.md index ce8ede76..8be961d7 100644 --- a/Geoprocessing/GeoProcesssingWithMemoryGDB/ReadMe.md +++ b/Geoprocessing/GeoProcesssingWithMemoryGDB/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/Geocode/Geocode (C#).md b/Geoprocessing/Geocode/Geocode (C#).md index 00ccbe9a..7c39bccb 100644 --- a/Geoprocessing/Geocode/Geocode (C#).md +++ b/Geoprocessing/Geocode/Geocode (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/Geocode/ReadMe.md b/Geoprocessing/Geocode/ReadMe.md index 00ccbe9a..7c39bccb 100644 --- a/Geoprocessing/Geocode/ReadMe.md +++ b/Geoprocessing/Geocode/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/GeoprocessingExecuteAsync/GeoprocessingExecuteAsync (C#).md b/Geoprocessing/GeoprocessingExecuteAsync/GeoprocessingExecuteAsync (C#).md index b8ab414b..3a011ac5 100644 --- a/Geoprocessing/GeoprocessingExecuteAsync/GeoprocessingExecuteAsync (C#).md +++ b/Geoprocessing/GeoprocessingExecuteAsync/GeoprocessingExecuteAsync (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/GeoprocessingExecuteAsync/ReadMe.md b/Geoprocessing/GeoprocessingExecuteAsync/ReadMe.md index b8ab414b..3a011ac5 100644 --- a/Geoprocessing/GeoprocessingExecuteAsync/ReadMe.md +++ b/Geoprocessing/GeoprocessingExecuteAsync/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geoprocessing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Geoprocessing/README.md b/Geoprocessing/README.md index 9f528df6..6af12712 100644 --- a/Geoprocessing/README.md +++ b/Geoprocessing/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Geoprocessing -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Geoprocessing' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Geoprocessing' topic. ## Features @@ -23,6 +23,7 @@ This folder contains ArcGIS Pro Add-In Samples that fall under the 'Geoprocessin * [Geocode (c#)](../../../tree/master/Geoprocessing/Geocode) * [GeoprocessingExecuteAsync (c#)](../../../tree/master/Geoprocessing/GeoprocessingExecuteAsync) * [GeoProcessingHistory (c#)](../../../tree/master/Geoprocessing/GeoProcessingHistory) +* [GeoProcesssingEventsWithUI (c#)](../../../tree/master/Geoprocessing/GeoProcesssingEventsWithUI) * [GeoProcesssingWithMemoryGDB (c#)](../../../tree/master/Geoprocessing/GeoProcesssingWithMemoryGDB) * [SimpleBufferExample (c#)](../../../tree/master/Geoprocessing/SimpleBufferExample) diff --git a/Geoprocessing/SimpleBufferExample/Config.daml b/Geoprocessing/SimpleBufferExample/Config.daml index 653a7182..a4f74b44 100644 --- a/Geoprocessing/SimpleBufferExample/Config.daml +++ b/Geoprocessing/SimpleBufferExample/Config.daml @@ -25,23 +25,20 @@ ArcGIS Pro SDK Team, arcgisprosdk@esri.com esri, https://www.esri.com 2/21/2023 12:51:38 - Framework + Geodatabase - - + - - - + + + + + + + + + + + \ No newline at end of file diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DarkImages/AddInDesktop16.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DarkImages/AddInDesktop16.png differ diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DarkImages/AddInDesktop32.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DarkImages/AddInDesktop32.png differ diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer (C#).md b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer (C#).md new file mode 100644 index 00000000..ef458f5d --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer (C#).md @@ -0,0 +1,47 @@ +## DockpaneDragAndDropFeatureLayer + + +This sample shows how to process drag and drop events in an ArcGIS Pro dockpane extension. + + + +View it live + + +``` +Language: C# +Subject: MVVM-XAML +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual Studio click the Build menu. Then select Build Solution. +2. Launch the debugger to open ArcGIS Pro. +3. Open a map view. The map should contain a few feature classes, preferably also a Geodatabase Table. For example: C:\Data\Admin\AdminSample.aprx. +4. Click on the Add-In tab on the ribbon and then on the 'Show Drop Target Dockpane' button to open the 'Drop Target Dockpane'. +5. Click on a File Geodatabase feature class or table in the Catalog pane and drag it onto the dockpane. +![UI](Screenshots/Screen1.png) +![UI](Screenshots/Screen2.png) +6. The dockpane will display the name of the feature class or table if the type is implemented and it will also populate a table control with the data. +![UI](Screenshots/Screen3.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer.csproj b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer.csproj new file mode 100644 index 00000000..4d2472d6 --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer.csproj @@ -0,0 +1,105 @@ + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\GeoProcessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer.sln b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer.sln new file mode 100644 index 00000000..7fe2a331 --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DockpaneDragAndDropFeatureLayer.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DockpaneDragAndDropFeatureLayer", "DockpaneDragAndDropFeatureLayer.csproj", "{C7EF6389-129A-46BF-9DC9-45DC683C47AF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C7EF6389-129A-46BF-9DC9-45DC683C47AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C7EF6389-129A-46BF-9DC9-45DC683C47AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C7EF6389-129A-46BF-9DC9-45DC683C47AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C7EF6389-129A-46BF-9DC9-45DC683C47AF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {487EA1FE-255B-483F-A551-42523CEEC172} + EndGlobalSection +EndGlobal diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpane.xaml b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpane.xaml new file mode 100644 index 00000000..609bb935 --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpane.xaml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpane.xaml.cs b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpane.xaml.cs new file mode 100644 index 00000000..72d2507f --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpane.xaml.cs @@ -0,0 +1,47 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + + +namespace DockpaneDragAndDropFeatureLayer +{ + /// + /// Interaction logic for DropDockpaneView.xaml + /// + public partial class DropDockpaneView : UserControl + { + public DropDockpaneView() + { + InitializeComponent(); + } + } +} diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpaneViewModel.cs b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpaneViewModel.cs new file mode 100644 index 00000000..2e503878 --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/DropDockpaneViewModel.cs @@ -0,0 +1,243 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Core.Internal.CIM; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.DragDrop; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace DockpaneDragAndDropFeatureLayer +{ + internal class DropDockpaneViewModel : DockPane + { + private const string _dockPaneID = "DockpaneDragAndDropFeatureLayer_DropDockpane"; + + protected DropDockpaneViewModel() { } + + /// + /// Show the DockPane. + /// + internal static void Show() + { + DockPane pane = FrameworkApplication.DockPaneManager.Find(_dockPaneID); + if (pane == null) + return; + + pane.Activate(); + } + + private string _tableOrFeatureClass = "Drop table or F/C here"; + + private string _tableOrFeatureClassInfo = "detailed drop info"; + + public string TableOrFeatureClass + { + get => _tableOrFeatureClass; + set => SetProperty(ref _tableOrFeatureClass, value); + } + + public string TableOrFeatureClassInfo + { + get => _tableOrFeatureClassInfo; + set => SetProperty(ref _tableOrFeatureClassInfo, value); + } + + private DataTable _selectedFeaturesDataTable = new DataTable(); + /// + /// The selected data table (for tabular display) + /// + public DataTable SelectedFeatureDataTable + { + get { return _selectedFeaturesDataTable; } + set + { + SetProperty(ref _selectedFeaturesDataTable, value, () => SelectedFeatureDataTable); + } + } + + //TODO:Implement the drag and drop overrides for the dockpane class + public override void OnDragOver(DropInfo dropInfo) + { + //default is to accept our data types + dropInfo.Effects = DragDropEffects.All; + } + + public override void OnDrop(DropInfo dropInfo) + { + //eg, if you are accessing a dropped file + string filePath = dropInfo.Items[0].Data.ToString(); + + if (dropInfo.Data is List clipboardItems) //Dropped from Catalog + { + StringBuilder info = new StringBuilder(); + var thisItem = clipboardItems.FirstOrDefault(); + var itemInfo = thisItem.ItemInfoValue.typeID; + // use the itemInfo to determine the type of item dropped + info.AppendLine(@$"Item type dropped: {itemInfo}"); + TableOrFeatureClass = string.Empty; + SelectedFeatureDataTable = new DataTable(); + switch (itemInfo) + { + case "fgdb_fc_point": + TableOrFeatureClass = thisItem.CatalogPath; + info.AppendLine(@$"Item is displayed in table"); + break; + case "fgdb_fc_line": + TableOrFeatureClass = thisItem.CatalogPath; + info.AppendLine(@$"Item is displayed in table"); + break; + case "fgdb_table": + TableOrFeatureClass = thisItem.CatalogPath; + info.AppendLine(@$"Item is displayed in table"); + break; + default: + info.AppendLine ("Item type not supported"); + break; + } + TableOrFeatureClassInfo = info.ToString(); + if (!string.IsNullOrEmpty(TableOrFeatureClass)) + { + PopulateTableAsync(TableOrFeatureClass, itemInfo); + } + //set to true if you handled the drop + dropInfo.Handled = true; + } + } + + private async void PopulateTableAsync (string catalogPath, string itemInfo) + { + try + { + // get the geodatabase and table path path from catalog path + var parts = catalogPath.Split(new string[] { ".gdb\\" }, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length != 2) + { + ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show($@"Unable to determine the geodatabase and table path from the catalog path: {catalogPath}"); + } + string gdbPath = parts[0] + ".gdb"; + var fcNameParts = parts[1].Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); + string fcName = fcNameParts[^1]; + SelectedFeatureDataTable = await QueuedTask.Run(() => + { + using Geodatabase projectGDB = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(Project.Current.DefaultGeodatabasePath))); + using Table fc = projectGDB.OpenDataset(fcName); + + // Get all selected features for selectedFeatureLayer + // and populate a DataTable with data and column headers + var listColumnNames = new List>(); + var listValues = new List>(); + using (var rowCursor = fc.Search(null)) + { + bool bDefineColumns = true; + while (rowCursor.MoveNext()) + { + using (var anyRow = rowCursor.Current) + { + if (bDefineColumns) + { + foreach (var fld in anyRow.GetFields().Where(fld => fld.FieldType != FieldType.Geometry)) + { + listColumnNames.Add(new KeyValuePair(fld.Name, fld.AliasName)); + } + } + var newRow = new List(); + foreach (var fld in anyRow.GetFields().Where(fld => fld.FieldType != FieldType.Geometry)) + { + newRow.Add((anyRow[fld.Name] == null) ? string.Empty : anyRow[fld.Name].ToString()); + } + listValues.Add(newRow); + bDefineColumns = false; + } + } + } + var newDataTable = new DataTable(); + foreach (var col in listColumnNames) + { + newDataTable.Columns.Add(new DataColumn(col.Key, typeof(string)) { Caption = col.Value }); + } + foreach (var row in listValues) + { + var newRow = newDataTable.NewRow(); + newRow.ItemArray = row.ToArray(); + newDataTable.Rows.Add(newRow); + } + return newDataTable; + }); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($@"PopulateTable Error: {ex.ToString()}"); + } + + + } + + private static Task FeatureClassExistsAsync(string fcName) + { + return QueuedTask.Run(() => + { + try + { + using (Geodatabase projectGDB = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(Project.Current.DefaultGeodatabasePath)))) + { + using (FeatureClass fc = projectGDB.OpenDataset(fcName)) + { + return fc != null; + } + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($@"FeatureClassExists Error: {ex.ToString()}"); + return false; + } + }); + } + } + + + /// + /// Button implementation to show the DockPane. + /// + internal class DropDockpane_ShowButton : Button + { + protected override void OnClick() + { + DropDockpaneViewModel.Show(); + } + } +} diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Images/AddInDesktop16.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Images/AddInDesktop16.png differ diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Images/AddInDesktop32.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Images/AddInDesktop32.png differ diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Module1.cs b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Module1.cs new file mode 100644 index 00000000..01f240d9 --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Module1.cs @@ -0,0 +1,80 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace DockpaneDragAndDropFeatureLayer +{ + /// + /// This sample shows how to process drag and drop events in an ArcGIS Pro dockpane extension. + /// + /// + /// 1. In Visual Studio click the Build menu. Then select Build Solution. + /// 1. Launch the debugger to open ArcGIS Pro. + /// 1. Open a map view. The map should contain a few feature classes, preferably also a Geodatabase Table. For example: C:\Data\Admin\AdminSample.aprx. + /// 1. Click on the Add-In tab on the ribbon and then on the 'Show Drop Target Dockpane' button to open the 'Drop Target Dockpane'. + /// 1. Click on a File Geodatabase feature class or table in the Catalog pane and drag it onto the dockpane. + /// ![UI](Screenshots/Screen1.png) + /// ![UI](Screenshots/Screen2.png) + /// 1. The dockpane will display the name of the feature class or table if the type is implemented and it will also populate a table control with the data. + /// ![UI](Screenshots/Screen3.png) + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("DockpaneDragAndDropFeatureLayer_Module"); + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Properties/launchSettings.json b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Properties/launchSettings.json new file mode 100644 index 00000000..38ab4080 --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "DockpaneDragAndDropFeatureLayer": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/ReadMe.md b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/ReadMe.md new file mode 100644 index 00000000..ef458f5d --- /dev/null +++ b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/ReadMe.md @@ -0,0 +1,47 @@ +## DockpaneDragAndDropFeatureLayer + + +This sample shows how to process drag and drop events in an ArcGIS Pro dockpane extension. + + + +View it live + + +``` +Language: C# +Subject: MVVM-XAML +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual Studio click the Build menu. Then select Build Solution. +2. Launch the debugger to open ArcGIS Pro. +3. Open a map view. The map should contain a few feature classes, preferably also a Geodatabase Table. For example: C:\Data\Admin\AdminSample.aprx. +4. Click on the Add-In tab on the ribbon and then on the 'Show Drop Target Dockpane' button to open the 'Drop Target Dockpane'. +5. Click on a File Geodatabase feature class or table in the Catalog pane and drag it onto the dockpane. +![UI](Screenshots/Screen1.png) +![UI](Screenshots/Screen2.png) +6. The dockpane will display the name of the feature class or table if the type is implemented and it will also populate a table control with the data. +![UI](Screenshots/Screen3.png) + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen1.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen1.png new file mode 100644 index 00000000..c69ff942 Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen1.png differ diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen2.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen2.png new file mode 100644 index 00000000..68431e9d Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen2.png differ diff --git a/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen3.png b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen3.png new file mode 100644 index 00000000..e5bb02b0 Binary files /dev/null and b/MVVM-XAML/DockpaneDragAndDropFeatureLayer/Screenshots/Screen3.png differ diff --git a/MVVM-XAML/DockpaneWithLayerFieldSelection/DockpaneWithLayerFieldSelection (C#).md b/MVVM-XAML/DockpaneWithLayerFieldSelection/DockpaneWithLayerFieldSelection (C#).md index 10671886..cfb81b2a 100644 --- a/MVVM-XAML/DockpaneWithLayerFieldSelection/DockpaneWithLayerFieldSelection (C#).md +++ b/MVVM-XAML/DockpaneWithLayerFieldSelection/DockpaneWithLayerFieldSelection (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: MVVM-XAML Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/MVVM-XAML/DockpaneWithLayerFieldSelection/ReadMe.md b/MVVM-XAML/DockpaneWithLayerFieldSelection/ReadMe.md index 10671886..cfb81b2a 100644 --- a/MVVM-XAML/DockpaneWithLayerFieldSelection/ReadMe.md +++ b/MVVM-XAML/DockpaneWithLayerFieldSelection/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: MVVM-XAML Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/MVVM-XAML/DockpaneWithListCheckbox/DockpaneWithListCheckbox (C#).md b/MVVM-XAML/DockpaneWithListCheckbox/DockpaneWithListCheckbox (C#).md index 81bf417d..18202f1d 100644 --- a/MVVM-XAML/DockpaneWithListCheckbox/DockpaneWithListCheckbox (C#).md +++ b/MVVM-XAML/DockpaneWithListCheckbox/DockpaneWithListCheckbox (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: MVVM-XAML Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/MVVM-XAML/DockpaneWithListCheckbox/ReadMe.md b/MVVM-XAML/DockpaneWithListCheckbox/ReadMe.md index 81bf417d..18202f1d 100644 --- a/MVVM-XAML/DockpaneWithListCheckbox/ReadMe.md +++ b/MVVM-XAML/DockpaneWithListCheckbox/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: MVVM-XAML Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/MVVM-XAML/DockpaneWithProButtons/DockpaneWithProButtons (C#).md b/MVVM-XAML/DockpaneWithProButtons/DockpaneWithProButtons (C#).md index fb8a09cf..916c9fbb 100644 --- a/MVVM-XAML/DockpaneWithProButtons/DockpaneWithProButtons (C#).md +++ b/MVVM-XAML/DockpaneWithProButtons/DockpaneWithProButtons (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: MVVM-XAML Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/MVVM-XAML/DockpaneWithProButtons/ReadMe.md b/MVVM-XAML/DockpaneWithProButtons/ReadMe.md index fb8a09cf..916c9fbb 100644 --- a/MVVM-XAML/DockpaneWithProButtons/ReadMe.md +++ b/MVVM-XAML/DockpaneWithProButtons/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: MVVM-XAML Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/MVVM-XAML/ReadMe.md b/MVVM-XAML/ReadMe.md index c616f5d7..f90e2123 100644 --- a/MVVM-XAML/ReadMe.md +++ b/MVVM-XAML/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: MVVM / XAML -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'MVVM / XAML' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'MVVM / XAML' topic. ## Features @@ -15,6 +15,7 @@ This folder contains ArcGIS Pro Add-In Samples that fall under the 'MVVM / XAML' * [DatagridMultiSelect (c#)](../../../tree/master/MVVM-XAML/DatagridMultiSelect) * [DockpaneAndThreads (c#)](../../../tree/master/MVVM-XAML/DockpaneAndThreads) +* [DockpaneDragAndDropFeatureLayer (c#)](../../../tree/master/MVVM-XAML/DockpaneDragAndDropFeatureLayer) * [DockpaneWithLayerFieldSelection (c#)](../../../tree/master/MVVM-XAML/DockpaneWithLayerFieldSelection) * [DockpaneWithListCheckbox (c#)](../../../tree/master/MVVM-XAML/DockpaneWithListCheckbox) * [DockpaneWithProButtons (c#)](../../../tree/master/MVVM-XAML/DockpaneWithProButtons) diff --git a/Map-Authoring/AddRasterLayer/AddRasterLayer (C#).md b/Map-Authoring/AddRasterLayer/AddRasterLayer (C#).md index fe89e02e..aeb7a41d 100644 --- a/Map-Authoring/AddRasterLayer/AddRasterLayer (C#).md +++ b/Map-Authoring/AddRasterLayer/AddRasterLayer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/AddRasterLayer/ReadMe.md b/Map-Authoring/AddRasterLayer/ReadMe.md index fe89e02e..aeb7a41d 100644 --- a/Map-Authoring/AddRasterLayer/ReadMe.md +++ b/Map-Authoring/AddRasterLayer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/AddToMapCustomItem/AddToMapCustomItem (C#).md b/Map-Authoring/AddToMapCustomItem/AddToMapCustomItem (C#).md index 8cb103ea..38c43935 100644 --- a/Map-Authoring/AddToMapCustomItem/AddToMapCustomItem (C#).md +++ b/Map-Authoring/AddToMapCustomItem/AddToMapCustomItem (C#).md @@ -19,8 +19,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/AddToMapCustomItem/ReadMe.md b/Map-Authoring/AddToMapCustomItem/ReadMe.md index 8cb103ea..38c43935 100644 --- a/Map-Authoring/AddToMapCustomItem/ReadMe.md +++ b/Map-Authoring/AddToMapCustomItem/ReadMe.md @@ -19,8 +19,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/CIMExamples/CIMExamples (C#).md b/Map-Authoring/CIMExamples/CIMExamples (C#).md index ae27faee..ec556653 100644 --- a/Map-Authoring/CIMExamples/CIMExamples (C#).md +++ b/Map-Authoring/CIMExamples/CIMExamples (C#).md @@ -19,8 +19,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/CIMExamples/ReadMe.md b/Map-Authoring/CIMExamples/ReadMe.md index ae27faee..ec556653 100644 --- a/Map-Authoring/CIMExamples/ReadMe.md +++ b/Map-Authoring/CIMExamples/ReadMe.md @@ -19,8 +19,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/ColorPickerControl/ColorPickerControl (C#).md b/Map-Authoring/ColorPickerControl/ColorPickerControl (C#).md index 6b9113e2..265b7398 100644 --- a/Map-Authoring/ColorPickerControl/ColorPickerControl (C#).md +++ b/Map-Authoring/ColorPickerControl/ColorPickerControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/ColorPickerControl/ReadMe.md b/Map-Authoring/ColorPickerControl/ReadMe.md index 6b9113e2..265b7398 100644 --- a/Map-Authoring/ColorPickerControl/ReadMe.md +++ b/Map-Authoring/ColorPickerControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/ConstructMarkerFromFont/ConstructMarkerFromFont (C#).md b/Map-Authoring/ConstructMarkerFromFont/ConstructMarkerFromFont (C#).md index 6ea69b1f..2f397ebc 100644 --- a/Map-Authoring/ConstructMarkerFromFont/ConstructMarkerFromFont (C#).md +++ b/Map-Authoring/ConstructMarkerFromFont/ConstructMarkerFromFont (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/ConstructMarkerFromFont/ReadMe.md b/Map-Authoring/ConstructMarkerFromFont/ReadMe.md index 6ea69b1f..2f397ebc 100644 --- a/Map-Authoring/ConstructMarkerFromFont/ReadMe.md +++ b/Map-Authoring/ConstructMarkerFromFont/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/CustomSymbolPicker/CustomSymbolPicker (C#).md b/Map-Authoring/CustomSymbolPicker/CustomSymbolPicker (C#).md index 486bf3b8..f778dc42 100644 --- a/Map-Authoring/CustomSymbolPicker/CustomSymbolPicker (C#).md +++ b/Map-Authoring/CustomSymbolPicker/CustomSymbolPicker (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/CustomSymbolPicker/ReadMe.md b/Map-Authoring/CustomSymbolPicker/ReadMe.md index 486bf3b8..f778dc42 100644 --- a/Map-Authoring/CustomSymbolPicker/ReadMe.md +++ b/Map-Authoring/CustomSymbolPicker/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/DisplayFilters/DisplayFilters (C#).md b/Map-Authoring/DisplayFilters/DisplayFilters (C#).md index 77ed6f19..7a7918c2 100644 --- a/Map-Authoring/DisplayFilters/DisplayFilters (C#).md +++ b/Map-Authoring/DisplayFilters/DisplayFilters (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/DisplayFilters/ReadMe.md b/Map-Authoring/DisplayFilters/ReadMe.md index 77ed6f19..7a7918c2 100644 --- a/Map-Authoring/DisplayFilters/ReadMe.md +++ b/Map-Authoring/DisplayFilters/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GeocodingTools/GeocodingTools (C#).md b/Map-Authoring/GeocodingTools/GeocodingTools (C#).md index 2d9ce208..ed07e1be 100644 --- a/Map-Authoring/GeocodingTools/GeocodingTools (C#).md +++ b/Map-Authoring/GeocodingTools/GeocodingTools (C#).md @@ -21,8 +21,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GeocodingTools/ReadMe.md b/Map-Authoring/GeocodingTools/ReadMe.md index 2d9ce208..ed07e1be 100644 --- a/Map-Authoring/GeocodingTools/ReadMe.md +++ b/Map-Authoring/GeocodingTools/ReadMe.md @@ -21,8 +21,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GetSymbolSwatch/GetSymbolSwatch (C#).md b/Map-Authoring/GetSymbolSwatch/GetSymbolSwatch (C#).md index 16ec7d00..68453768 100644 --- a/Map-Authoring/GetSymbolSwatch/GetSymbolSwatch (C#).md +++ b/Map-Authoring/GetSymbolSwatch/GetSymbolSwatch (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GetSymbolSwatch/ReadMe.md b/Map-Authoring/GetSymbolSwatch/ReadMe.md index 16ec7d00..68453768 100644 --- a/Map-Authoring/GetSymbolSwatch/ReadMe.md +++ b/Map-Authoring/GetSymbolSwatch/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GraphicElementSymbolPicker/GraphicElementSymbolPicker (C#).md b/Map-Authoring/GraphicElementSymbolPicker/GraphicElementSymbolPicker (C#).md index 52fb156e..8b92e58a 100644 --- a/Map-Authoring/GraphicElementSymbolPicker/GraphicElementSymbolPicker (C#).md +++ b/Map-Authoring/GraphicElementSymbolPicker/GraphicElementSymbolPicker (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GraphicElementSymbolPicker/ReadMe.md b/Map-Authoring/GraphicElementSymbolPicker/ReadMe.md index 52fb156e..8b92e58a 100644 --- a/Map-Authoring/GraphicElementSymbolPicker/ReadMe.md +++ b/Map-Authoring/GraphicElementSymbolPicker/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GraphicTools/GraphicTools (C#).md b/Map-Authoring/GraphicTools/GraphicTools (C#).md index 4b06a10b..ede77c41 100644 --- a/Map-Authoring/GraphicTools/GraphicTools (C#).md +++ b/Map-Authoring/GraphicTools/GraphicTools (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GraphicTools/ReadMe.md b/Map-Authoring/GraphicTools/ReadMe.md index 4b06a10b..ede77c41 100644 --- a/Map-Authoring/GraphicTools/ReadMe.md +++ b/Map-Authoring/GraphicTools/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GraphicsLayers/GraphicsLayers (C#).md b/Map-Authoring/GraphicsLayers/GraphicsLayers (C#).md index 6beeea33..74a06be1 100644 --- a/Map-Authoring/GraphicsLayers/GraphicsLayers (C#).md +++ b/Map-Authoring/GraphicsLayers/GraphicsLayers (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/GraphicsLayers/ReadMe.md b/Map-Authoring/GraphicsLayers/ReadMe.md index 6beeea33..74a06be1 100644 --- a/Map-Authoring/GraphicsLayers/ReadMe.md +++ b/Map-Authoring/GraphicsLayers/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/LabelLineFeatures/LabelLineFeatures (C#).md b/Map-Authoring/LabelLineFeatures/LabelLineFeatures (C#).md index cbd4b3b9..3998e853 100644 --- a/Map-Authoring/LabelLineFeatures/LabelLineFeatures (C#).md +++ b/Map-Authoring/LabelLineFeatures/LabelLineFeatures (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/LabelLineFeatures/ReadMe.md b/Map-Authoring/LabelLineFeatures/ReadMe.md index cbd4b3b9..3998e853 100644 --- a/Map-Authoring/LabelLineFeatures/ReadMe.md +++ b/Map-Authoring/LabelLineFeatures/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/LayersPane/LayersPane (C#).md b/Map-Authoring/LayersPane/LayersPane (C#).md index 3c0a02a1..454f62ed 100644 --- a/Map-Authoring/LayersPane/LayersPane (C#).md +++ b/Map-Authoring/LayersPane/LayersPane (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/LayersPane/ReadMe.md b/Map-Authoring/LayersPane/ReadMe.md index 3c0a02a1..454f62ed 100644 --- a/Map-Authoring/LayersPane/ReadMe.md +++ b/Map-Authoring/LayersPane/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/LayersPane/UI/LayersPaneViewModel.cs b/Map-Authoring/LayersPane/UI/LayersPaneViewModel.cs index 9bfd49d7..c95cb532 100644 --- a/Map-Authoring/LayersPane/UI/LayersPaneViewModel.cs +++ b/Map-Authoring/LayersPane/UI/LayersPaneViewModel.cs @@ -166,65 +166,63 @@ await QueuedTask.Run(() => } if (cursor.MoveNext()) { - using (Row currentRow = cursor.Current) - { - var maxcols = currentRow.GetFields().Count() > 6 - ? 6 - : currentRow.GetFields().Count(); - for (var c = 0; c < maxcols; c++) - { - Type colType = typeof(string); - var format = string.Empty; - var fldDefinition = currentRow.GetFields()[c]; - switch (fldDefinition.FieldType) - { - case FieldType.Blob: - format = "Blob"; - break; - case FieldType.Raster: - format = "Raster"; - break; - case FieldType.Geometry: - format = "Geom"; - break; - case FieldType.Date: - colType = typeof(DateTime); - format = @"mm/dd/yyyy"; - break; - case FieldType.Double: - format = "0,0.0##"; - break; - case FieldType.Integer: - case FieldType.OID: - case FieldType.Single: - case FieldType.SmallInteger: - format = "0,0"; - break; - case FieldType.GlobalID: - case FieldType.GUID: - case FieldType.String: - case FieldType.XML: - default: - break; - } - var col = new DataColumn(fldDefinition.Name, colType) - { - Caption = fldDefinition.AliasName - }; - dt.Columns.Add(col); - } - do - { - var row = dt.NewRow(); - rowCount++; - for (var colIdx = 0; colIdx < maxcols; colIdx++) - { - row[colIdx] = currentRow[colIdx]; - } - dt.Rows.Add(row); - } while (cursor.MoveNext()); - } - } + using Row currentRow = cursor.Current; + var maxcols = currentRow.GetFields().Count() > 6 + ? 6 + : currentRow.GetFields().Count(); + for (var c = 0; c < maxcols; c++) + { + Type colType = typeof(string); + var format = string.Empty; + var fldDefinition = currentRow.GetFields()[c]; + switch (fldDefinition.FieldType) + { + case FieldType.Blob: + format = "Blob"; + break; + case FieldType.Raster: + format = "Raster"; + break; + case FieldType.Geometry: + format = "Geom"; + break; + case FieldType.Date: + colType = typeof(DateTime); + format = @"mm/dd/yyyy"; + break; + case FieldType.Double: + format = "0,0.0##"; + break; + case FieldType.Integer: + case FieldType.OID: + case FieldType.Single: + case FieldType.SmallInteger: + format = "0,0"; + break; + case FieldType.GlobalID: + case FieldType.GUID: + case FieldType.String: + case FieldType.XML: + default: + break; + } + var col = new DataColumn(fldDefinition.Name, colType) + { + Caption = fldDefinition.AliasName + }; + dt.Columns.Add(col); + } + do + { + var row = dt.NewRow(); + rowCount++; + for (var colIdx = 0; colIdx < maxcols; colIdx++) + { + row[colIdx] = currentRow[colIdx]; + } + dt.Rows.Add(row); + } while (cursor.MoveNext()); + } Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => UpdateDataTableOnUI(dt))); } diff --git a/Map-Authoring/MapDisplayUnits/MapUnits (C#).md b/Map-Authoring/MapDisplayUnits/MapUnits (C#).md index f5e02108..c1dcb713 100644 --- a/Map-Authoring/MapDisplayUnits/MapUnits (C#).md +++ b/Map-Authoring/MapDisplayUnits/MapUnits (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/MapDisplayUnits/ReadMe.md b/Map-Authoring/MapDisplayUnits/ReadMe.md index f5e02108..c1dcb713 100644 --- a/Map-Authoring/MapDisplayUnits/ReadMe.md +++ b/Map-Authoring/MapDisplayUnits/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/MappingAddIns/MappingSampleAddIns (C#).md b/Map-Authoring/MappingAddIns/MappingSampleAddIns (C#).md index c631c0a2..649c4844 100644 --- a/Map-Authoring/MappingAddIns/MappingSampleAddIns (C#).md +++ b/Map-Authoring/MappingAddIns/MappingSampleAddIns (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/MappingAddIns/ReadMe.md b/Map-Authoring/MappingAddIns/ReadMe.md index c631c0a2..649c4844 100644 --- a/Map-Authoring/MappingAddIns/ReadMe.md +++ b/Map-Authoring/MappingAddIns/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/OfflineMapping/OfflineMapping (C#).md b/Map-Authoring/OfflineMapping/OfflineMapping (C#).md index 80991a47..2fc40ae9 100644 --- a/Map-Authoring/OfflineMapping/OfflineMapping (C#).md +++ b/Map-Authoring/OfflineMapping/OfflineMapping (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/OfflineMapping/ReadMe.md b/Map-Authoring/OfflineMapping/ReadMe.md index 80991a47..2fc40ae9 100644 --- a/Map-Authoring/OfflineMapping/ReadMe.md +++ b/Map-Authoring/OfflineMapping/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/PlaceText/PlaceText (C#).md b/Map-Authoring/PlaceText/PlaceText (C#).md index b073b4b5..1aaa3f46 100644 --- a/Map-Authoring/PlaceText/PlaceText (C#).md +++ b/Map-Authoring/PlaceText/PlaceText (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/PlaceText/ReadMe.md b/Map-Authoring/PlaceText/ReadMe.md index b073b4b5..1aaa3f46 100644 --- a/Map-Authoring/PlaceText/ReadMe.md +++ b/Map-Authoring/PlaceText/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ProceduralSymbolLayersWithRulePackages (C#).md b/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ProceduralSymbolLayersWithRulePackages (C#).md index 246acdac..04448b83 100644 --- a/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ProceduralSymbolLayersWithRulePackages (C#).md +++ b/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ProceduralSymbolLayersWithRulePackages (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ReadMe.md b/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ReadMe.md index 246acdac..04448b83 100644 --- a/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ReadMe.md +++ b/Map-Authoring/ProceduralSymbolLayersWithRulePackages/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/QueryBuilderControl/QueryBuilderControl (C#).md b/Map-Authoring/QueryBuilderControl/QueryBuilderControl (C#).md index 9fdf082b..c71bb4f7 100644 --- a/Map-Authoring/QueryBuilderControl/QueryBuilderControl (C#).md +++ b/Map-Authoring/QueryBuilderControl/QueryBuilderControl (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/QueryBuilderControl/ReadMe.md b/Map-Authoring/QueryBuilderControl/ReadMe.md index 9fdf082b..c71bb4f7 100644 --- a/Map-Authoring/QueryBuilderControl/ReadMe.md +++ b/Map-Authoring/QueryBuilderControl/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/README.md b/Map-Authoring/README.md index 73317a88..1bbdc2aa 100644 --- a/Map-Authoring/README.md +++ b/Map-Authoring/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Map-Authoring -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Map-Authoring' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Map-Authoring' topic. ## Features diff --git a/Map-Authoring/Renderer/ReadMe.md b/Map-Authoring/Renderer/ReadMe.md index 08b3aa28..2bd59003 100644 --- a/Map-Authoring/Renderer/ReadMe.md +++ b/Map-Authoring/Renderer/ReadMe.md @@ -24,8 +24,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/Renderer/Renderer (C#).md b/Map-Authoring/Renderer/Renderer (C#).md index 08b3aa28..2bd59003 100644 --- a/Map-Authoring/Renderer/Renderer (C#).md +++ b/Map-Authoring/Renderer/Renderer (C#).md @@ -24,8 +24,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/SymbolControls/ReadMe.md b/Map-Authoring/SymbolControls/ReadMe.md index ec1c7832..dda67f0e 100644 --- a/Map-Authoring/SymbolControls/ReadMe.md +++ b/Map-Authoring/SymbolControls/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/SymbolControls/SymbolControls (C#).md b/Map-Authoring/SymbolControls/SymbolControls (C#).md index ec1c7832..dda67f0e 100644 --- a/Map-Authoring/SymbolControls/SymbolControls (C#).md +++ b/Map-Authoring/SymbolControls/SymbolControls (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/SymbolLookup/ReadMe.md b/Map-Authoring/SymbolLookup/ReadMe.md index 1b9e1398..98520671 100644 --- a/Map-Authoring/SymbolLookup/ReadMe.md +++ b/Map-Authoring/SymbolLookup/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/SymbolLookup/SymbolLookup (C#).md b/Map-Authoring/SymbolLookup/SymbolLookup (C#).md index 1b9e1398..98520671 100644 --- a/Map-Authoring/SymbolLookup/SymbolLookup (C#).md +++ b/Map-Authoring/SymbolLookup/SymbolLookup (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/SymbolSearcherControl/ReadMe.md b/Map-Authoring/SymbolSearcherControl/ReadMe.md index 889e2422..d32cd48d 100644 --- a/Map-Authoring/SymbolSearcherControl/ReadMe.md +++ b/Map-Authoring/SymbolSearcherControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/SymbolSearcherControl/SymbolSearcherControl (C#).md b/Map-Authoring/SymbolSearcherControl/SymbolSearcherControl (C#).md index 889e2422..d32cd48d 100644 --- a/Map-Authoring/SymbolSearcherControl/SymbolSearcherControl (C#).md +++ b/Map-Authoring/SymbolSearcherControl/SymbolSearcherControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/Symbology/ReadMe.md b/Map-Authoring/Symbology/ReadMe.md index edcd0395..3c472fa8 100644 --- a/Map-Authoring/Symbology/ReadMe.md +++ b/Map-Authoring/Symbology/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/Symbology/Symbology (C#).md b/Map-Authoring/Symbology/Symbology (C#).md index edcd0395..3c472fa8 100644 --- a/Map-Authoring/Symbology/Symbology (C#).md +++ b/Map-Authoring/Symbology/Symbology (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/TextSymbols/ReadMe.md b/Map-Authoring/TextSymbols/ReadMe.md index 23f762b9..792c7483 100644 --- a/Map-Authoring/TextSymbols/ReadMe.md +++ b/Map-Authoring/TextSymbols/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/TextSymbols/TextSymbols (C#).md b/Map-Authoring/TextSymbols/TextSymbols (C#).md index 23f762b9..792c7483 100644 --- a/Map-Authoring/TextSymbols/TextSymbols (C#).md +++ b/Map-Authoring/TextSymbols/TextSymbols (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/TransformationsControl/ReadMe.md b/Map-Authoring/TransformationsControl/ReadMe.md index cfa5b882..3f19596e 100644 --- a/Map-Authoring/TransformationsControl/ReadMe.md +++ b/Map-Authoring/TransformationsControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/TransformationsControl/TransformationsControl (C#).md b/Map-Authoring/TransformationsControl/TransformationsControl (C#).md index cfa5b882..3f19596e 100644 --- a/Map-Authoring/TransformationsControl/TransformationsControl (C#).md +++ b/Map-Authoring/TransformationsControl/TransformationsControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/TrayButtons/ReadMe.md b/Map-Authoring/TrayButtons/ReadMe.md index 7658d78c..6d14a0ac 100644 --- a/Map-Authoring/TrayButtons/ReadMe.md +++ b/Map-Authoring/TrayButtons/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/TrayButtons/TrayButtons (C#).md b/Map-Authoring/TrayButtons/TrayButtons (C#).md index 7658d78c..6d14a0ac 100644 --- a/Map-Authoring/TrayButtons/TrayButtons (C#).md +++ b/Map-Authoring/TrayButtons/TrayButtons (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/WorkingWithRasterLayers/ReadMe.md b/Map-Authoring/WorkingWithRasterLayers/ReadMe.md index 8435620b..c00863a7 100644 --- a/Map-Authoring/WorkingWithRasterLayers/ReadMe.md +++ b/Map-Authoring/WorkingWithRasterLayers/ReadMe.md @@ -19,8 +19,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Authoring/WorkingWithRasterLayers/WorkingWithRasterLayers (C#).md b/Map-Authoring/WorkingWithRasterLayers/WorkingWithRasterLayers (C#).md index 8435620b..c00863a7 100644 --- a/Map-Authoring/WorkingWithRasterLayers/WorkingWithRasterLayers (C#).md +++ b/Map-Authoring/WorkingWithRasterLayers/WorkingWithRasterLayers (C#).md @@ -19,8 +19,8 @@ Language: C# Subject: Map Authoring Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/AnimationFromPath/AnimationFromPath (C#).md b/Map-Exploration/AnimationFromPath/AnimationFromPath (C#).md index ed69cb3e..3dfd2c97 100644 --- a/Map-Exploration/AnimationFromPath/AnimationFromPath (C#).md +++ b/Map-Exploration/AnimationFromPath/AnimationFromPath (C#).md @@ -19,8 +19,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/AnimationFromPath/ReadMe.md b/Map-Exploration/AnimationFromPath/ReadMe.md index ed69cb3e..3dfd2c97 100644 --- a/Map-Exploration/AnimationFromPath/ReadMe.md +++ b/Map-Exploration/AnimationFromPath/ReadMe.md @@ -19,8 +19,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/AnimationTools/AnimationTools (C#).md b/Map-Exploration/AnimationTools/AnimationTools (C#).md index ac62bf18..644e07c8 100644 --- a/Map-Exploration/AnimationTools/AnimationTools (C#).md +++ b/Map-Exploration/AnimationTools/AnimationTools (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/AnimationTools/ReadMe.md b/Map-Exploration/AnimationTools/ReadMe.md index ac62bf18..644e07c8 100644 --- a/Map-Exploration/AnimationTools/ReadMe.md +++ b/Map-Exploration/AnimationTools/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/AttributeCustomDockpane/AttributeCustomDockpane (C#).md b/Map-Exploration/AttributeCustomDockpane/AttributeCustomDockpane (C#).md index de864f90..9e998f52 100644 --- a/Map-Exploration/AttributeCustomDockpane/AttributeCustomDockpane (C#).md +++ b/Map-Exploration/AttributeCustomDockpane/AttributeCustomDockpane (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/AttributeCustomDockpane/ReadMe.md b/Map-Exploration/AttributeCustomDockpane/ReadMe.md index de864f90..9e998f52 100644 --- a/Map-Exploration/AttributeCustomDockpane/ReadMe.md +++ b/Map-Exploration/AttributeCustomDockpane/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/BasicMapTool/BasicMapTool (C#).md b/Map-Exploration/BasicMapTool/BasicMapTool (C#).md index 649d89d4..9266db5c 100644 --- a/Map-Exploration/BasicMapTool/BasicMapTool (C#).md +++ b/Map-Exploration/BasicMapTool/BasicMapTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/BasicMapTool/ReadMe.md b/Map-Exploration/BasicMapTool/ReadMe.md index 649d89d4..9266db5c 100644 --- a/Map-Exploration/BasicMapTool/ReadMe.md +++ b/Map-Exploration/BasicMapTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/BingStreetside/BingStreetside (C#).md b/Map-Exploration/BingStreetside/BingStreetside (C#).md index 27f9b6e5..516b1b5c 100644 --- a/Map-Exploration/BingStreetside/BingStreetside (C#).md +++ b/Map-Exploration/BingStreetside/BingStreetside (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/BingStreetside/ReadMe.md b/Map-Exploration/BingStreetside/ReadMe.md index 27f9b6e5..516b1b5c 100644 --- a/Map-Exploration/BingStreetside/ReadMe.md +++ b/Map-Exploration/BingStreetside/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CameraNavigation/CameraNavigation (C#).md b/Map-Exploration/CameraNavigation/CameraNavigation (C#).md index 3103310f..20efe9d4 100644 --- a/Map-Exploration/CameraNavigation/CameraNavigation (C#).md +++ b/Map-Exploration/CameraNavigation/CameraNavigation (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CameraNavigation/ReadMe.md b/Map-Exploration/CameraNavigation/ReadMe.md index 3103310f..20efe9d4 100644 --- a/Map-Exploration/CameraNavigation/ReadMe.md +++ b/Map-Exploration/CameraNavigation/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ChangeDataSource/ChangeDataSource (C#).md b/Map-Exploration/ChangeDataSource/ChangeDataSource (C#).md index aa3f712b..020cd9fe 100644 --- a/Map-Exploration/ChangeDataSource/ChangeDataSource (C#).md +++ b/Map-Exploration/ChangeDataSource/ChangeDataSource (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ChangeDataSource/ReadMe.md b/Map-Exploration/ChangeDataSource/ReadMe.md index aa3f712b..020cd9fe 100644 --- a/Map-Exploration/ChangeDataSource/ReadMe.md +++ b/Map-Exploration/ChangeDataSource/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CheckSelectionLayer/CheckSelectionLayer (C#).md b/Map-Exploration/CheckSelectionLayer/CheckSelectionLayer (C#).md index 5afe0972..dbf0ac8c 100644 --- a/Map-Exploration/CheckSelectionLayer/CheckSelectionLayer (C#).md +++ b/Map-Exploration/CheckSelectionLayer/CheckSelectionLayer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows7.0 ``` diff --git a/Map-Exploration/CheckSelectionLayer/ReadMe.md b/Map-Exploration/CheckSelectionLayer/ReadMe.md index 5afe0972..dbf0ac8c 100644 --- a/Map-Exploration/CheckSelectionLayer/ReadMe.md +++ b/Map-Exploration/CheckSelectionLayer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows7.0 ``` diff --git a/Map-Exploration/ComboBoxSelectFeature/ComboBoxSelectFeature (C#).md b/Map-Exploration/ComboBoxSelectFeature/ComboBoxSelectFeature (C#).md index 58401b78..10a767fe 100644 --- a/Map-Exploration/ComboBoxSelectFeature/ComboBoxSelectFeature (C#).md +++ b/Map-Exploration/ComboBoxSelectFeature/ComboBoxSelectFeature (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ComboBoxSelectFeature/ReadMe.md b/Map-Exploration/ComboBoxSelectFeature/ReadMe.md index 58401b78..10a767fe 100644 --- a/Map-Exploration/ComboBoxSelectFeature/ReadMe.md +++ b/Map-Exploration/ComboBoxSelectFeature/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ComboBoxShowingLayers/ComboBoxShowingLayers (C#).md b/Map-Exploration/ComboBoxShowingLayers/ComboBoxShowingLayers (C#).md index de0230d8..a1439ace 100644 --- a/Map-Exploration/ComboBoxShowingLayers/ComboBoxShowingLayers (C#).md +++ b/Map-Exploration/ComboBoxShowingLayers/ComboBoxShowingLayers (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ComboBoxShowingLayers/ReadMe.md b/Map-Exploration/ComboBoxShowingLayers/ReadMe.md index de0230d8..a1439ace 100644 --- a/Map-Exploration/ComboBoxShowingLayers/ReadMe.md +++ b/Map-Exploration/ComboBoxShowingLayers/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomAnimation/CustomAnimation (C#).md b/Map-Exploration/CustomAnimation/CustomAnimation (C#).md index 0f6d95e2..ebb91c74 100644 --- a/Map-Exploration/CustomAnimation/CustomAnimation (C#).md +++ b/Map-Exploration/CustomAnimation/CustomAnimation (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomAnimation/FollowPath.cs b/Map-Exploration/CustomAnimation/FollowPath.cs index 77a97ffa..63ddf400 100644 --- a/Map-Exploration/CustomAnimation/FollowPath.cs +++ b/Map-Exploration/CustomAnimation/FollowPath.cs @@ -47,43 +47,41 @@ protected override async void OnClick() var keyValuePairs = selection.ToDictionary().Where(kvp => (kvp.Key is BasicFeatureLayer) && (kvp.Key as BasicFeatureLayer).ShapeType == esriGeometryType.esriGeometryPolyline); - foreach (var kvp in keyValuePairs) - { - var layer = kvp.Key as BasicFeatureLayer; - var oid = kvp.Value.First(); + foreach (var kvp in keyValuePairs) + { + var layer = kvp.Key as BasicFeatureLayer; + var oid = kvp.Value.First(); - //Get a cursor for the layer using the OID of the first selected feature. - var oidField = layer.GetTable().GetDefinition().GetObjectIDField(); - var qf = new ArcGIS.Core.Data.QueryFilter() { WhereClause = string.Format("{0} = {1}", oidField, oid) }; - var cursor = layer.Search(qf); + //Get a cursor for the layer using the OID of the first selected feature. + var oidField = layer.GetTable().GetDefinition().GetObjectIDField(); + var qf = new ArcGIS.Core.Data.QueryFilter() { WhereClause = string.Format("{0} = {1}", oidField, oid) }; + using var cursor = layer.Search(qf); - if (cursor.MoveNext()) - { - using (var row = cursor.Current as Feature) - { + if (cursor.MoveNext()) + { + using var row = cursor.Current as Feature; - if (row == null) - continue; + if (row == null) + continue; - //If the feature doesn't have Z values in the geometry continue to the next layer. - var polyline = row.GetShape(); - if (!polyline.HasZ) - continue; + //If the feature doesn't have Z values in the geometry continue to the next layer. + var polyline = row.GetShape(); + if (!polyline.HasZ) + continue; - //If the layer doesn't have 3D properties set continue to the next layer. - var layerDef = layer.GetDefinition(); - var layer3DProperties = layerDef.Layer3DProperties; - if (layer3DProperties == null) - continue; + //If the layer doesn't have 3D properties set continue to the next layer. + var layerDef = layer.GetDefinition(); + var layer3DProperties = layerDef.Layer3DProperties; + if (layer3DProperties == null) + continue; - //Get the vertical unit set on the layer and send it and the line feature to the module method to construct the keyframes. - var verticalUnit = layer3DProperties.VerticalUnit; - Animation.Current.CreateKeyframesAlongPath(polyline as Polyline, verticalUnit); - return true; - } - } - } - return false; + //Get the vertical unit set on the layer and send it and the line feature to the module method to construct the keyframes. + var verticalUnit = layer3DProperties.VerticalUnit; + Animation.Current.CreateKeyframesAlongPath(polyline as Polyline, verticalUnit); + return true; + } + } + return false; }); //If at least 1 selected 3D feature was not found show a message box. diff --git a/Map-Exploration/CustomAnimation/ReadMe.md b/Map-Exploration/CustomAnimation/ReadMe.md index 0f6d95e2..ebb91c74 100644 --- a/Map-Exploration/CustomAnimation/ReadMe.md +++ b/Map-Exploration/CustomAnimation/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomIdentify/CustomIdentify (C#).md b/Map-Exploration/CustomIdentify/CustomIdentify (C#).md index 1a4bb3ea..2aa43fa0 100644 --- a/Map-Exploration/CustomIdentify/CustomIdentify (C#).md +++ b/Map-Exploration/CustomIdentify/CustomIdentify (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomIdentify/ReadMe.md b/Map-Exploration/CustomIdentify/ReadMe.md index 1a4bb3ea..2aa43fa0 100644 --- a/Map-Exploration/CustomIdentify/ReadMe.md +++ b/Map-Exploration/CustomIdentify/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomPaneWithContents/CustomPaneWithContents (C#).md b/Map-Exploration/CustomPaneWithContents/CustomPaneWithContents (C#).md index 129668ed..568eeafc 100644 --- a/Map-Exploration/CustomPaneWithContents/CustomPaneWithContents (C#).md +++ b/Map-Exploration/CustomPaneWithContents/CustomPaneWithContents (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomPaneWithContents/ReadMe.md b/Map-Exploration/CustomPaneWithContents/ReadMe.md index 129668ed..568eeafc 100644 --- a/Map-Exploration/CustomPaneWithContents/ReadMe.md +++ b/Map-Exploration/CustomPaneWithContents/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomPopup/CustomPopup (C#).md b/Map-Exploration/CustomPopup/CustomPopup (C#).md index 2d794d40..67949b26 100644 --- a/Map-Exploration/CustomPopup/CustomPopup (C#).md +++ b/Map-Exploration/CustomPopup/CustomPopup (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/CustomPopup/ReadMe.md b/Map-Exploration/CustomPopup/ReadMe.md index 2d794d40..67949b26 100644 --- a/Map-Exploration/CustomPopup/ReadMe.md +++ b/Map-Exploration/CustomPopup/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/DeviceTracker/DeviceTracker (C#).md b/Map-Exploration/DeviceTracker/DeviceTracker (C#).md index 50d92865..dbb711ef 100644 --- a/Map-Exploration/DeviceTracker/DeviceTracker (C#).md +++ b/Map-Exploration/DeviceTracker/DeviceTracker (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/DeviceTracker/ReadMe.md b/Map-Exploration/DeviceTracker/ReadMe.md index 50d92865..dbb711ef 100644 --- a/Map-Exploration/DeviceTracker/ReadMe.md +++ b/Map-Exploration/DeviceTracker/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/EVChargers/EVChargers (C#).md b/Map-Exploration/EVChargers/EVChargers (C#).md index 4eb7f1a9..1ad09ee5 100644 --- a/Map-Exploration/EVChargers/EVChargers (C#).md +++ b/Map-Exploration/EVChargers/EVChargers (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/EVChargers/ReadMe.md b/Map-Exploration/EVChargers/ReadMe.md index 4eb7f1a9..1ad09ee5 100644 --- a/Map-Exploration/EVChargers/ReadMe.md +++ b/Map-Exploration/EVChargers/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/FeatureSelection/FeatureSelection (C#).md b/Map-Exploration/FeatureSelection/FeatureSelection (C#).md index 6ba88eeb..a123b790 100644 --- a/Map-Exploration/FeatureSelection/FeatureSelection (C#).md +++ b/Map-Exploration/FeatureSelection/FeatureSelection (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/FeatureSelection/ReadMe.md b/Map-Exploration/FeatureSelection/ReadMe.md index 6ba88eeb..a123b790 100644 --- a/Map-Exploration/FeatureSelection/ReadMe.md +++ b/Map-Exploration/FeatureSelection/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/GraphicOverlay4Debug/GraphicOverlay4Debug (C#).md b/Map-Exploration/GraphicOverlay4Debug/GraphicOverlay4Debug (C#).md index a4824740..cd059703 100644 --- a/Map-Exploration/GraphicOverlay4Debug/GraphicOverlay4Debug (C#).md +++ b/Map-Exploration/GraphicOverlay4Debug/GraphicOverlay4Debug (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/GraphicOverlay4Debug/ReadMe.md b/Map-Exploration/GraphicOverlay4Debug/ReadMe.md index a4824740..cd059703 100644 --- a/Map-Exploration/GraphicOverlay4Debug/ReadMe.md +++ b/Map-Exploration/GraphicOverlay4Debug/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/IdentifyWindow/IdentifyWindow (C#).md b/Map-Exploration/IdentifyWindow/IdentifyWindow (C#).md index 84c62fb9..8bfe2a1e 100644 --- a/Map-Exploration/IdentifyWindow/IdentifyWindow (C#).md +++ b/Map-Exploration/IdentifyWindow/IdentifyWindow (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/IdentifyWindow/ReadMe.md b/Map-Exploration/IdentifyWindow/ReadMe.md index 84c62fb9..8bfe2a1e 100644 --- a/Map-Exploration/IdentifyWindow/ReadMe.md +++ b/Map-Exploration/IdentifyWindow/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/IdentifyWithSketchTool/IdentifyWithSketchTool (C#).md b/Map-Exploration/IdentifyWithSketchTool/IdentifyWithSketchTool (C#).md index a74383a3..fa540068 100644 --- a/Map-Exploration/IdentifyWithSketchTool/IdentifyWithSketchTool (C#).md +++ b/Map-Exploration/IdentifyWithSketchTool/IdentifyWithSketchTool (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/IdentifyWithSketchTool/ReadMe.md b/Map-Exploration/IdentifyWithSketchTool/ReadMe.md index a74383a3..fa540068 100644 --- a/Map-Exploration/IdentifyWithSketchTool/ReadMe.md +++ b/Map-Exploration/IdentifyWithSketchTool/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ImpersonateMapPane/ImpersonateMapPane (C#).md b/Map-Exploration/ImpersonateMapPane/ImpersonateMapPane (C#).md index 50cc3f53..c1037e9f 100644 --- a/Map-Exploration/ImpersonateMapPane/ImpersonateMapPane (C#).md +++ b/Map-Exploration/ImpersonateMapPane/ImpersonateMapPane (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ImpersonateMapPane/ReadMe.md b/Map-Exploration/ImpersonateMapPane/ReadMe.md index 50cc3f53..c1037e9f 100644 --- a/Map-Exploration/ImpersonateMapPane/ReadMe.md +++ b/Map-Exploration/ImpersonateMapPane/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/LayerPopups/LayerPopups (C#).md b/Map-Exploration/LayerPopups/LayerPopups (C#).md index 8f249a79..01d8b7b8 100644 --- a/Map-Exploration/LayerPopups/LayerPopups (C#).md +++ b/Map-Exploration/LayerPopups/LayerPopups (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/LayerPopups/ReadMe.md b/Map-Exploration/LayerPopups/ReadMe.md index 8f249a79..01d8b7b8 100644 --- a/Map-Exploration/LayerPopups/ReadMe.md +++ b/Map-Exploration/LayerPopups/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MagnifierWindow/MagnifierWindow (C#).md b/Map-Exploration/MagnifierWindow/MagnifierWindow (C#).md index 96021ee4..6591beb6 100644 --- a/Map-Exploration/MagnifierWindow/MagnifierWindow (C#).md +++ b/Map-Exploration/MagnifierWindow/MagnifierWindow (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MagnifierWindow/ReadMe.md b/Map-Exploration/MagnifierWindow/ReadMe.md index 96021ee4..6591beb6 100644 --- a/Map-Exploration/MagnifierWindow/ReadMe.md +++ b/Map-Exploration/MagnifierWindow/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolIdentify/MapToolIdentify (C#).md b/Map-Exploration/MapToolIdentify/MapToolIdentify (C#).md index 9619d845..af3956f7 100644 --- a/Map-Exploration/MapToolIdentify/MapToolIdentify (C#).md +++ b/Map-Exploration/MapToolIdentify/MapToolIdentify (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolIdentify/ReadMe.md b/Map-Exploration/MapToolIdentify/ReadMe.md index 9619d845..af3956f7 100644 --- a/Map-Exploration/MapToolIdentify/ReadMe.md +++ b/Map-Exploration/MapToolIdentify/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolIdentifyWithDockpane/MapToolIdentifyWithDockpane (C#).md b/Map-Exploration/MapToolIdentifyWithDockpane/MapToolIdentifyWithDockpane (C#).md index 0d747ac2..7b9c01e5 100644 --- a/Map-Exploration/MapToolIdentifyWithDockpane/MapToolIdentifyWithDockpane (C#).md +++ b/Map-Exploration/MapToolIdentifyWithDockpane/MapToolIdentifyWithDockpane (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolIdentifyWithDockpane/ReadMe.md b/Map-Exploration/MapToolIdentifyWithDockpane/ReadMe.md index 0d747ac2..7b9c01e5 100644 --- a/Map-Exploration/MapToolIdentifyWithDockpane/ReadMe.md +++ b/Map-Exploration/MapToolIdentifyWithDockpane/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolOverlay/MapToolOverlay (C#).md b/Map-Exploration/MapToolOverlay/MapToolOverlay (C#).md index 7b1236b8..3fe2c671 100644 --- a/Map-Exploration/MapToolOverlay/MapToolOverlay (C#).md +++ b/Map-Exploration/MapToolOverlay/MapToolOverlay (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolOverlay/ReadMe.md b/Map-Exploration/MapToolOverlay/ReadMe.md index 7b1236b8..3fe2c671 100644 --- a/Map-Exploration/MapToolOverlay/ReadMe.md +++ b/Map-Exploration/MapToolOverlay/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolSelect/MapToolSelect (C#).md b/Map-Exploration/MapToolSelect/MapToolSelect (C#).md index 5da44316..94e248c4 100644 --- a/Map-Exploration/MapToolSelect/MapToolSelect (C#).md +++ b/Map-Exploration/MapToolSelect/MapToolSelect (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolSelect/ReadMe.md b/Map-Exploration/MapToolSelect/ReadMe.md index 5da44316..94e248c4 100644 --- a/Map-Exploration/MapToolSelect/ReadMe.md +++ b/Map-Exploration/MapToolSelect/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithCustomPopup/MapToolWithCustomPopup (C#).md b/Map-Exploration/MapToolWithCustomPopup/MapToolWithCustomPopup (C#).md index f0fe29bc..5a42a8a6 100644 --- a/Map-Exploration/MapToolWithCustomPopup/MapToolWithCustomPopup (C#).md +++ b/Map-Exploration/MapToolWithCustomPopup/MapToolWithCustomPopup (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithCustomPopup/ReadMe.md b/Map-Exploration/MapToolWithCustomPopup/ReadMe.md index f0fe29bc..5a42a8a6 100644 --- a/Map-Exploration/MapToolWithCustomPopup/ReadMe.md +++ b/Map-Exploration/MapToolWithCustomPopup/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithDynamicMenu/MapToolWithDynamicMenu (C#).md b/Map-Exploration/MapToolWithDynamicMenu/MapToolWithDynamicMenu (C#).md index 73cd20a4..1d620c51 100644 --- a/Map-Exploration/MapToolWithDynamicMenu/MapToolWithDynamicMenu (C#).md +++ b/Map-Exploration/MapToolWithDynamicMenu/MapToolWithDynamicMenu (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithDynamicMenu/ReadMe.md b/Map-Exploration/MapToolWithDynamicMenu/ReadMe.md index 73cd20a4..1d620c51 100644 --- a/Map-Exploration/MapToolWithDynamicMenu/ReadMe.md +++ b/Map-Exploration/MapToolWithDynamicMenu/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithEmbeddableControl/MapToolWithEmbeddableControl (C#).md b/Map-Exploration/MapToolWithEmbeddableControl/MapToolWithEmbeddableControl (C#).md index 64d734b4..3c88fa88 100644 --- a/Map-Exploration/MapToolWithEmbeddableControl/MapToolWithEmbeddableControl (C#).md +++ b/Map-Exploration/MapToolWithEmbeddableControl/MapToolWithEmbeddableControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithEmbeddableControl/ReadMe.md b/Map-Exploration/MapToolWithEmbeddableControl/ReadMe.md index 64d734b4..3c88fa88 100644 --- a/Map-Exploration/MapToolWithEmbeddableControl/ReadMe.md +++ b/Map-Exploration/MapToolWithEmbeddableControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithOverlayControl/MapToolWithOverlayControl (C#).md b/Map-Exploration/MapToolWithOverlayControl/MapToolWithOverlayControl (C#).md index 8c0ff239..f7d4bd5e 100644 --- a/Map-Exploration/MapToolWithOverlayControl/MapToolWithOverlayControl (C#).md +++ b/Map-Exploration/MapToolWithOverlayControl/MapToolWithOverlayControl (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolWithOverlayControl/ReadMe.md b/Map-Exploration/MapToolWithOverlayControl/ReadMe.md index 8c0ff239..f7d4bd5e 100644 --- a/Map-Exploration/MapToolWithOverlayControl/ReadMe.md +++ b/Map-Exploration/MapToolWithOverlayControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolZoom/MapToolZoom (C#).md b/Map-Exploration/MapToolZoom/MapToolZoom (C#).md index 6abdb49c..4653a81f 100644 --- a/Map-Exploration/MapToolZoom/MapToolZoom (C#).md +++ b/Map-Exploration/MapToolZoom/MapToolZoom (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/MapToolZoom/ReadMe.md b/Map-Exploration/MapToolZoom/ReadMe.md index 6abdb49c..4653a81f 100644 --- a/Map-Exploration/MapToolZoom/ReadMe.md +++ b/Map-Exploration/MapToolZoom/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/Overlay3D/Overlay3D (C#).md b/Map-Exploration/Overlay3D/Overlay3D (C#).md index 8c9e25af..867c9733 100644 --- a/Map-Exploration/Overlay3D/Overlay3D (C#).md +++ b/Map-Exploration/Overlay3D/Overlay3D (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/Overlay3D/ReadMe.md b/Map-Exploration/Overlay3D/ReadMe.md index 8c9e25af..867c9733 100644 --- a/Map-Exploration/Overlay3D/ReadMe.md +++ b/Map-Exploration/Overlay3D/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverlayExamples/OverlayExamples (C#).md b/Map-Exploration/OverlayExamples/OverlayExamples (C#).md index 139c8917..93a3fdab 100644 --- a/Map-Exploration/OverlayExamples/OverlayExamples (C#).md +++ b/Map-Exploration/OverlayExamples/OverlayExamples (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverlayExamples/ReadMe.md b/Map-Exploration/OverlayExamples/ReadMe.md index 139c8917..93a3fdab 100644 --- a/Map-Exploration/OverlayExamples/ReadMe.md +++ b/Map-Exploration/OverlayExamples/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverlayGroundSurface/OverlayGroundSurface (C#).md b/Map-Exploration/OverlayGroundSurface/OverlayGroundSurface (C#).md index bfefcf10..c2076ea1 100644 --- a/Map-Exploration/OverlayGroundSurface/OverlayGroundSurface (C#).md +++ b/Map-Exploration/OverlayGroundSurface/OverlayGroundSurface (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverlayGroundSurface/ReadMe.md b/Map-Exploration/OverlayGroundSurface/ReadMe.md index bfefcf10..c2076ea1 100644 --- a/Map-Exploration/OverlayGroundSurface/ReadMe.md +++ b/Map-Exploration/OverlayGroundSurface/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverviewMapControl/OverviewMapControl (C#).md b/Map-Exploration/OverviewMapControl/OverviewMapControl (C#).md index ef179a55..5b59b646 100644 --- a/Map-Exploration/OverviewMapControl/OverviewMapControl (C#).md +++ b/Map-Exploration/OverviewMapControl/OverviewMapControl (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverviewMapControl/ReadMe.md b/Map-Exploration/OverviewMapControl/ReadMe.md index ef179a55..5b59b646 100644 --- a/Map-Exploration/OverviewMapControl/ReadMe.md +++ b/Map-Exploration/OverviewMapControl/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverviewTableControl/ReadMe.md b/Map-Exploration/OverviewTableControl/ReadMe.md index a44b60c4..b86987c5 100644 --- a/Map-Exploration/OverviewTableControl/ReadMe.md +++ b/Map-Exploration/OverviewTableControl/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/OverviewTableControl/TableControlSample (C#).md b/Map-Exploration/OverviewTableControl/TableControlSample (C#).md index a44b60c4..b86987c5 100644 --- a/Map-Exploration/OverviewTableControl/TableControlSample (C#).md +++ b/Map-Exploration/OverviewTableControl/TableControlSample (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/README.md b/Map-Exploration/README.md index 96e8de21..8f7a3422 100644 --- a/Map-Exploration/README.md +++ b/Map-Exploration/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Map-Exploration -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Map-Exploration' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Map-Exploration' topic. ## Features @@ -58,6 +58,7 @@ This folder contains ArcGIS Pro Add-In Samples that fall under the 'Map-Explorat * [TableFromCsv (c#)](../../../tree/master/Map-Exploration/TableFromCsv) * [TimeNavigation (c#)](../../../tree/master/Map-Exploration/TimeNavigation) * [WorkingWithQueryDefinitionFilters (c#)](../../../tree/master/Map-Exploration/WorkingWithQueryDefinitionFilters) +* [ZoomToSelectedFeatures (c#)](../../../tree/master/Map-Exploration/ZoomToSelectedFeatures) ## Instructions diff --git a/Map-Exploration/ScreenCoordsToMapPoint/ReadMe.md b/Map-Exploration/ScreenCoordsToMapPoint/ReadMe.md index 89367a2a..615bd296 100644 --- a/Map-Exploration/ScreenCoordsToMapPoint/ReadMe.md +++ b/Map-Exploration/ScreenCoordsToMapPoint/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ScreenCoordsToMapPoint/ScreenCoordsToMapPoint (C#).md b/Map-Exploration/ScreenCoordsToMapPoint/ScreenCoordsToMapPoint (C#).md index 89367a2a..615bd296 100644 --- a/Map-Exploration/ScreenCoordsToMapPoint/ScreenCoordsToMapPoint (C#).md +++ b/Map-Exploration/ScreenCoordsToMapPoint/ScreenCoordsToMapPoint (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ScribbleControl_ArcGISPro/ReadMe.md b/Map-Exploration/ScribbleControl_ArcGISPro/ReadMe.md index be498890..029612a9 100644 --- a/Map-Exploration/ScribbleControl_ArcGISPro/ReadMe.md +++ b/Map-Exploration/ScribbleControl_ArcGISPro/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ScribbleControl_ArcGISPro/ScribbleControl_ArcGISPro (C#).md b/Map-Exploration/ScribbleControl_ArcGISPro/ScribbleControl_ArcGISPro (C#).md index be498890..029612a9 100644 --- a/Map-Exploration/ScribbleControl_ArcGISPro/ScribbleControl_ArcGISPro (C#).md +++ b/Map-Exploration/ScribbleControl_ArcGISPro/ScribbleControl_ArcGISPro (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/SelectionFromDockpaneList/ReadMe.md b/Map-Exploration/SelectionFromDockpaneList/ReadMe.md index 0bb5d94a..9ab05b42 100644 --- a/Map-Exploration/SelectionFromDockpaneList/ReadMe.md +++ b/Map-Exploration/SelectionFromDockpaneList/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/SelectionFromDockpaneList/SelectionFromDockpaneList (C#).md b/Map-Exploration/SelectionFromDockpaneList/SelectionFromDockpaneList (C#).md index 0bb5d94a..9ab05b42 100644 --- a/Map-Exploration/SelectionFromDockpaneList/SelectionFromDockpaneList (C#).md +++ b/Map-Exploration/SelectionFromDockpaneList/SelectionFromDockpaneList (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TableControl/ReadMe.md b/Map-Exploration/TableControl/ReadMe.md index 206f84f0..a6035c2e 100644 --- a/Map-Exploration/TableControl/ReadMe.md +++ b/Map-Exploration/TableControl/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TableControl/TableControl (C#).md b/Map-Exploration/TableControl/TableControl (C#).md index 206f84f0..a6035c2e 100644 --- a/Map-Exploration/TableControl/TableControl (C#).md +++ b/Map-Exploration/TableControl/TableControl (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TableControlsDockpane/ReadMe.md b/Map-Exploration/TableControlsDockpane/ReadMe.md index f1d532d2..6c675880 100644 --- a/Map-Exploration/TableControlsDockpane/ReadMe.md +++ b/Map-Exploration/TableControlsDockpane/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TableControlsDockpane/TableControlsDockpane (C#).md b/Map-Exploration/TableControlsDockpane/TableControlsDockpane (C#).md index f1d532d2..6c675880 100644 --- a/Map-Exploration/TableControlsDockpane/TableControlsDockpane (C#).md +++ b/Map-Exploration/TableControlsDockpane/TableControlsDockpane (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TableFromCsv/ReadMe.md b/Map-Exploration/TableFromCsv/ReadMe.md index 720d6262..7308b971 100644 --- a/Map-Exploration/TableFromCsv/ReadMe.md +++ b/Map-Exploration/TableFromCsv/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TableFromCsv/TableFromCsv (C#).md b/Map-Exploration/TableFromCsv/TableFromCsv (C#).md index 720d6262..7308b971 100644 --- a/Map-Exploration/TableFromCsv/TableFromCsv (C#).md +++ b/Map-Exploration/TableFromCsv/TableFromCsv (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TimeNavigation/ReadMe.md b/Map-Exploration/TimeNavigation/ReadMe.md index 9932dd86..3660332e 100644 --- a/Map-Exploration/TimeNavigation/ReadMe.md +++ b/Map-Exploration/TimeNavigation/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/TimeNavigation/TimeNavigation (C#).md b/Map-Exploration/TimeNavigation/TimeNavigation (C#).md index 9932dd86..3660332e 100644 --- a/Map-Exploration/TimeNavigation/TimeNavigation (C#).md +++ b/Map-Exploration/TimeNavigation/TimeNavigation (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map-Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/WorkingWithQueryDefinitionFilters/DefineQueryDefinitionFiltersViewModel.cs b/Map-Exploration/WorkingWithQueryDefinitionFilters/DefineQueryDefinitionFiltersViewModel.cs index 7a08e472..22d65de6 100644 --- a/Map-Exploration/WorkingWithQueryDefinitionFilters/DefineQueryDefinitionFiltersViewModel.cs +++ b/Map-Exploration/WorkingWithQueryDefinitionFilters/DefineQueryDefinitionFiltersViewModel.cs @@ -42,297 +42,340 @@ limitations under the License. namespace WorkingWithQueryDefinitionFilters { - public class DefineQueryDefinitionFiltersViewModel : DockPane + public class DefineQueryDefinitionFiltersViewModel : DockPane + { + private const string _dockPaneID = "WorkingWithQueryDefinitionFilters_DefineQueryDefinitionFilters"; + private bool _subscribed; + private object _lock = new object(); + + protected DefineQueryDefinitionFiltersViewModel() { - private const string _dockPaneID = "WorkingWithQueryDefinitionFilters_DefineQueryDefinitionFilters"; - private bool _subscribed; - private object _lock = new object(); - - protected DefineQueryDefinitionFiltersViewModel() { - System.Windows.Data.BindingOperations.EnableCollectionSynchronization(_defintionQueryFilters, _lock); - HasHelp = true; - } - #region overrides and event subscriptions - /// - /// Show the DockPane. - /// - internal static void Show() + System.Windows.Data.BindingOperations.EnableCollectionSynchronization(_defintionQueryFilters, _lock); + HasHelp = true; + } + #region overrides and event subscriptions + /// + /// Show the DockPane. + /// + internal static void Show() + { + DockPane pane = FrameworkApplication.DockPaneManager.Find(_dockPaneID); + if (pane == null) + return; + + pane.Activate(); + + var vm = pane as DefineQueryDefinitionFiltersViewModel; + if (vm != null && MapView.Active != null) + { + vm.GetMapMembers(MapView.Active); + vm.InitializeFilters(); + } + } + protected override void OnShow(bool isVisible) + { + if (isVisible) + { + Module1.Current.DefFilterVM = this; + if (!_subscribed) { - DockPane pane = FrameworkApplication.DockPaneManager.Find(_dockPaneID); - if (pane == null) - return; - - pane.Activate(); - - var vm = pane as DefineQueryDefinitionFiltersViewModel; - if (vm != null && MapView.Active != null) - { - vm.GetMapMembers(MapView.Active); - vm.InitializeFilters(); - } + _subscribed = true; + + // connect to events + ArcGIS.Desktop.Mapping.Events.ActiveMapViewChangedEvent.Subscribe(OnActiveMapViewChanged); + ArcGIS.Desktop.Mapping.Events.DrawCompleteEvent.Subscribe(OnDrawComplete); + if (Module1.Current._layersAddedEventoken == null) //don't subscribe if already subscribed + Module1.Current._layersAddedEventoken = ArcGIS.Desktop.Mapping.Events.LayersAddedEvent.Subscribe(OnLayersAdded); + if (Module1.Current._tablesAddedEventoken == null) //don't subscribe if already subscribed + Module1.Current._tablesAddedEventoken = ArcGIS.Desktop.Mapping.Events.StandaloneTablesAddedEvent.Subscribe(OnTablesAdded); + if (Module1.Current._layersRemovedEventoken == null) //don't subscribe if already subscribed + Module1.Current._layersRemovedEventoken = ArcGIS.Desktop.Mapping.Events.LayersRemovedEvent.Subscribe(OnLayersRemoved); + if (Module1.Current._tablesRemovedEventoken == null) //don't subscribe if already subscribed + Module1.Current._tablesRemovedEventoken = ArcGIS.Desktop.Mapping.Events.StandaloneTablesRemovedEvent.Subscribe(OnTablesRemoved); + if (Module1.Current._mapMembePropChangedEventtoken == null) //don't subscribe if already subscribed + Module1.Current._mapMembePropChangedEventtoken = ArcGIS.Desktop.Mapping.Events.MapMemberPropertiesChangedEvent.Subscribe(OnMapMemberPropertiesChanged); } - protected override void OnShow(bool isVisible) + } + else + { + if (_subscribed) { - if (isVisible) - { - Module1.Current.DefFilterVM = this; - if (!_subscribed) - { - _subscribed = true; - - // connect to events - ArcGIS.Desktop.Mapping.Events.ActiveMapViewChangedEvent.Subscribe(OnActiveMapViewChanged); - ArcGIS.Desktop.Mapping.Events.DrawCompleteEvent.Subscribe(OnDrawComplete); - if (Module1.Current._layersAddedEventoken == null) //don't subscribe if already subscribed - Module1.Current._layersAddedEventoken = ArcGIS.Desktop.Mapping.Events.LayersAddedEvent.Subscribe(OnLayersAdded); - if (Module1.Current._tablesAddedEventoken == null) //don't subscribe if already subscribed - Module1.Current._tablesAddedEventoken = ArcGIS.Desktop.Mapping.Events.StandaloneTablesAddedEvent.Subscribe(OnTablesAdded); - if (Module1.Current._layersRemovedEventoken == null) //don't subscribe if already subscribed - Module1.Current._layersRemovedEventoken = ArcGIS.Desktop.Mapping.Events.LayersRemovedEvent.Subscribe(OnLayersRemoved); - if (Module1.Current._tablesRemovedEventoken == null) //don't subscribe if already subscribed - Module1.Current._tablesRemovedEventoken = ArcGIS.Desktop.Mapping.Events.StandaloneTablesRemovedEvent.Subscribe(OnTablesRemoved); - if (Module1.Current._mapMembePropChangedEventtoken == null) //don't subscribe if already subscribed - Module1.Current._mapMembePropChangedEventtoken = ArcGIS.Desktop.Mapping.Events.MapMemberPropertiesChangedEvent.Subscribe(OnMapMemberPropertiesChanged); - } - } - else - { - if (_subscribed) - { - _subscribed = false; - - // unsubscribe from events - ArcGIS.Desktop.Mapping.Events.ActiveMapViewChangedEvent.Unsubscribe(OnActiveMapViewChanged); - ArcGIS.Desktop.Mapping.Events.DrawCompleteEvent.Unsubscribe(OnDrawComplete); - } - } - base.OnShow(isVisible); - } + _subscribed = false; - private void OnTablesRemoved(StandaloneTableEventArgs obj) - { - //Update the list of layers shown in the drop down and get their filters - GetMapMembers(MapView.Active); - InitializeFilters(); + // unsubscribe from events + ArcGIS.Desktop.Mapping.Events.ActiveMapViewChangedEvent.Unsubscribe(OnActiveMapViewChanged); + ArcGIS.Desktop.Mapping.Events.DrawCompleteEvent.Unsubscribe(OnDrawComplete); } + } + base.OnShow(isVisible); + } - private void OnTablesAdded(StandaloneTableEventArgs obj) - { - //Update the list of layers shown in the drop down and get their filters - GetMapMembers(MapView.Active); - InitializeFilters(); - } + private void OnTablesRemoved(StandaloneTableEventArgs obj) + { + //Update the list of layers shown in the drop down and get their filters + GetMapMembers(MapView.Active); + InitializeFilters(); + } - private void OnDrawComplete(MapViewEventArgs obj) - { - //TODO:If no feature layers, show empty dockpanes(DockpaneVisibility) - GetMapMembers(MapView.Active); - InitializeFilters(); - } + private void OnTablesAdded(StandaloneTableEventArgs obj) + { + //Update the list of layers shown in the drop down and get their filters + GetMapMembers(MapView.Active); + InitializeFilters(); + } - private void OnLayersRemoved(LayerEventsArgs obj) - { - //Update the list of layers shown in the drop down and get their filters - GetMapMembers(MapView.Active); - InitializeFilters(); - } + private void OnDrawComplete(MapViewEventArgs obj) + { + //TODO:If no feature layers, show empty dockpanes(DockpaneVisibility) + GetMapMembers(MapView.Active); + InitializeFilters(); + } - public void OnLayersAdded(LayerEventsArgs obj) - { - //Update the list of layers shown in the drop down and get their filters - GetMapMembers(MapView.Active); - InitializeFilters(); - } + private void OnLayersRemoved(LayerEventsArgs obj) + { + //Update the list of layers shown in the drop down and get their filters + GetMapMembers(MapView.Active); + InitializeFilters(); + } - private void OnActiveMapViewChanged(ActiveMapViewChangedEventArgs obj) - { - //Module1.Current.DefFilterVM = this; //Remove this. - GetMapMembers(MapView.Active); - InitializeFilters(); - } - public void OnMapMemberPropertiesChanged(MapMemberPropertiesChangedEventArgs obj) - { - if (SelectedMapMember == null) - return; - if (obj.MapMembers.Contains(SelectedMapMember)) - InitializeFilters(); - } - #endregion - #region Binding properties - /// - /// Text shown near the top of the DockPane. - /// - private string _heading = "Definition Query Filters"; - public string Heading - { - get { return _heading; } - set - { - SetProperty(ref _heading, value, () => Heading); - } - } + public void OnLayersAdded(LayerEventsArgs obj) + { + //Update the list of layers shown in the drop down and get their filters + GetMapMembers(MapView.Active); + InitializeFilters(); + } - private ObservableCollection _mapMembers = new ObservableCollection(); + private void OnActiveMapViewChanged(ActiveMapViewChangedEventArgs obj) + { + //Module1.Current.DefFilterVM = this; //Remove this. + GetMapMembers(MapView.Active); + InitializeFilters(); + } + public void OnMapMemberPropertiesChanged(MapMemberPropertiesChangedEventArgs obj) + { + if (SelectedMapMember == null) + return; + if (obj.MapMembers.Contains(SelectedMapMember)) + InitializeFilters(); + } + #endregion + #region Binding properties + /// + /// Text shown near the top of the DockPane. + /// + private string _heading = "Definition Query Filters"; + public string Heading + { + get { return _heading; } + set + { + SetProperty(ref _heading, value, () => Heading); + } + } - public ObservableCollection MapMembers - { - get - { - return _mapMembers; - } - } + private ObservableCollection _mapMembers = new ObservableCollection(); - private MapMember _selectedMapMember; - public MapMember SelectedMapMember - { - get { return _selectedMapMember; } - set { - SetProperty(ref _selectedMapMember, value, () => SelectedMapMember); - Module1.Current.ActiveFilterExists = false; - //Get the Definition Filters for the layer - InitializeFilters(); - } - } + public ObservableCollection MapMembers + { + get + { + return _mapMembers; + } + } - private ObservableCollection _defintionQueryFilters = new ObservableCollection(); - public ObservableCollection DefinitionFilters - { - get { return _defintionQueryFilters; } + private MapMember _selectedMapMember; + public MapMember SelectedMapMember + { + get { return _selectedMapMember; } + set + { + SetProperty(ref _selectedMapMember, value, () => SelectedMapMember); + Module1.Current.ActiveFilterExists = false; + //Get the Definition Filters for the layer + InitializeFilters(); + } + } - } + private ObservableCollection _defintionQueryFilters = new ObservableCollection(); + public ObservableCollection DefinitionFilters + { + get { return _defintionQueryFilters; } - private DefinitionFilterItem _selectedDefinitionFilter; - + } - public DefinitionFilterItem SelectedDefinitionFilter - { + private DefinitionFilterItem _selectedDefinitionFilter; - get { return _selectedDefinitionFilter; } - set { - SetProperty(ref _selectedDefinitionFilter, value, () => SelectedDefinitionFilter); - //SaveChanges(); - } - } - private Visibility _dockpaneVisibility; - public Visibility DockpaneVisibility - { - get { return _dockpaneVisibility; } - set - { - SetProperty(ref _dockpaneVisibility, value, () => DockpaneVisibility); - } - } + public DefinitionFilterItem SelectedDefinitionFilter + { - private Visibility _filtersListBoxVisibility; - public Visibility FiltersListBoxVisibility - { - get { return _filtersListBoxVisibility; } - set - { - SetProperty(ref _filtersListBoxVisibility, value, () => FiltersListBoxVisibility); - } - } + get { return _selectedDefinitionFilter; } + set + { + SetProperty(ref _selectedDefinitionFilter, value, () => SelectedDefinitionFilter); + //SaveChanges(); + } + } - #endregion - #region Commands - private ICommand _createNewFilterCommand; - public ICommand CreateNewFilterCommand - { - get - { - _createNewFilterCommand = new RelayCommand(() => CreateDefinitionFilter()); - return _createNewFilterCommand; - } - } + private Visibility _dockpaneVisibility; + public Visibility DockpaneVisibility + { + get { return _dockpaneVisibility; } + set + { + SetProperty(ref _dockpaneVisibility, value, () => DockpaneVisibility); + } + } - private void CreateDefinitionFilter() - { - //Get the Selected layer - //Create QueryBuilderControlProperties - var queryBuilderControlProps = new QueryBuilderControlProperties - { - MapMember = SelectedMapMember, - EditClauseMode = true, - AutoValidate = true - }; - //Show the Query builder Pro Window - var querybuilderwindow = new QueryBuilderWindow(new DefinitionFilterItem(SelectedMapMember, null), queryBuilderControlProps); - querybuilderwindow.Owner = FrameworkApplication.Current.MainWindow; - querybuilderwindow.Closed += (o, e) => { querybuilderwindow = null; }; - querybuilderwindow.ShowDialog(); - } - #endregion - #region Private methods - internal void InitializeFilters() + private Visibility _filtersListBoxVisibility; + public Visibility FiltersListBoxVisibility + { + get { return _filtersListBoxVisibility; } + set + { + SetProperty(ref _filtersListBoxVisibility, value, () => FiltersListBoxVisibility); + } + } + + #endregion + #region Commands + private ICommand _createNewFilterCommand; + public ICommand CreateNewFilterCommand + { + get + { + _createNewFilterCommand = new RelayCommand(() => CreateDefinitionFilter()); + return _createNewFilterCommand; + } + } + + private void CreateDefinitionFilter() + { + //Get the Selected layer + //Create QueryBuilderControlProperties + var queryBuilderControlProps = new QueryBuilderControlProperties + { + MapMember = SelectedMapMember, + EditClauseMode = true, + AutoValidate = true + }; + //Show the Query builder Pro Window + var querybuilderwindow = new QueryBuilderWindow(new DefinitionFilterItem(SelectedMapMember, null), queryBuilderControlProps); + querybuilderwindow.Owner = FrameworkApplication.Current.MainWindow; + querybuilderwindow.Closed += (o, e) => { querybuilderwindow = null; }; + querybuilderwindow.ShowDialog(); + } + #endregion + #region Private methods + internal void InitializeFilters() + { + DefinitionFilters.Clear(); + Module1.Current.ActiveFilterExists = false; //reinitialize + if (MapView.Active != null) + { + if (SelectedMapMember != null) { - DefinitionFilters.Clear(); - Module1.Current.ActiveFilterExists = false; //reinitialize - if (MapView.Active != null) + var filters = SelectedMapMember is StandaloneTable ? (SelectedMapMember as StandaloneTable).DefinitionQueries + : (SelectedMapMember as BasicFeatureLayer).DefinitionQueries; + if (filters.Count > 0) + { + foreach (var filter in filters) { - if (SelectedMapMember != null) - { - var filters = SelectedMapMember is StandaloneTable ? (SelectedMapMember as StandaloneTable).DefinitionQueries - : (SelectedMapMember as BasicFeatureLayer).DefinitionQueries; - if (filters.Count > 0) { - foreach (var filter in filters) - { - lock (_lock) - { - _defintionQueryFilters.Add(new DefinitionFilterItem(SelectedMapMember, filter)); - } - } - SelectedDefinitionFilter = DefinitionFilters[0]; - } - } - if (MapMembers.Count > 0) - FiltersListBoxVisibility = DefinitionFilters.Count == 0 ? Visibility.Hidden : Visibility.Visible; + lock (_lock) + { + _defintionQueryFilters.Add(new DefinitionFilterItem(SelectedMapMember, filter)); + } } + SelectedDefinitionFilter = DefinitionFilters[0]; + } } - private void GetMapMembers(MapView mapView) + if (MapMembers.Count > 0) + FiltersListBoxVisibility = DefinitionFilters.Count == 0 ? Visibility.Hidden : Visibility.Visible; + } + } + private void GetMapMembers(MapView mapView) + { + RunOnUiThread(() => + { + MapMembers.Clear(); + if (mapView != null) { - MapMembers.Clear(); - if (mapView != null) - { - var tocLayers = mapView.Map.GetLayersAsFlattenedList().OfType().ToList(); - var tocTables = mapView.Map.StandaloneTables.ToList(); - if (tocLayers.Count > 0 || tocTables.Count > 0) { - tocLayers.ForEach(x => _mapMembers.Add(x)); - tocTables.ForEach(t => _mapMembers.Add(t)); - var selectedMapMember = GetSelectedMapMemberInTOC(); - if (selectedMapMember != null) //mapmember has been selected - SelectedMapMember = selectedMapMember; //Show that map member's filters - else - SelectedMapMember = MapMembers[0]; //default. Nothing selected in TOC - } - //If no feature layers, show empty dockpanes(DockpaneVisibility) - DockpaneVisibility = MapMembers.Count == 0 ? Visibility.Hidden : Visibility.Visible; - } + var tocLayers = mapView.Map.GetLayersAsFlattenedList().OfType().ToList(); + var tocTables = mapView.Map.StandaloneTables.ToList(); + if (tocLayers.Count > 0 || tocTables.Count > 0) + { + tocLayers.ForEach(x => _mapMembers.Add(x)); + tocTables.ForEach(t => _mapMembers.Add(t)); + var selectedMapMember = GetSelectedMapMemberInTOC(); + if (selectedMapMember != null) //mapmember has been selected + SelectedMapMember = selectedMapMember; //Show that map member's filters + else + SelectedMapMember = MapMembers[0]; //default. Nothing selected in TOC + } + //If no feature layers, show empty dockpanes(DockpaneVisibility) + DockpaneVisibility = MapMembers.Count == 0 ? Visibility.Hidden : Visibility.Visible; } + }); + } + + private MapMember GetSelectedMapMemberInTOC() + { + if (MapView.Active == null) return null; + var lyrSelectedInTOC = MapView.Active.GetSelectedLayers().OfType().FirstOrDefault(); + var tableSelectedInTOC = MapView.Active.GetSelectedStandaloneTables().FirstOrDefault(); + if (lyrSelectedInTOC == null && tableSelectedInTOC == null) return null; + var mapMemberSelectedInTOC = lyrSelectedInTOC == null ? tableSelectedInTOC as MapMember : lyrSelectedInTOC as MapMember; + + return mapMemberSelectedInTOC; - private MapMember GetSelectedMapMemberInTOC() - { - if (MapView.Active == null) return null; - var lyrSelectedInTOC = MapView.Active.GetSelectedLayers().OfType().FirstOrDefault(); - var tableSelectedInTOC = MapView.Active.GetSelectedStandaloneTables().FirstOrDefault(); - if (lyrSelectedInTOC == null && tableSelectedInTOC == null) return null; - var mapMemberSelectedInTOC = lyrSelectedInTOC == null ? tableSelectedInTOC as MapMember : lyrSelectedInTOC as MapMember; - - return mapMemberSelectedInTOC; - - } - - #endregion } + #endregion + + #region Threading Utilities + /// - /// Button implementation to show the DockPane. + /// utility function to enable an action to run on the UI thread (if not already) /// - internal class DefineQueryDefinitionFilters_ShowButton : Button + /// the action to execute + /// + internal static Task RunOnUiThread(Action action) { - protected override void OnClick() - { - DefineQueryDefinitionFiltersViewModel.Show(); - } + if (OnUIThread) + { + action(); + return Task.FromResult(0); + } + else + return Task.Factory.StartNew(action, System.Threading.CancellationToken.None, TaskCreationOptions.None, QueuedTask.UIScheduler); + } + + /// + /// determines if the application is currently on the UI thread + /// + private static bool OnUIThread + { + get + { + if (FrameworkApplication.TestMode) + return QueuedTask.OnWorker; + else + return System.Windows.Application.Current.Dispatcher.CheckAccess(); + } + } + + #endregion + + } + + /// + /// Button implementation to show the DockPane. + /// + internal class DefineQueryDefinitionFilters_ShowButton : Button + { + protected override void OnClick() + { + DefineQueryDefinitionFiltersViewModel.Show(); } + } } diff --git a/Map-Exploration/WorkingWithQueryDefinitionFilters/ReadMe.md b/Map-Exploration/WorkingWithQueryDefinitionFilters/ReadMe.md index 1efb4de2..ad36da75 100644 --- a/Map-Exploration/WorkingWithQueryDefinitionFilters/ReadMe.md +++ b/Map-Exploration/WorkingWithQueryDefinitionFilters/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/WorkingWithQueryDefinitionFilters/WorkingWithQueryDefinitionFilters (C#).md b/Map-Exploration/WorkingWithQueryDefinitionFilters/WorkingWithQueryDefinitionFilters (C#).md index 1efb4de2..ad36da75 100644 --- a/Map-Exploration/WorkingWithQueryDefinitionFilters/WorkingWithQueryDefinitionFilters (C#).md +++ b/Map-Exploration/WorkingWithQueryDefinitionFilters/WorkingWithQueryDefinitionFilters (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Map Exploration Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Map-Exploration/ZoomToSelectedFeatures/Config.daml b/Map-Exploration/ZoomToSelectedFeatures/Config.daml new file mode 100644 index 00000000..a0e81f38 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/Config.daml @@ -0,0 +1,80 @@ + + + + + ZoomToSelectedFeatures + ZoomToSelectedFeatures description + Images\AddinDesktop32.png + ArcGIS Pro SDK Team, arcgisprosdk@esri.com + esri, https://www.esri.com + 7/23/2024 7:42:58 PM + Framework + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Map-Exploration/ZoomToSelectedFeatures/DarkImages/AddInDesktop16.png b/Map-Exploration/ZoomToSelectedFeatures/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/DarkImages/AddInDesktop16.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/DarkImages/AddInDesktop32.png b/Map-Exploration/ZoomToSelectedFeatures/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/DarkImages/AddInDesktop32.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/Images/AddInDesktop16.png b/Map-Exploration/ZoomToSelectedFeatures/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/Images/AddInDesktop16.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/Images/AddInDesktop32.png b/Map-Exploration/ZoomToSelectedFeatures/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/Images/AddInDesktop32.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/Module1.cs b/Map-Exploration/ZoomToSelectedFeatures/Module1.cs new file mode 100644 index 00000000..d72da807 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/Module1.cs @@ -0,0 +1,87 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace ZoomToSelectedFeatures +{ + /// + /// This sample uses a dropdown of all layers with selected features and once a layer with selections is chosen two button allow scrolling through the selected features.. + /// + /// + /// 1. In Visual studio rebuild the solution. + /// 1. Debug the add-in. + /// 1. ArcGIS Pro opens, choose any project with feature layers. + /// 1. With the active map view, select the 'Zoom Selected' tab on the Pro ribbon. + /// 1. Choose the 'Select Tool' and select some features in the map view. + /// ![UI](Screenshots/Screen1.png) + /// 1. Once features are selected, the 'Select Layer' dropdown will be populated with the layers that have selected features. + /// 1. Use the dropdown to select a layer with selected features. + /// ![UI](Screenshots/Screen2.png) + /// 1. Use the 'Move Back' and 'Move Forward' buttons to scroll through the selected features. + /// ![UI](Screenshots/Screen3.png) + /// 1. Use the 'Expand ratio' drop down to choose the expand ratio for the zoom. 0 uses the extent of the selected feature, 100 expands the extent by 100%. + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("ZoomToSelectedFeatures_Module"); + + public static SelectLayerComboBox TheSelectLayerComboBox { get; set; } + public static MoveBack TheMoveBackButton { get; set; } + public static MoveForward TheMoveForwardButton { get; set; } + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/Map-Exploration/ZoomToSelectedFeatures/MoveBack.cs b/Map-Exploration/ZoomToSelectedFeatures/MoveBack.cs new file mode 100644 index 00000000..df2bca86 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/MoveBack.cs @@ -0,0 +1,55 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZoomToSelectedFeatures +{ + internal class MoveBack : Button + { + public MoveBack() + { + Module1.TheMoveBackButton = this; + } + + protected override void OnClick() + { + if (Module1.TheSelectLayerComboBox == null) + return; + Module1.TheSelectLayerComboBox.MoveSelection(false); + } + } +} diff --git a/Map-Exploration/ZoomToSelectedFeatures/MoveForward.cs b/Map-Exploration/ZoomToSelectedFeatures/MoveForward.cs new file mode 100644 index 00000000..15e3dab8 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/MoveForward.cs @@ -0,0 +1,54 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZoomToSelectedFeatures +{ + internal class MoveForward : Button + { + public MoveForward() + { + Module1.TheMoveForwardButton = this; + } + protected override void OnClick() + { + if (Module1.TheSelectLayerComboBox == null) + return; + Module1.TheSelectLayerComboBox.MoveSelection(true); + } + } +} diff --git a/Map-Exploration/ZoomToSelectedFeatures/Properties/launchSettings.json b/Map-Exploration/ZoomToSelectedFeatures/Properties/launchSettings.json new file mode 100644 index 00000000..fb0fa656 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "ZoomToSelectedFeatures": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/Map-Exploration/ZoomToSelectedFeatures/ReadMe.md b/Map-Exploration/ZoomToSelectedFeatures/ReadMe.md new file mode 100644 index 00000000..11a45d28 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/ReadMe.md @@ -0,0 +1,50 @@ +## ZoomToSelectedFeatures + + +This sample uses a dropdown of all layers with selected features and once a layer with selections is chosen two button allow scrolling through the selected features.. + + + +View it live + + +``` +Language: C# +Subject: Framework +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual studio rebuild the solution. +2. Debug the add-in. +3. ArcGIS Pro opens, choose any project with feature layers. +4. With the active map view, select the 'Zoom Selected' tab on the Pro ribbon. +5. Choose the 'Select Tool' and select some features in the map view. +![UI](Screenshots/Screen1.png) +6. Once features are selected, the 'Select Layer' dropdown will be populated with the layers that have selected features. +7. Use the dropdown to select a layer with selected features. +![UI](Screenshots/Screen2.png) +8. Use the 'Move Back' and 'Move Forward' buttons to scroll through the selected features. +![UI](Screenshots/Screen3.png) +9. Use the 'Expand ratio' drop down to choose the expand ratio for the zoom. 0 uses the extent of the selected feature, 100 expands the extent by 100%. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen1.png b/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen1.png new file mode 100644 index 00000000..d853f67e Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen1.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen2.png b/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen2.png new file mode 100644 index 00000000..1a5ccd46 Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen2.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen3.png b/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen3.png new file mode 100644 index 00000000..19252a3c Binary files /dev/null and b/Map-Exploration/ZoomToSelectedFeatures/Screenshots/Screen3.png differ diff --git a/Map-Exploration/ZoomToSelectedFeatures/SelectLayerComboBox.cs b/Map-Exploration/ZoomToSelectedFeatures/SelectLayerComboBox.cs new file mode 100644 index 00000000..e8086a64 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/SelectLayerComboBox.cs @@ -0,0 +1,225 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Internal.Catalog.PropertyPages.NetworkDataset; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using ArcGIS.Desktop.Mapping.Events; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media.Imaging; + +namespace ZoomToSelectedFeatures +{ + /// + /// Represents the ComboBox + /// + internal class SelectLayerComboBox : ComboBox + { + + private bool _isInitialized; + private Dictionary> _currentSelection { get; set; } + private KeyValuePair>? _selectedItem { get; set; } + + /// + /// Use to expand the view after zooming to the selected features + /// + public double ExpandValue { get; set; } = 0; + + + private int CurrentSelectionIndex { get; set; } = 0; + + /// + /// Combo Box constructor + /// + public SelectLayerComboBox() + { + Module1.TheSelectLayerComboBox = this; + UpdateCombo(); + } + + + /// + /// The on comboBox selection change event. + /// + /// The newly selected combo box item + protected override void OnSelectionChange(ComboBoxItem item) + { + if (item == null) + return; + + if (string.IsNullOrEmpty(item.Text)) + return; + + if (_currentSelection == null) + { + _selectedItem = null; + return; + } + _selectedItem = _currentSelection.FirstOrDefault((e) => e.Key.Name == item.Text); + CurrentSelectionIndex = 0; + if (Module1.TheMoveBackButton != null) + Module1.TheMoveBackButton.Enabled = CurrentSelectionIndex != 0; + if (Module1.TheMoveForwardButton != null) + Module1.TheMoveForwardButton.Enabled = CurrentSelectionIndex != _selectedItem.Value.Value.Count - 1; + if (MapView.Active == null) + return; + ShowSelection(MapView.Active); + } + + /// + /// Updates the combo box with all the items. + /// + + private async void UpdateCombo() + { + // customize this method to populate the combobox + if (_isInitialized) + SelectedItem = ItemCollection.FirstOrDefault(); //set the default item in the comboBox + if (!_isInitialized) + { + Clear(); + // setup events when selection changes + MapSelectionChangedEvent.Subscribe(OnMapSelectionChangedEvent); + + // Add all layers with selections to this map + if (MapView.Active?.Map != null) + { + var currentSelection = await QueuedTask.Run(() => + { + return MapView.Active.Map.GetSelection(); + }); + OnMapSelectionChangedEvent(new MapSelectionChangedEventArgs(MapView.Active.Map, currentSelection, false)); + } + _isInitialized = true; + } + Enabled = true; //enables the ComboBox + SelectedItem = ItemCollection.FirstOrDefault(); //set the default item in the comboBox + } + + //Event handler when the MapSelection event is triggered. + private async void OnMapSelectionChangedEvent(MapSelectionChangedEventArgs mapSelectionChangedArgs) + { + var currentSelection = mapSelectionChangedArgs.Selection.ToDictionary(); + Clear(); + // For each map member with a selection on it. + foreach (var selectedKeyValue in currentSelection) + { + var mapMember = selectedKeyValue.Key; + if (!(mapMember is BasicFeatureLayer layer)) + continue; + var comboBoxItem = await QueuedTask.Run(() => + { + return MakeComboBoxItem(layer.GetDefinition() as CIMFeatureLayer); + }); + Add(comboBoxItem); + } + _currentSelection = currentSelection; + } + + static ComboBoxItem MakeComboBoxItem(CIMFeatureLayer cimFeatureLayer) + { + var toolTip = $@"Select this feature layer: {cimFeatureLayer.Name}"; + if (cimFeatureLayer.Renderer is not CIMSimpleRenderer cimRenderer) + { + return new ComboBoxItem(cimFeatureLayer.Name, null, toolTip); + } + var si = new SymbolStyleItem() + { + Symbol = cimRenderer.Symbol.Symbol, + PatchHeight = 16, + PatchWidth = 16 + }; + var bm = si.PreviewImage as BitmapSource; + bm.Freeze(); + return new ComboBoxItem(cimFeatureLayer.Name, bm, toolTip); + } + + + public void MoveSelection(bool forward) + { + if (_selectedItem == null) + return; + if (MapView.Active?.Map == null) + return; + var mapView = MapView.Active; + if (forward && CurrentSelectionIndex < _selectedItem.Value.Value.Count - 1) + CurrentSelectionIndex++; + else if (!forward && CurrentSelectionIndex > 0) + CurrentSelectionIndex--; + else + return; + if (Module1.TheMoveBackButton != null) + Module1.TheMoveBackButton.Enabled = CurrentSelectionIndex != 0; + if (Module1.TheMoveForwardButton != null) + Module1.TheMoveForwardButton.Enabled = CurrentSelectionIndex != _selectedItem.Value.Value.Count - 1; + ShowSelection(mapView); + } + + private async void ShowSelection (MapView mapView) + { + var mapMember = _selectedItem.Value.Key; + if (mapMember is FeatureLayer featureLayer) + { + var geometry = await QueuedTask.Run(() => + { + QueryFilter qf = new() + { + ObjectIDs = [_selectedItem.Value.Value[CurrentSelectionIndex]] + }; + using RowCursor rowCursor = featureLayer.Search(qf); + while (rowCursor.MoveNext()) + { + return (rowCursor.Current as Feature).GetShape().Clone(); + } + return null; + }); + if (geometry != null) + { + var envelopeGeometry = await QueuedTask.Run(() => + { + double dPercent = 1.0 + ExpandValue / 100.0; + var g = geometry.Extent.Expand(dPercent, dPercent, true); + return new PolygonBuilderEx(g).ToGeometry(); + }); + //await mapView.ZoomToAsync(geometry); + await mapView.ZoomToAsync(envelopeGeometry, new TimeSpan(0, 0, 1)); + mapView.FlashFeature(featureLayer, _selectedItem.Value.Value[CurrentSelectionIndex]); + } + } + } + + } +} diff --git a/Map-Exploration/ZoomToSelectedFeatures/SelectionExpandRatio.cs b/Map-Exploration/ZoomToSelectedFeatures/SelectionExpandRatio.cs new file mode 100644 index 00000000..7b8feef5 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/SelectionExpandRatio.cs @@ -0,0 +1,108 @@ +/* + + Copyright 2024 Esri + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + + See the License for the specific language governing permissions and + limitations under the License. + +*/ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZoomToSelectedFeatures +{ + /// + /// Represents the ComboBox + /// + internal class SelectionExpandRatio : ComboBox + { + + private bool _isInitialized; + + /// + /// Combo Box constructor + /// + public SelectionExpandRatio() + { + UpdateCombo(); + } + + /// + /// Updates the combo box with all the items. + /// + + private void UpdateCombo() + { + // populate the combobox with expand values + if (_isInitialized) + SelectedItem = ItemCollection.FirstOrDefault(); //set the default item in the comboBox + + + if (!_isInitialized) + { + Clear(); + + int[] expandValues = { 0,10,25,50,75,100 }; + _isInitialized = true; + foreach (var expandValue in expandValues) + { + Add(new ComboBoxItem($@"{expandValue}")); + } + } + + Enabled = true; //enables the ComboBox + SelectedItem = ItemCollection.FirstOrDefault(); //set the default item in the comboBox + + } + + /// + /// The on comboBox selection change event. + /// + /// The newly selected combo box item + protected override void OnSelectionChange(ComboBoxItem item) + { + if (item == null) + return; + + if (string.IsNullOrEmpty(item.Text)) + return; + + if (double.TryParse (item.Text, out double value)) + { + if (value > 100.0) value %= 100.0; + Module1.TheSelectLayerComboBox.ExpandValue = value; + } + + } + + } +} diff --git a/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures (C#).md b/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures (C#).md new file mode 100644 index 00000000..11a45d28 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures (C#).md @@ -0,0 +1,50 @@ +## ZoomToSelectedFeatures + + +This sample uses a dropdown of all layers with selected features and once a layer with selections is chosen two button allow scrolling through the selected features.. + + + +View it live + + +``` +Language: C# +Subject: Framework +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +1. In Visual studio rebuild the solution. +2. Debug the add-in. +3. ArcGIS Pro opens, choose any project with feature layers. +4. With the active map view, select the 'Zoom Selected' tab on the Pro ribbon. +5. Choose the 'Select Tool' and select some features in the map view. +![UI](Screenshots/Screen1.png) +6. Once features are selected, the 'Select Layer' dropdown will be populated with the layers that have selected features. +7. Use the dropdown to select a layer with selected features. +![UI](Screenshots/Screen2.png) +8. Use the 'Move Back' and 'Move Forward' buttons to scroll through the selected features. +![UI](Screenshots/Screen3.png) +9. Use the 'Expand ratio' drop down to choose the expand ratio for the zoom. 0 uses the extent of the selected feature, 100 expands the extent by 100%. + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures.csproj b/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures.csproj new file mode 100644 index 00000000..4d2472d6 --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures.csproj @@ -0,0 +1,105 @@ + + + net8.0-windows + true + win-x64 + false + true + CA1416 + True + + + + + + + + + + + + + + + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Framework.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Core\ArcGIS.Desktop.Core.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Mapping\ArcGIS.Desktop.Mapping.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Catalog\ArcGIS.Desktop.Catalog.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing\ArcGIS.Desktop.Editing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\DesktopExtensions\ArcGIS.Desktop.Extensions.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\GeoProcessing\ArcGIS.Desktop.GeoProcessing.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\Layout\ArcGIS.Desktop.Layouts.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\Extensions\KnowledgeGraph\ArcGIS.Desktop.KnowledgeGraph.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Shared.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Ribbon.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.DataGrid.Contrib.Wpf.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ArcGIS.Desktop.Resources.dll + False + False + + + C:\Program Files\ArcGIS\Pro\bin\ESRI.ArcGIS.ItemIndex.dll + False + False + + + + + + + diff --git a/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures.sln b/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures.sln new file mode 100644 index 00000000..fd1e48ae --- /dev/null +++ b/Map-Exploration/ZoomToSelectedFeatures/ZoomToSelectedFeatures.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35027.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZoomToSelectedFeatures", "ZoomToSelectedFeatures.csproj", "{CF2C6ACF-F205-4088-8838-135F7ED76CD9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CF2C6ACF-F205-4088-8838-135F7ED76CD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF2C6ACF-F205-4088-8838-135F7ED76CD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF2C6ACF-F205-4088-8838-135F7ED76CD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF2C6ACF-F205-4088-8838-135F7ED76CD9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {66746D06-D3A7-4EA7-ACFE-702194C92FC5} + EndGlobalSection +EndGlobal diff --git a/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/BringUpSubnetworkNamesOnDiagramEdges (C#).md b/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/BringUpSubnetworkNamesOnDiagramEdges (C#).md index 5895512f..1f4713e1 100644 --- a/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/BringUpSubnetworkNamesOnDiagramEdges (C#).md +++ b/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/BringUpSubnetworkNamesOnDiagramEdges (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows7.0 ``` diff --git a/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/ReadMe.md b/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/ReadMe.md index 5895512f..1f4713e1 100644 --- a/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/ReadMe.md +++ b/NetworkDiagram/BringUpSubnetworkNamesOnDiagramEdges/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows7.0 ``` diff --git a/NetworkDiagram/CountAggregatedNetworkElements/CountAggregatedNetworkElements (C#).md b/NetworkDiagram/CountAggregatedNetworkElements/CountAggregatedNetworkElements (C#).md index b41769ac..87d2f30b 100644 --- a/NetworkDiagram/CountAggregatedNetworkElements/CountAggregatedNetworkElements (C#).md +++ b/NetworkDiagram/CountAggregatedNetworkElements/CountAggregatedNetworkElements (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CountAggregatedNetworkElements/ReadMe.md b/NetworkDiagram/CountAggregatedNetworkElements/ReadMe.md index b41769ac..87d2f30b 100644 --- a/NetworkDiagram/CountAggregatedNetworkElements/ReadMe.md +++ b/NetworkDiagram/CountAggregatedNetworkElements/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CreateDiagramWithACustomLayout/CreateDiagramWithACustomLayout (C#).md b/NetworkDiagram/CreateDiagramWithACustomLayout/CreateDiagramWithACustomLayout (C#).md index 99c4609a..3f7aeab7 100644 --- a/NetworkDiagram/CreateDiagramWithACustomLayout/CreateDiagramWithACustomLayout (C#).md +++ b/NetworkDiagram/CreateDiagramWithACustomLayout/CreateDiagramWithACustomLayout (C#).md @@ -16,8 +16,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CreateDiagramWithACustomLayout/ReadMe.md b/NetworkDiagram/CreateDiagramWithACustomLayout/ReadMe.md index 99c4609a..3f7aeab7 100644 --- a/NetworkDiagram/CreateDiagramWithACustomLayout/ReadMe.md +++ b/NetworkDiagram/CreateDiagramWithACustomLayout/ReadMe.md @@ -16,8 +16,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CustomDiagramEditingTools/DiagramEditing (C#).md b/NetworkDiagram/CustomDiagramEditingTools/DiagramEditing (C#).md index eb8a252c..50dac667 100644 --- a/NetworkDiagram/CustomDiagramEditingTools/DiagramEditing (C#).md +++ b/NetworkDiagram/CustomDiagramEditingTools/DiagramEditing (C#).md @@ -19,8 +19,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CustomDiagramEditingTools/ReadMe.md b/NetworkDiagram/CustomDiagramEditingTools/ReadMe.md index eb8a252c..50dac667 100644 --- a/NetworkDiagram/CustomDiagramEditingTools/ReadMe.md +++ b/NetworkDiagram/CustomDiagramEditingTools/ReadMe.md @@ -19,8 +19,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/CustomizeNetworkDiagramLayoutExecution (C#).md b/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/CustomizeNetworkDiagramLayoutExecution (C#).md index 8f9c4d51..8189a0b7 100644 --- a/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/CustomizeNetworkDiagramLayoutExecution (C#).md +++ b/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/CustomizeNetworkDiagramLayoutExecution (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/ReadMe.md b/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/ReadMe.md index 8f9c4d51..8189a0b7 100644 --- a/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/ReadMe.md +++ b/NetworkDiagram/CustomizeNetworkDiagramLayoutExecution/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/EditDiagramJunctionRotation/EditDiagramJunctionRotation (C#).md b/NetworkDiagram/EditDiagramJunctionRotation/EditDiagramJunctionRotation (C#).md index 58a40c77..7b1c5911 100644 --- a/NetworkDiagram/EditDiagramJunctionRotation/EditDiagramJunctionRotation (C#).md +++ b/NetworkDiagram/EditDiagramJunctionRotation/EditDiagramJunctionRotation (C#).md @@ -20,8 +20,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/EditDiagramJunctionRotation/ReadMe.md b/NetworkDiagram/EditDiagramJunctionRotation/ReadMe.md index 58a40c77..7b1c5911 100644 --- a/NetworkDiagram/EditDiagramJunctionRotation/ReadMe.md +++ b/NetworkDiagram/EditDiagramJunctionRotation/ReadMe.md @@ -20,8 +20,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/ExportDiagramToFeatureClasses/ExportDiagramToFeatureClasses (C#).md b/NetworkDiagram/ExportDiagramToFeatureClasses/ExportDiagramToFeatureClasses (C#).md index 67f63b83..bf0645df 100644 --- a/NetworkDiagram/ExportDiagramToFeatureClasses/ExportDiagramToFeatureClasses (C#).md +++ b/NetworkDiagram/ExportDiagramToFeatureClasses/ExportDiagramToFeatureClasses (C#).md @@ -22,8 +22,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/ExportDiagramToFeatureClasses/ReadMe.md b/NetworkDiagram/ExportDiagramToFeatureClasses/ReadMe.md index 67f63b83..bf0645df 100644 --- a/NetworkDiagram/ExportDiagramToFeatureClasses/ReadMe.md +++ b/NetworkDiagram/ExportDiagramToFeatureClasses/ReadMe.md @@ -22,8 +22,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/ReadMe.md b/NetworkDiagram/ReadMe.md index 9f5273b9..46343324 100644 --- a/NetworkDiagram/ReadMe.md +++ b/NetworkDiagram/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Network Diagram -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Network Diagram' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Network Diagram' topic. ## Features diff --git a/NetworkDiagram/ShowContainment/ReadMe.md b/NetworkDiagram/ShowContainment/ReadMe.md index 8e8397c1..f8efb06c 100644 --- a/NetworkDiagram/ShowContainment/ReadMe.md +++ b/NetworkDiagram/ShowContainment/ReadMe.md @@ -22,8 +22,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/ShowContainment/ShowContainment (C#).md b/NetworkDiagram/ShowContainment/ShowContainment (C#).md index 8e8397c1..f8efb06c 100644 --- a/NetworkDiagram/ShowContainment/ShowContainment (C#).md +++ b/NetworkDiagram/ShowContainment/ShowContainment (C#).md @@ -22,8 +22,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/ToggleSwitches/ReadMe.md b/NetworkDiagram/ToggleSwitches/ReadMe.md index 00b50d34..f5e8fe3a 100644 --- a/NetworkDiagram/ToggleSwitches/ReadMe.md +++ b/NetworkDiagram/ToggleSwitches/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/NetworkDiagram/ToggleSwitches/ToggleSwitches (C#).md b/NetworkDiagram/ToggleSwitches/ToggleSwitches (C#).md index 00b50d34..f5e8fe3a 100644 --- a/NetworkDiagram/ToggleSwitches/ToggleSwitches (C#).md +++ b/NetworkDiagram/ToggleSwitches/ToggleSwitches (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: NetworkDiagram Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/ParcelFabric/ImportPlatToFabric/ImportPlatToFabric (C#).md b/ParcelFabric/ImportPlatToFabric/ImportPlatToFabric (C#).md index 5dcfeff6..f0fddddc 100644 --- a/ParcelFabric/ImportPlatToFabric/ImportPlatToFabric (C#).md +++ b/ParcelFabric/ImportPlatToFabric/ImportPlatToFabric (C#).md @@ -20,8 +20,8 @@ Language: C# Subject: Parcel Fabric Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/ParcelFabric/ImportPlatToFabric/ReadMe.md b/ParcelFabric/ImportPlatToFabric/ReadMe.md index 5dcfeff6..f0fddddc 100644 --- a/ParcelFabric/ImportPlatToFabric/ReadMe.md +++ b/ParcelFabric/ImportPlatToFabric/ReadMe.md @@ -20,8 +20,8 @@ Language: C# Subject: Parcel Fabric Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/ParcelFabric/ParcelFabricMultistoryTool/ParcelFabricMultistoryTool (C#).md b/ParcelFabric/ParcelFabricMultistoryTool/ParcelFabricMultistoryTool (C#).md index 71a01935..d81039c6 100644 --- a/ParcelFabric/ParcelFabricMultistoryTool/ParcelFabricMultistoryTool (C#).md +++ b/ParcelFabric/ParcelFabricMultistoryTool/ParcelFabricMultistoryTool (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: ParcelFabric Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/ParcelFabric/ParcelFabricMultistoryTool/ReadMe.md b/ParcelFabric/ParcelFabricMultistoryTool/ReadMe.md index 71a01935..d81039c6 100644 --- a/ParcelFabric/ParcelFabricMultistoryTool/ReadMe.md +++ b/ParcelFabric/ParcelFabricMultistoryTool/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: ParcelFabric Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/ParcelFabric/ReadMe.md b/ParcelFabric/ReadMe.md index 04c36677..a5fd4e9d 100644 --- a/ParcelFabric/ReadMe.md +++ b/ParcelFabric/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: ParcelFabric -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'ParcelFabric' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'ParcelFabric' topic. ## Features diff --git a/Plugin/ProDataReader/ProDataReader (C#).md b/Plugin/ProDataReader/ProDataReader (C#).md index 10d2149a..382e4f37 100644 --- a/Plugin/ProDataReader/ProDataReader (C#).md +++ b/Plugin/ProDataReader/ProDataReader (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Plugin/ProDataReader/ReadMe.md b/Plugin/ProDataReader/ReadMe.md index 10d2149a..382e4f37 100644 --- a/Plugin/ProDataReader/ReadMe.md +++ b/Plugin/ProDataReader/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Plugin/ProSqlExpressReader/ProSqlExpressReader (C#).md b/Plugin/ProSqlExpressReader/ProSqlExpressReader (C#).md index e6e64e38..ebb4f75a 100644 --- a/Plugin/ProSqlExpressReader/ProSqlExpressReader (C#).md +++ b/Plugin/ProSqlExpressReader/ProSqlExpressReader (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Plugin Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Plugin/ProSqlExpressReader/ReadMe.md b/Plugin/ProSqlExpressReader/ReadMe.md index e6e64e38..ebb4f75a 100644 --- a/Plugin/ProSqlExpressReader/ReadMe.md +++ b/Plugin/ProSqlExpressReader/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Plugin Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Plugin/ReadMe.md b/Plugin/ReadMe.md index 05df7092..0d7fb9fa 100644 --- a/Plugin/ReadMe.md +++ b/Plugin/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Plugin -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Plugin' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Plugin' topic. ## Features diff --git a/Plugin/SimplePointPlugin/esriKey.snk b/Plugin/SimplePointPlugin/esriKey.snk new file mode 100644 index 00000000..ed5af5b4 Binary files /dev/null and b/Plugin/SimplePointPlugin/esriKey.snk differ diff --git a/Plugin/SimplePointPluginTest/ReadMe.md b/Plugin/SimplePointPluginTest/ReadMe.md index 2de37394..90c588b0 100644 --- a/Plugin/SimplePointPluginTest/ReadMe.md +++ b/Plugin/SimplePointPluginTest/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Plugin/SimplePointPluginTest/SimplePointPluginTest (C#).md b/Plugin/SimplePointPluginTest/SimplePointPluginTest (C#).md index 2de37394..90c588b0 100644 --- a/Plugin/SimplePointPluginTest/SimplePointPluginTest (C#).md +++ b/Plugin/SimplePointPluginTest/SimplePointPluginTest (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Geodatabase Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/README.md b/README.md index 9030a0c5..67c12fc3 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # arcgis-pro-sdk-community-samples -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functionalities in the following functional areas of ArcGIS Pro: Content, Configuration, Framework, Editing, Geodatabase, Geometry, Geoprocessing, Layouts, Reports, Map Authoring, Map Exploration, Utility Network, Network Diagram, Sharing, TaskAssistant, and Workflow. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functionalities in the following functional areas of ArcGIS Pro: Content, Configuration, Framework, Editing, Geodatabase, Geometry, Geoprocessing, Layouts, Reports, Map Authoring, Map Exploration, Utility Network, Network Diagram, Sharing, TaskAssistant, and Workflow. ## Features @@ -97,7 +97,7 @@ Read the [ProGuide: Installation and Upgrade](https://github.com/Esri/arcgis-pro ## ArcGIS Pro Add-In Community Sample List -Below is the list of 282 ArcGIS Pro samples that are included in this repository. +Below is the list of 289 ArcGIS Pro samples that are included in this repository. #### Content @@ -150,6 +150,8 @@ Below is the list of 282 ArcGIS Pro samples that are included in this repository * [GroundToGridEvents (c#)](../../tree/master/Editing/GroundToGridEvents) * [InspectorTool (c#)](../../tree/master/Editing/InspectorTool) * [Inspector_AddAttributeAsync (c#)](../../tree/master/Editing/Inspector_AddAttributeAsync) +* [KnowledgeGraphConstructionTools (c#)](../../tree/master/Editing/KnowledgeGraphConstructionTools) +* [KnowledgeGraphRelateTool (c#)](../../tree/master/Editing/KnowledgeGraphRelateTool) * [LayerSnapModes (c#)](../../tree/master/Editing/LayerSnapModes) * [MainConnectorManhole (c#)](../../tree/master/Editing/MainConnectorManhole) * [MapTopologyAddIn (c#)](../../tree/master/Editing/MapTopologyAddIn) @@ -161,6 +163,7 @@ Below is the list of 282 ArcGIS Pro samples that are included in this repository * [SequentialNumberTool (c#)](../../tree/master/Editing/SequentialNumberTool) * [SketchRemoveCurves (c#)](../../tree/master/Editing/SketchRemoveCurves) * [SketchToolDemo (c#)](../../tree/master/Editing/SketchToolDemo) +* [SketchToolWithHalos (c#)](../../tree/master/Editing/SketchToolWithHalos) * [SplitPolygon (c#)](../../tree/master/Editing/SplitPolygon) * [TableConstructionTool (c#)](../../tree/master/Editing/TableConstructionTool) * [TableFeatureClassOperations (c#)](../../tree/master/Editing/TableFeatureClassOperations) @@ -223,6 +226,7 @@ Below is the list of 282 ArcGIS Pro samples that are included in this repository * [DatagridMultiSelect (c#)](../../tree/master/MVVM-XAML/DatagridMultiSelect) * [DockpaneAndThreads (c#)](../../tree/master/MVVM-XAML/DockpaneAndThreads) +* [DockpaneDragAndDropFeatureLayer (c#)](../../tree/master/MVVM-XAML/DockpaneDragAndDropFeatureLayer) * [DockpaneWithLayerFieldSelection (c#)](../../tree/master/MVVM-XAML/DockpaneWithLayerFieldSelection) * [DockpaneWithListCheckbox (c#)](../../tree/master/MVVM-XAML/DockpaneWithListCheckbox) * [DockpaneWithProButtons (c#)](../../tree/master/MVVM-XAML/DockpaneWithProButtons) @@ -240,6 +244,7 @@ Below is the list of 282 ArcGIS Pro samples that are included in this repository * [Geocode (c#)](../../tree/master/Geoprocessing/Geocode) * [GeoprocessingExecuteAsync (c#)](../../tree/master/Geoprocessing/GeoprocessingExecuteAsync) * [GeoProcessingHistory (c#)](../../tree/master/Geoprocessing/GeoProcessingHistory) +* [GeoProcesssingEventsWithUI (c#)](../../tree/master/Geoprocessing/GeoProcesssingEventsWithUI) * [GeoProcesssingWithMemoryGDB (c#)](../../tree/master/Geoprocessing/GeoProcesssingWithMemoryGDB) * [SimpleBufferExample (c#)](../../tree/master/Geoprocessing/SimpleBufferExample) @@ -278,6 +283,7 @@ Below is the list of 282 ArcGIS Pro samples that are included in this repository * [QueryDefDataQuery (c#)](../../tree/master/Geodatabase/QueryDefDataQuery) * [ReplaceAttachments (c#)](../../tree/master/Geodatabase/ReplaceAttachments) * [ValidateFeatures (c#)](../../tree/master/Geodatabase/ValidateFeatures) +* [VersionUpdatePerformance (c#)](../../tree/master/Geodatabase/VersionUpdatePerformance) #### Map Authoring @@ -360,6 +366,7 @@ Below is the list of 282 ArcGIS Pro samples that are included in this repository * [TableFromCsv (c#)](../../tree/master/Map-Exploration/TableFromCsv) * [TimeNavigation (c#)](../../tree/master/Map-Exploration/TimeNavigation) * [WorkingWithQueryDefinitionFilters (c#)](../../tree/master/Map-Exploration/WorkingWithQueryDefinitionFilters) +* [ZoomToSelectedFeatures (c#)](../../tree/master/Map-Exploration/ZoomToSelectedFeatures) #### Layouts diff --git a/Raster/ChangeColorizerForRasterLayer/ChangeColorizerForRasterLayer (C#).md b/Raster/ChangeColorizerForRasterLayer/ChangeColorizerForRasterLayer (C#).md index d1d3c9d4..d64c4344 100644 --- a/Raster/ChangeColorizerForRasterLayer/ChangeColorizerForRasterLayer (C#).md +++ b/Raster/ChangeColorizerForRasterLayer/ChangeColorizerForRasterLayer (C#).md @@ -18,8 +18,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/ChangeColorizerForRasterLayer/ReadMe.md b/Raster/ChangeColorizerForRasterLayer/ReadMe.md index d1d3c9d4..d64c4344 100644 --- a/Raster/ChangeColorizerForRasterLayer/ReadMe.md +++ b/Raster/ChangeColorizerForRasterLayer/ReadMe.md @@ -18,8 +18,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/Colorizer/Colorizer (C#).md b/Raster/Colorizer/Colorizer (C#).md index 304bdd82..898fd922 100644 --- a/Raster/Colorizer/Colorizer (C#).md +++ b/Raster/Colorizer/Colorizer (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/Colorizer/ReadMe.md b/Raster/Colorizer/ReadMe.md index 304bdd82..898fd922 100644 --- a/Raster/Colorizer/ReadMe.md +++ b/Raster/Colorizer/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/CustomRasterIdentify/CustomRasterIdentify (C#).md b/Raster/CustomRasterIdentify/CustomRasterIdentify (C#).md index 70993676..3a2d86c7 100644 --- a/Raster/CustomRasterIdentify/CustomRasterIdentify (C#).md +++ b/Raster/CustomRasterIdentify/CustomRasterIdentify (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/CustomRasterIdentify/ReadMe.md b/Raster/CustomRasterIdentify/ReadMe.md index 70993676..3a2d86c7 100644 --- a/Raster/CustomRasterIdentify/ReadMe.md +++ b/Raster/CustomRasterIdentify/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/LockToSelectedRasters/LockToSelectedRasters (C#).md b/Raster/LockToSelectedRasters/LockToSelectedRasters (C#).md index 38d51cc9..a4072167 100644 --- a/Raster/LockToSelectedRasters/LockToSelectedRasters (C#).md +++ b/Raster/LockToSelectedRasters/LockToSelectedRasters (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/LockToSelectedRasters/ReadMe.md b/Raster/LockToSelectedRasters/ReadMe.md index 38d51cc9..a4072167 100644 --- a/Raster/LockToSelectedRasters/ReadMe.md +++ b/Raster/LockToSelectedRasters/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/MaskRaster/MaskRaster (C#).md b/Raster/MaskRaster/MaskRaster (C#).md index 107cdbad..cd6f47e7 100644 --- a/Raster/MaskRaster/MaskRaster (C#).md +++ b/Raster/MaskRaster/MaskRaster (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/MaskRaster/ReadMe.md b/Raster/MaskRaster/ReadMe.md index 107cdbad..cd6f47e7 100644 --- a/Raster/MaskRaster/ReadMe.md +++ b/Raster/MaskRaster/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/RasterInspector/RasterInspector (C#).md b/Raster/RasterInspector/RasterInspector (C#).md index 8a696ede..76bda6df 100644 --- a/Raster/RasterInspector/RasterInspector (C#).md +++ b/Raster/RasterInspector/RasterInspector (C#).md @@ -14,8 +14,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/RasterInspector/ReadMe.md b/Raster/RasterInspector/ReadMe.md index 8a696ede..76bda6df 100644 --- a/Raster/RasterInspector/ReadMe.md +++ b/Raster/RasterInspector/ReadMe.md @@ -14,8 +14,8 @@ Language: C# Subject: Raster Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Raster/ReadMe.md b/Raster/ReadMe.md index 09c345c5..606466ae 100644 --- a/Raster/ReadMe.md +++ b/Raster/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Raster -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Raster' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Raster' topic. ## Features diff --git a/Reports/CreateReport/CreateReport (C#).md b/Reports/CreateReport/CreateReport (C#).md index cbfd1ca7..5b4f9434 100644 --- a/Reports/CreateReport/CreateReport (C#).md +++ b/Reports/CreateReport/CreateReport (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Reports/CreateReport/CreateReport.xaml b/Reports/CreateReport/CreateReport.xaml index 0517743e..9bb49e6f 100644 --- a/Reports/CreateReport/CreateReport.xaml +++ b/Reports/CreateReport/CreateReport.xaml @@ -48,103 +48,104 @@ - - - - - - - - - - - - Report uses only selected features - - - - - - - Select All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + Select All + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Reports/CreateReport/CreateReportViewModel.cs b/Reports/CreateReport/CreateReportViewModel.cs index a225d824..3a75c24c 100644 --- a/Reports/CreateReport/CreateReportViewModel.cs +++ b/Reports/CreateReport/CreateReportViewModel.cs @@ -68,7 +68,7 @@ protected CreateReportViewModel() System.Windows.Data.BindingOperations.EnableCollectionSynchronization(_reportStyles, _reportStylesLock); if (MapView.Active == null) return; - GetLayersInMap(); + GetLayersAndTablesInMap(); _ = UpdateCollectionsAsync(); //Gets the template types and styles. _ = GetReportsInProjectAsync(); } @@ -110,19 +110,19 @@ public string Heading SetProperty(ref _heading, value, () => Heading); } } - private ObservableCollection _layers = new ObservableCollection(); + private ObservableCollection _layers = new ObservableCollection(); /// /// Collection of layers in the active map /// - public ObservableCollection Layers + public ObservableCollection Layers { get { return _layers; } } - private FeatureLayer _selectedLayer; + private MapMember _selectedLayer; /// /// Selected feature layer /// - public FeatureLayer SelectedLayer + public MapMember SelectedLayer { get { return _selectedLayer; } set @@ -409,7 +409,8 @@ await QueuedTask.Run(() => } //Set Datasource - reportDataSource = new ReportDataSource(SelectedLayer, "", IsUseSelection, reportFields); + reportDataSource = new ReportDataSource(SelectedLayer, "", reportFields); + try { @@ -472,7 +473,7 @@ private async Task ExportReport() //Create PDF format with appropriate settings PDFFormat pdfFormat = new PDFFormat(); pdfFormat.Resolution = 300; - pdfFormat.OutputFileName = Path.Combine(Project.Current.HomeFolderPath, $"{report.Name}.pdf"); + pdfFormat.OutputFileName = Path.Combine(Project.Current.HomeFolderPath); await QueuedTask.Run(() => { report?.ExportToPDF(ReportName, pdfFormat, exportOptions, IsUseSelection); @@ -665,10 +666,21 @@ private async Task GetFieldsAsync() await QueuedTask.Run((Action)(() => { - foreach (FieldDescription fd in SelectedLayer?.GetFieldDescriptions()) + List fieldDescriptions = new List(); + var selectedLayer = SelectedLayer as FeatureLayer; + if (selectedLayer != null) { - string shapeField = SelectedLayer.GetFeatureClass().GetDefinition().GetShapeField(); - if (fd.Name == shapeField) continue; //filter out the shape field. + var shapeField = selectedLayer.GetFeatureClass().GetDefinition().GetShapeField(); + var layerFields = selectedLayer.GetFieldDescriptions().Where( i => i.Name != shapeField); + fieldDescriptions.AddRange(layerFields); + + } + if (selectedLayer == null) + fieldDescriptions.AddRange((SelectedLayer as StandaloneTable).GetFieldDescriptions()); + + foreach (FieldDescription fd in fieldDescriptions) + { + var defFieldAction = (Action)(() => { var field = new ReportField { IsSelected = false, DisplayName = fd.Alias, Name = fd.Name }; @@ -723,20 +735,24 @@ await QueuedTask.Run(() => ReportStyles = new ObservableCollection(reportStylesList); SelectedReportStyle = ReportStyles[0]; } - public void GetLayersInMap() + public void GetLayersAndTablesInMap() { System.Diagnostics.Debug.WriteLine($"MapView name: {MapView.Active?.Map.Name}"); if (MapView.Active?.Map == null) return; _activeMap = MapView.Active.Map; ReportName = $"Report_{_activeMap.Name}"; var lyrs = MapView.Active.Map.GetLayersAsFlattenedList().OfType(); + var tables = MapView.Active.Map.GetStandaloneTablesAsFlattenedList(); + IList lyrsAndTables = new List(); + lyrsAndTables = lyrs.ToList(); + lyrsAndTables = lyrsAndTables.Concat(tables).ToList(); lock (_lock) { _layers.Clear(); - foreach (var lyr in lyrs) + foreach (var item in lyrsAndTables) { - _layers.Add(lyr); - System.Diagnostics.Debug.WriteLine($"LayerName name: {lyr.Name}"); + _layers.Add(item); + System.Diagnostics.Debug.WriteLine($"LayerName name: {item.Name}"); } } SelectedLayer = Layers.Count > 0 ? Layers[0] : null; @@ -764,7 +780,7 @@ private void OnActiveMapViewChanged(ActiveMapViewChangedEventArgs obj) if (obj.IncomingView == null) return; System.Diagnostics.Debug.WriteLine("Incoming is not null"); - GetLayersInMap(); + GetLayersAndTablesInMap(); } private void OnActivePaneChanged(PaneEventArgs obj) { @@ -775,7 +791,7 @@ private void OnActivePaneChanged(PaneEventArgs obj) if (obj.IncomingPane is IMapPane) { System.Diagnostics.Debug.WriteLine("Incoming is a MapPane"); - GetLayersInMap(); + GetLayersAndTablesInMap(); } } private void OnProjectItemsChanged(ProjectItemsChangedEventArgs obj) diff --git a/Reports/CreateReport/ReadMe.md b/Reports/CreateReport/ReadMe.md index cbfd1ca7..5b4f9434 100644 --- a/Reports/CreateReport/ReadMe.md +++ b/Reports/CreateReport/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Reports/CreateReportBasic/CreateReportBasic (C#).md b/Reports/CreateReportBasic/CreateReportBasic (C#).md index 98e0f72a..779d6565 100644 --- a/Reports/CreateReportBasic/CreateReportBasic (C#).md +++ b/Reports/CreateReportBasic/CreateReportBasic (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Reports/CreateReportBasic/ReadMe.md b/Reports/CreateReportBasic/ReadMe.md index 98e0f72a..779d6565 100644 --- a/Reports/CreateReportBasic/ReadMe.md +++ b/Reports/CreateReportBasic/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Reports/ReadMe.md b/Reports/ReadMe.md index a7e5ae80..b05f9613 100644 --- a/Reports/ReadMe.md +++ b/Reports/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Reports -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Reports' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Reports' topic. ## Features diff --git a/Samples.sln b/Samples.sln index 49fd08e0..31f995a1 100644 --- a/Samples.sln +++ b/Samples.sln @@ -593,6 +593,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EditorInspectorUI", "Editin EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CreateLineOfSight", "3DAnalyst\CreateLineOfSight\CreateLineOfSight.csproj", "{9DA2965A-E927-4823-AE7A-83526A9F294A}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DockpaneDragAndDropFeatureLayer", "MVVM-XAML\DockpaneDragAndDropFeatureLayer\DockpaneDragAndDropFeatureLayer.csproj", "{75944899-77F7-4CCA-B983-F32AFB87C23A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZoomToSelectedFeatures", "Map-Exploration\ZoomToSelectedFeatures\ZoomToSelectedFeatures.csproj", "{F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VersionUpdatePerformance", "Geodatabase\VersionUpdatePerformance\VersionUpdatePerformance.csproj", "{9884AC36-95C0-4E72-9926-50A6C09BF1ED}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GeoProcesssingEventsWithUI", "Geoprocessing\GeoProcesssingEventsWithUI\GeoProcesssingEventsWithUI.csproj", "{99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KnowledgeGraphConstructionTools", "Editing\KnowledgeGraphConstructionTools\KnowledgeGraphConstructionTools.csproj", "{614ED716-3D3D-4D03-9FCB-6670475F4713}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KnowledgeGraphRelateTool", "Editing\KnowledgeGraphRelateTool\KnowledgeGraphRelateTool.csproj", "{14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SketchToolWithHalos", "Editing\SketchToolWithHalos\SketchToolWithHalos.csproj", "{B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RunCoreHostApp", "CoreHost\RunCoreHostApp\RunCoreHostApp.csproj", "{28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -4089,6 +4105,102 @@ Global {9DA2965A-E927-4823-AE7A-83526A9F294A}.Release|x64.Build.0 = Release|Any CPU {9DA2965A-E927-4823-AE7A-83526A9F294A}.Release|x86.ActiveCfg = Release|Any CPU {9DA2965A-E927-4823-AE7A-83526A9F294A}.Release|x86.Build.0 = Release|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Debug|x64.ActiveCfg = Debug|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Debug|x64.Build.0 = Debug|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Debug|x86.ActiveCfg = Debug|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Debug|x86.Build.0 = Debug|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Release|Any CPU.Build.0 = Release|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Release|x64.ActiveCfg = Release|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Release|x64.Build.0 = Release|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Release|x86.ActiveCfg = Release|Any CPU + {75944899-77F7-4CCA-B983-F32AFB87C23A}.Release|x86.Build.0 = Release|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Debug|x64.ActiveCfg = Debug|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Debug|x64.Build.0 = Debug|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Debug|x86.ActiveCfg = Debug|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Debug|x86.Build.0 = Debug|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Release|Any CPU.Build.0 = Release|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Release|x64.ActiveCfg = Release|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Release|x64.Build.0 = Release|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Release|x86.ActiveCfg = Release|Any CPU + {F6A88EB7-A201-4138-A2F5-8EFD4AC5713A}.Release|x86.Build.0 = Release|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Debug|x64.ActiveCfg = Debug|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Debug|x64.Build.0 = Debug|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Debug|x86.ActiveCfg = Debug|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Debug|x86.Build.0 = Debug|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Release|Any CPU.Build.0 = Release|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Release|x64.ActiveCfg = Release|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Release|x64.Build.0 = Release|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Release|x86.ActiveCfg = Release|Any CPU + {9884AC36-95C0-4E72-9926-50A6C09BF1ED}.Release|x86.Build.0 = Release|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Debug|x64.ActiveCfg = Debug|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Debug|x64.Build.0 = Debug|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Debug|x86.ActiveCfg = Debug|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Debug|x86.Build.0 = Debug|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Release|Any CPU.Build.0 = Release|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Release|x64.ActiveCfg = Release|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Release|x64.Build.0 = Release|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Release|x86.ActiveCfg = Release|Any CPU + {99C378F6-AE33-4BAD-87FA-FF5A36B3A8A4}.Release|x86.Build.0 = Release|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Debug|Any CPU.Build.0 = Debug|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Debug|x64.ActiveCfg = Debug|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Debug|x64.Build.0 = Debug|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Debug|x86.ActiveCfg = Debug|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Debug|x86.Build.0 = Debug|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Release|Any CPU.ActiveCfg = Release|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Release|Any CPU.Build.0 = Release|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Release|x64.ActiveCfg = Release|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Release|x64.Build.0 = Release|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Release|x86.ActiveCfg = Release|Any CPU + {614ED716-3D3D-4D03-9FCB-6670475F4713}.Release|x86.Build.0 = Release|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Debug|x64.ActiveCfg = Debug|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Debug|x64.Build.0 = Debug|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Debug|x86.ActiveCfg = Debug|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Debug|x86.Build.0 = Debug|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Release|Any CPU.Build.0 = Release|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Release|x64.ActiveCfg = Release|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Release|x64.Build.0 = Release|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Release|x86.ActiveCfg = Release|Any CPU + {14DAD6E7-9B2E-4CF0-B07C-370FEFE9F594}.Release|x86.Build.0 = Release|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Debug|x64.ActiveCfg = Debug|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Debug|x64.Build.0 = Debug|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Debug|x86.ActiveCfg = Debug|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Debug|x86.Build.0 = Debug|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Release|Any CPU.Build.0 = Release|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Release|x64.ActiveCfg = Release|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Release|x64.Build.0 = Release|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Release|x86.ActiveCfg = Release|Any CPU + {B3A317EF-C483-4AF0-A77F-E4C76D5EF48C}.Release|x86.Build.0 = Release|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Debug|x64.ActiveCfg = Debug|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Debug|x64.Build.0 = Debug|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Debug|x86.ActiveCfg = Debug|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Debug|x86.Build.0 = Debug|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Release|Any CPU.Build.0 = Release|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Release|x64.ActiveCfg = Release|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Release|x64.Build.0 = Release|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Release|x86.ActiveCfg = Release|Any CPU + {28A4813E-0542-4CC0-9D8F-B2EE38C47E7C}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/SceneLayers/ReadMe.md b/SceneLayers/ReadMe.md index 56953344..59102a6e 100644 --- a/SceneLayers/ReadMe.md +++ b/SceneLayers/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: SceneLayers -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'SceneLayers' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'SceneLayers' topic. ## Features diff --git a/SceneLayers/SceneCalcTools/ReadMe.md b/SceneLayers/SceneCalcTools/ReadMe.md index d84b4bb6..00193e75 100644 --- a/SceneLayers/SceneCalcTools/ReadMe.md +++ b/SceneLayers/SceneCalcTools/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: SceneLayers Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/SceneLayers/SceneCalcTools/SceneCalcTools (C#).md b/SceneLayers/SceneCalcTools/SceneCalcTools (C#).md index d84b4bb6..00193e75 100644 --- a/SceneLayers/SceneCalcTools/SceneCalcTools (C#).md +++ b/SceneLayers/SceneCalcTools/SceneCalcTools (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: SceneLayers Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/LivingAtlasOfTheWorld/LivingAtlasOfTheWorld (C#).md b/Sharing/LivingAtlasOfTheWorld/LivingAtlasOfTheWorld (C#).md index 40312afb..9bb3d54a 100644 --- a/Sharing/LivingAtlasOfTheWorld/LivingAtlasOfTheWorld (C#).md +++ b/Sharing/LivingAtlasOfTheWorld/LivingAtlasOfTheWorld (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing, Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/LivingAtlasOfTheWorld/ReadMe.md b/Sharing/LivingAtlasOfTheWorld/ReadMe.md index 40312afb..9bb3d54a 100644 --- a/Sharing/LivingAtlasOfTheWorld/ReadMe.md +++ b/Sharing/LivingAtlasOfTheWorld/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing, Content Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/ReadMe.md b/Sharing/ReadMe.md index 6070037a..53830296 100644 --- a/Sharing/ReadMe.md +++ b/Sharing/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Sharing -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Sharing' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Sharing' topic. ## Features diff --git a/Sharing/ShowLicense/ReadMe.md b/Sharing/ShowLicense/ReadMe.md index b6177692..deec500f 100644 --- a/Sharing/ShowLicense/ReadMe.md +++ b/Sharing/ShowLicense/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/ShowLicense/ShowLicense (C#).md b/Sharing/ShowLicense/ShowLicense (C#).md index b6177692..deec500f 100644 --- a/Sharing/ShowLicense/ShowLicense (C#).md +++ b/Sharing/ShowLicense/ShowLicense (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/UploadItem/ReadMe.md b/Sharing/UploadItem/ReadMe.md index 8e8fb0ef..e3dcb3b7 100644 --- a/Sharing/UploadItem/ReadMe.md +++ b/Sharing/UploadItem/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/UploadItem/UploadItem (C#).md b/Sharing/UploadItem/UploadItem (C#).md index 8e8fb0ef..e3dcb3b7 100644 --- a/Sharing/UploadItem/UploadItem (C#).md +++ b/Sharing/UploadItem/UploadItem (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/UploadVtpkToAgol/ReadMe.md b/Sharing/UploadVtpkToAgol/ReadMe.md index 0a5917b1..5164ab5e 100644 --- a/Sharing/UploadVtpkToAgol/ReadMe.md +++ b/Sharing/UploadVtpkToAgol/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Sharing/UploadVtpkToAgol/UploadVtpkToAgol (C#).md b/Sharing/UploadVtpkToAgol/UploadVtpkToAgol (C#).md index 0a5917b1..5164ab5e 100644 --- a/Sharing/UploadVtpkToAgol/UploadVtpkToAgol (C#).md +++ b/Sharing/UploadVtpkToAgol/UploadVtpkToAgol (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Sharing Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/StreamLayers/ReadMe.md b/StreamLayers/ReadMe.md index 3517cc20..60ea8a06 100644 --- a/StreamLayers/ReadMe.md +++ b/StreamLayers/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: StreamLayers -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'StreamLayers' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'StreamLayers' topic. ## Features diff --git a/TaskAssistant/README.md b/TaskAssistant/README.md index 880ac396..f4010275 100644 --- a/TaskAssistant/README.md +++ b/TaskAssistant/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Task Assistant -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Task Assistant' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Task Assistant' topic. ## Features diff --git a/TaskAssistant/TasksSDK/ReadMe.md b/TaskAssistant/TasksSDK/ReadMe.md index 85d155b8..b6ab95f3 100644 --- a/TaskAssistant/TasksSDK/ReadMe.md +++ b/TaskAssistant/TasksSDK/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/TaskAssistant/TasksSDK/TasksSDK (C#).md b/TaskAssistant/TasksSDK/TasksSDK (C#).md index 85d155b8..b6ab95f3 100644 --- a/TaskAssistant/TasksSDK/TasksSDK (C#).md +++ b/TaskAssistant/TasksSDK/TasksSDK (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/AlternativeEnergizationAddIn/AlternativeEnergizationAddIn (C#).md b/UtilityNetwork/AlternativeEnergizationAddIn/AlternativeEnergizationAddIn (C#).md index f082d2d2..1fe7137f 100644 --- a/UtilityNetwork/AlternativeEnergizationAddIn/AlternativeEnergizationAddIn (C#).md +++ b/UtilityNetwork/AlternativeEnergizationAddIn/AlternativeEnergizationAddIn (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/AlternativeEnergizationAddIn/ReadMe.md b/UtilityNetwork/AlternativeEnergizationAddIn/ReadMe.md index f082d2d2..1fe7137f 100644 --- a/UtilityNetwork/AlternativeEnergizationAddIn/ReadMe.md +++ b/UtilityNetwork/AlternativeEnergizationAddIn/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/CategoriesUsage/CategoriesUsage (C#).md b/UtilityNetwork/CategoriesUsage/CategoriesUsage (C#).md index 09f2c7f3..9155ad7b 100644 --- a/UtilityNetwork/CategoriesUsage/CategoriesUsage (C#).md +++ b/UtilityNetwork/CategoriesUsage/CategoriesUsage (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/CategoriesUsage/README.md b/UtilityNetwork/CategoriesUsage/README.md index 09f2c7f3..9155ad7b 100644 --- a/UtilityNetwork/CategoriesUsage/README.md +++ b/UtilityNetwork/CategoriesUsage/README.md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ConfigurationPathsAddIn/ConfigurationPathsAddIn (C#).md b/UtilityNetwork/ConfigurationPathsAddIn/ConfigurationPathsAddIn (C#).md index 41932207..8df0caad 100644 --- a/UtilityNetwork/ConfigurationPathsAddIn/ConfigurationPathsAddIn (C#).md +++ b/UtilityNetwork/ConfigurationPathsAddIn/ConfigurationPathsAddIn (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ConfigurationPathsAddIn/ReadMe.md b/UtilityNetwork/ConfigurationPathsAddIn/ReadMe.md index 41932207..8df0caad 100644 --- a/UtilityNetwork/ConfigurationPathsAddIn/ReadMe.md +++ b/UtilityNetwork/ConfigurationPathsAddIn/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ControllerPath/ControllerPath (C#).md b/UtilityNetwork/ControllerPath/ControllerPath (C#).md index f1066ba9..0a376e0c 100644 --- a/UtilityNetwork/ControllerPath/ControllerPath (C#).md +++ b/UtilityNetwork/ControllerPath/ControllerPath (C#).md @@ -25,8 +25,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ControllerPath/ReadMe.md b/UtilityNetwork/ControllerPath/ReadMe.md index f1066ba9..0a376e0c 100644 --- a/UtilityNetwork/ControllerPath/ReadMe.md +++ b/UtilityNetwork/ControllerPath/ReadMe.md @@ -25,8 +25,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/CreateTransformerBank/CreateTransformerBank (C#).md b/UtilityNetwork/CreateTransformerBank/CreateTransformerBank (C#).md index 65717682..6b5f286d 100644 --- a/UtilityNetwork/CreateTransformerBank/CreateTransformerBank (C#).md +++ b/UtilityNetwork/CreateTransformerBank/CreateTransformerBank (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/CreateTransformerBank/ReadMe.md b/UtilityNetwork/CreateTransformerBank/ReadMe.md index 65717682..6b5f286d 100644 --- a/UtilityNetwork/CreateTransformerBank/ReadMe.md +++ b/UtilityNetwork/CreateTransformerBank/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ExportSubnetwork/ExportSubnetwork (C#).md b/UtilityNetwork/ExportSubnetwork/ExportSubnetwork (C#).md index 24fe79b0..389df53f 100644 --- a/UtilityNetwork/ExportSubnetwork/ExportSubnetwork (C#).md +++ b/UtilityNetwork/ExportSubnetwork/ExportSubnetwork (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ExportSubnetwork/ReadMe.md b/UtilityNetwork/ExportSubnetwork/ReadMe.md index 24fe79b0..389df53f 100644 --- a/UtilityNetwork/ExportSubnetwork/ReadMe.md +++ b/UtilityNetwork/ExportSubnetwork/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Framework Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/LoadReportSample/LoadReportSample (C#).md b/UtilityNetwork/LoadReportSample/LoadReportSample (C#).md index b7d47e06..7aaae436 100644 --- a/UtilityNetwork/LoadReportSample/LoadReportSample (C#).md +++ b/UtilityNetwork/LoadReportSample/LoadReportSample (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/LoadReportSample/README.md b/UtilityNetwork/LoadReportSample/README.md index b7d47e06..7aaae436 100644 --- a/UtilityNetwork/LoadReportSample/README.md +++ b/UtilityNetwork/LoadReportSample/README.md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/LocateNonspatialObject/Config.daml b/UtilityNetwork/LocateNonspatialObject/Config.daml new file mode 100644 index 00000000..03c0b479 --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/Config.daml @@ -0,0 +1,37 @@ + + + LocateNonspatialObject + LocateNonspatialObject description + Images\AddinDesktop32.png + aas11333 + ESRI + 10/16/2024 10:19:02 AM + Framework + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UtilityNetwork/LocateNonspatialObject/DarkImages/AddInDesktop16.png b/UtilityNetwork/LocateNonspatialObject/DarkImages/AddInDesktop16.png new file mode 100644 index 00000000..0118942a Binary files /dev/null and b/UtilityNetwork/LocateNonspatialObject/DarkImages/AddInDesktop16.png differ diff --git a/UtilityNetwork/LocateNonspatialObject/DarkImages/AddInDesktop32.png b/UtilityNetwork/LocateNonspatialObject/DarkImages/AddInDesktop32.png new file mode 100644 index 00000000..9713e3b1 Binary files /dev/null and b/UtilityNetwork/LocateNonspatialObject/DarkImages/AddInDesktop32.png differ diff --git a/UtilityNetwork/LocateNonspatialObject/Images/AddInDesktop16.png b/UtilityNetwork/LocateNonspatialObject/Images/AddInDesktop16.png new file mode 100644 index 00000000..5910bbf3 Binary files /dev/null and b/UtilityNetwork/LocateNonspatialObject/Images/AddInDesktop16.png differ diff --git a/UtilityNetwork/LocateNonspatialObject/Images/AddInDesktop32.png b/UtilityNetwork/LocateNonspatialObject/Images/AddInDesktop32.png new file mode 100644 index 00000000..1d19084a Binary files /dev/null and b/UtilityNetwork/LocateNonspatialObject/Images/AddInDesktop32.png differ diff --git a/UtilityNetwork/LocateNonspatialObject/Locate.cs b/UtilityNetwork/LocateNonspatialObject/Locate.cs new file mode 100644 index 00000000..cdd88046 --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/Locate.cs @@ -0,0 +1,127 @@ +using ArcGIS.Core.Data; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +using ArcGIS.Core.Data.UtilityNetwork; +using Element = ArcGIS.Core.Data.UtilityNetwork.Element; + +namespace LocateNonspatialObject +{ + internal class Locate : Button + { + protected override void OnClick() + { + Element unElement = null; + + QueuedTask.Run(() => + { + // Object element for which the spatial containers or ancestors will be identified from an adjacency graph + string unObjectDatasetName = "CommunicationsJunctionObject"; + Guid unObjectGlobalId = new Guid("30c14e2e-19c6-4091-ac10-fb3e024b358a"); + + // Get the UN layer from the Map TOC + UtilityNetworkLayer layer = MapView.Active.Map.GetLayersAsFlattenedList().OfType().First(); + + // Find the utility network's object element + QueryFilter queryFilter = new QueryFilter { WhereClause = $"GLOBALID = '{{{unObjectGlobalId}}}'" }; + using (UtilityNetwork utilityNetwork = layer.GetUtilityNetwork()) + using (UtilityNetworkDefinition utilityNetworkDefinition = utilityNetwork.GetDefinition()) + using (NetworkSource junctionObjectNetworkSource = utilityNetworkDefinition.GetNetworkSource(unObjectDatasetName)) + using (Table junctionObjectTable = utilityNetwork.GetTable(junctionObjectNetworkSource)) + using (RowCursor rowCursor = junctionObjectTable.Search(queryFilter, false)) + { + if (rowCursor.MoveNext()) + { + using (Row row = rowCursor.Current) + { + unElement = utilityNetwork.CreateElement(row); + } + } + + // Ascending traversal to find associated elements + TraverseAssociationsDescription traverseAssociationsDescription = new TraverseAssociationsDescription(TraversalDirection.Ascending); + TraverseAssociationsResult traverseAssociationsResult = utilityNetwork.TraverseAssociations(new List(){unElement}, traverseAssociationsDescription); + IReadOnlyList associations = traverseAssociationsResult.Associations; + + // Adjacency dataset to hold association results + Dictionary> networkElements = new Dictionary>(); + + // Build adjacency dataset + foreach (Association association in associations) + { + if (networkElements.ContainsKey(association.FromElement)) + { + networkElements[association.FromElement].Add(association.ToElement); + } + else + { + networkElements.Add(association.FromElement, new HashSet() { association.ToElement }); + } + } + + // Traverse adjacency dataset to find ancestors or spatial containers + List allSpatialAncestors = GetSpatialAncestors(networkElements, unElement); + + // Get the first spatial container + Element firstSpatialAncestor = allSpatialAncestors.First(); + MessageBox.Show($"The first spatial container of the CommunicationsJunctionObject (Global ID: 30c14e2e-19c6-4091-ac10-fb3e024b358a) " + + $"is a {firstSpatialAncestor.AssetType.Name} with Global ID: {firstSpatialAncestor.GlobalID}"); + + foreach (Element spatialAncestor in allSpatialAncestors) + { + // If you want to do something with the other spatial containers, put that code here + } + } + }); + } + + /// + /// Gets a unique set of spatial ancestors or spatial containers of an object dataset type + /// + /// Adjacency object of elements to traverse through to find the ancestor + /// Child element from where an ancestor or spatial container search starts + /// A sorted unique set of spatial containers in the adjacency list + private static List GetSpatialAncestors(Dictionary> networkElements, Element element) + { + List ancestors = new List(); + FindAncestorsHelper(networkElements, element, ancestors); + return ancestors; + } + + /// + /// Helper method to find the spatial ancestors or spatial containers recursively + /// + /// Adjacency object of elements to traverse through to find the ancestor + /// Child element from where an ancestor or spatial container search starts + /// A sorted unique set of spatial containers + private static void FindAncestorsHelper(Dictionary> networkElements, Element element, List ancestors) + { + foreach (KeyValuePair> kvpElements in networkElements) + { + if (kvpElements.Value.Any(e => e.GlobalID.Equals(element.GlobalID))) + { + Element keyElement = kvpElements.Key; + + switch (keyElement.NetworkSource.UsageType) + { + case SourceUsageType.EdgeObject or SourceUsageType.JunctionObject: + break; + default: + // Add the current parent to the spatial ancestors list + if (ancestors.Contains(keyElement)) continue; + + ancestors.Add(kvpElements.Key); + break; + } + + // Recursively find spatial ancestors of the current parent + FindAncestorsHelper(networkElements, kvpElements.Key, ancestors); + } + } + } + } +} diff --git a/UtilityNetwork/LocateNonspatialObject/LocateNonSpatialObject.sln b/UtilityNetwork/LocateNonspatialObject/LocateNonSpatialObject.sln new file mode 100644 index 00000000..1ce5362e --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/LocateNonSpatialObject.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34408.163 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocateNonspatialObject", "LocateNonspatialObject.csproj", "{79BB7E1E-5E60-4B23-B191-1D01CDE9266D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {79BB7E1E-5E60-4B23-B191-1D01CDE9266D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79BB7E1E-5E60-4B23-B191-1D01CDE9266D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79BB7E1E-5E60-4B23-B191-1D01CDE9266D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79BB7E1E-5E60-4B23-B191-1D01CDE9266D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9E37C0A1-5159-4E42-AA1A-E9B275DB181A} + EndGlobalSection +EndGlobal diff --git a/UtilityNetwork/LocateNonspatialObject/LocateNonspatialObject.md b/UtilityNetwork/LocateNonspatialObject/LocateNonspatialObject.md new file mode 100644 index 00000000..fc3b530b --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/LocateNonspatialObject.md @@ -0,0 +1,44 @@ +## Locate spatial container of a non spatial object + + +This example demonstrates how to obtain spatial ancestors or containers for a non-spatial object in a Utility Network. + +View it live + + +``` +Language: C# +Subject: Utility Network +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +For sample data, download CommunitySampleData-NetworkDiagrams-mm-dd-yyyy.zip from https://github.com/Esri/arcgis-pro-sdk-community-samples/releases and unzip it into c:\. We will be using the C:\Data\CreateDiagramWithACustomLayout\Communications_UtilityNetwork.geodatabase as the sample data for the addin. + +1. In Visual Studio open this solution and then rebuild the solution. +2. Click Start button to open ArcGIS Pro. +3. Add Utility Network to the map from Communications_UtilityNetwork.geodatabase +4. Then, click the LocateObject button. +![UI](Screenshots/Screenshot1.png) + + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/UtilityNetwork/LocateNonspatialObject/Module1.cs b/UtilityNetwork/LocateNonspatialObject/Module1.cs new file mode 100644 index 00000000..c05c2e07 --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/Module1.cs @@ -0,0 +1,59 @@ +using ArcGIS.Core.CIM; +using ArcGIS.Core.Data; +using ArcGIS.Core.Geometry; +using ArcGIS.Desktop.Catalog; +using ArcGIS.Desktop.Core; +using ArcGIS.Desktop.Editing; +using ArcGIS.Desktop.Extensions; +using ArcGIS.Desktop.Framework; +using ArcGIS.Desktop.Framework.Contracts; +using ArcGIS.Desktop.Framework.Dialogs; +using ArcGIS.Desktop.Framework.Threading.Tasks; +using ArcGIS.Desktop.KnowledgeGraph; +using ArcGIS.Desktop.Layouts; +using ArcGIS.Desktop.Mapping; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace LocateNonspatialObject +{ + /// + /// This example demonstrates how to obtain spatial ancestors or containers for a non-spatial object in a Utility Network. + /// + /// + /// For sample data, download CommunitySampleData-NetworkDiagrams-mm-dd-yyyy.zip from https://github.com/Esri/arcgis-pro-sdk-community-samples/releases and unzip it into c:\. We will be using the C:\Data\CreateDiagramWithACustomLayout\Communications_UtilityNetwork.geodatabase as the sample data for the addin. + /// 1. In Visual Studio open this solution and then rebuild the solution. + /// 2. Click Start button to open ArcGIS Pro. + /// 3. Add Utility Network to the map from Communications_UtilityNetwork.geodatabase + /// 4. Then, click the LocateObject button. + /// ![UI] (Screenshots/Screenshot1.png) + /// + internal class Module1 : Module + { + private static Module1 _this = null; + + /// + /// Retrieve the singleton instance to this module here + /// + public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("LocateNonspatialObject_Module"); + + #region Overrides + /// + /// Called by Framework when ArcGIS Pro is closing + /// + /// False to prevent Pro from closing, otherwise True + protected override bool CanUnload() + { + //TODO - add your business logic + //return false to ~cancel~ Application close + return true; + } + + #endregion Overrides + + } +} diff --git a/UtilityNetwork/LocateNonspatialObject/Properties/launchSettings.json b/UtilityNetwork/LocateNonspatialObject/Properties/launchSettings.json new file mode 100644 index 00000000..6e957cf8 --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "LocateNonspatialObject": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\ArcGIS\\Pro\\bin\\ArcGISPro.exe" + } + } +} \ No newline at end of file diff --git a/UtilityNetwork/LocateNonspatialObject/ReadMe.md b/UtilityNetwork/LocateNonspatialObject/ReadMe.md new file mode 100644 index 00000000..fc3b530b --- /dev/null +++ b/UtilityNetwork/LocateNonspatialObject/ReadMe.md @@ -0,0 +1,44 @@ +## Locate spatial container of a non spatial object + + +This example demonstrates how to obtain spatial ancestors or containers for a non-spatial object in a Utility Network. + +View it live + + +``` +Language: C# +Subject: Utility Network +Contributor: ArcGIS Pro SDK Team +Organization: Esri, https://www.esri.com +Date: 11/04/2024 +ArcGIS Pro: 3.4 +Visual Studio: 2022 +.NET Target Framework: net8.0-windows +``` + +## Resources + +[Community Sample Resources](https://github.com/Esri/arcgis-pro-sdk-community-samples#resources) + +### Samples Data + +* Sample data for ArcGIS Pro SDK Community Samples can be downloaded from the [Releases](https://github.com/Esri/arcgis-pro-sdk-community-samples/releases) page. + +## How to use the sample + +For sample data, download CommunitySampleData-NetworkDiagrams-mm-dd-yyyy.zip from https://github.com/Esri/arcgis-pro-sdk-community-samples/releases and unzip it into c:\. We will be using the C:\Data\CreateDiagramWithACustomLayout\Communications_UtilityNetwork.geodatabase as the sample data for the addin. + +1. In Visual Studio open this solution and then rebuild the solution. +2. Click Start button to open ArcGIS Pro. +3. Add Utility Network to the map from Communications_UtilityNetwork.geodatabase +4. Then, click the LocateObject button. +![UI](Screenshots/Screenshot1.png) + + + + + +      ArcGIS Pro SDK for Microsoft .NET Framework +             +[Home](https://github.com/Esri/arcgis-pro-sdk/wiki) | API Reference | [Requirements](https://github.com/Esri/arcgis-pro-sdk/wiki#requirements) | [Download](https://github.com/Esri/arcgis-pro-sdk/wiki#installing-arcgis-pro-sdk-for-net) | Samples diff --git a/UtilityNetwork/LocateNonspatialObject/Screenshots/Screenshot1.png b/UtilityNetwork/LocateNonspatialObject/Screenshots/Screenshot1.png new file mode 100644 index 00000000..eed238fb Binary files /dev/null and b/UtilityNetwork/LocateNonspatialObject/Screenshots/Screenshot1.png differ diff --git a/UtilityNetwork/README.md b/UtilityNetwork/README.md index 4d647e61..1c71d38a 100644 --- a/UtilityNetwork/README.md +++ b/UtilityNetwork/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Utility Network -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Utility Network' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Utility Network' topic. ## Features diff --git a/UtilityNetwork/SubstitutionAddIn/ReadMe.md b/UtilityNetwork/SubstitutionAddIn/ReadMe.md index 644dcc74..4e650978 100644 --- a/UtilityNetwork/SubstitutionAddIn/ReadMe.md +++ b/UtilityNetwork/SubstitutionAddIn/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/SubstitutionAddIn/SubstitutionAddIn (C#).md b/UtilityNetwork/SubstitutionAddIn/SubstitutionAddIn (C#).md index 644dcc74..4e650978 100644 --- a/UtilityNetwork/SubstitutionAddIn/SubstitutionAddIn (C#).md +++ b/UtilityNetwork/SubstitutionAddIn/SubstitutionAddIn (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ToFromWarehouse/ReadMe.md b/UtilityNetwork/ToFromWarehouse/ReadMe.md index d64056c2..9967f43a 100644 --- a/UtilityNetwork/ToFromWarehouse/ReadMe.md +++ b/UtilityNetwork/ToFromWarehouse/ReadMe.md @@ -20,8 +20,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ToFromWarehouse/ToFromWarehouse (C#).md b/UtilityNetwork/ToFromWarehouse/ToFromWarehouse (C#).md index d64056c2..9967f43a 100644 --- a/UtilityNetwork/ToFromWarehouse/ToFromWarehouse (C#).md +++ b/UtilityNetwork/ToFromWarehouse/ToFromWarehouse (C#).md @@ -20,8 +20,8 @@ Language: C# Subject: Utility Network Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/TraceNetworkSample/ReadMe.md b/UtilityNetwork/TraceNetworkSample/ReadMe.md index dfc4cd6c..8c3b4fb3 100644 --- a/UtilityNetwork/TraceNetworkSample/ReadMe.md +++ b/UtilityNetwork/TraceNetworkSample/ReadMe.md @@ -15,8 +15,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/UtilityNetwork/TraceNetworkSample/TraceNetworkSample (C#).md b/UtilityNetwork/TraceNetworkSample/TraceNetworkSample (C#).md index dfc4cd6c..8c3b4fb3 100644 --- a/UtilityNetwork/TraceNetworkSample/TraceNetworkSample (C#).md +++ b/UtilityNetwork/TraceNetworkSample/TraceNetworkSample (C#).md @@ -15,8 +15,8 @@ Language: C# Subject: Console Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: 4.6.1 ``` diff --git a/UtilityNetwork/ValidateChanges/ReadMe.md b/UtilityNetwork/ValidateChanges/ReadMe.md index 5ec3e5b8..fda11e81 100644 --- a/UtilityNetwork/ValidateChanges/ReadMe.md +++ b/UtilityNetwork/ValidateChanges/ReadMe.md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/UtilityNetwork/ValidateChanges/ValidateChanges (C#).md b/UtilityNetwork/ValidateChanges/ValidateChanges (C#).md index 5ec3e5b8..fda11e81 100644 --- a/UtilityNetwork/ValidateChanges/ValidateChanges (C#).md +++ b/UtilityNetwork/ValidateChanges/ValidateChanges (C#).md @@ -17,8 +17,8 @@ Language: C# Subject: UtilityNetwork Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/VoxelLayers/ReadMe.md b/VoxelLayers/ReadMe.md index 0a8281c1..17ff883a 100644 --- a/VoxelLayers/ReadMe.md +++ b/VoxelLayers/ReadMe.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: VoxelLayers -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'VoxelLayers' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'VoxelLayers' topic. ## Features diff --git a/VoxelLayers/VoxelSample/ReadMe.md b/VoxelLayers/VoxelSample/ReadMe.md index 969c29bb..d7974082 100644 --- a/VoxelLayers/VoxelSample/ReadMe.md +++ b/VoxelLayers/VoxelSample/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: VoxelLayers Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/VoxelLayers/VoxelSample/VoxelSample (C#).md b/VoxelLayers/VoxelSample/VoxelSample (C#).md index 969c29bb..d7974082 100644 --- a/VoxelLayers/VoxelSample/VoxelSample (C#).md +++ b/VoxelLayers/VoxelSample/VoxelSample (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: VoxelLayers Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Workflow/JobManagement/JobManagement (C#).md b/Workflow/JobManagement/JobManagement (C#).md index 1ee208f0..ef2a886b 100644 --- a/Workflow/JobManagement/JobManagement (C#).md +++ b/Workflow/JobManagement/JobManagement (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Workflow Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Workflow/JobManagement/ReadMe.md b/Workflow/JobManagement/ReadMe.md index 1ee208f0..ef2a886b 100644 --- a/Workflow/JobManagement/ReadMe.md +++ b/Workflow/JobManagement/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Workflow Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Workflow/README.md b/Workflow/README.md index e5c8d421..e91176ff 100644 --- a/Workflow/README.md +++ b/Workflow/README.md @@ -1,12 +1,12 @@ # arcgis-pro-sdk-community-samples # Topic: Workflow -## ArcGIS Pro 3.3 SDK for Microsoft .NET Framework +## ArcGIS Pro 3.4 SDK for Microsoft .NET Framework ---------- This page was generated by a tool. Manual changes to this page are lost when the page is regenerated. -This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.3 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Workflow' topic. +This repository contains ArcGIS Pro Add-In Samples for the ArcGIS Pro 3.4 SDK for Microsoft .NET Framework. The samples are demonstrating the key functions that are falling under the 'Workflow' topic. ## Features diff --git a/Workflow/WorkflowManagerConfigSample/ReadMe.md b/Workflow/WorkflowManagerConfigSample/ReadMe.md index 3c51bafb..4a17db32 100644 --- a/Workflow/WorkflowManagerConfigSample/ReadMe.md +++ b/Workflow/WorkflowManagerConfigSample/ReadMe.md @@ -13,8 +13,8 @@ Language: C# Subject: Workflow Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ``` diff --git a/Workflow/WorkflowManagerConfigSample/WorkflowManagerConfigSample (C#).md b/Workflow/WorkflowManagerConfigSample/WorkflowManagerConfigSample (C#).md index 3c51bafb..4a17db32 100644 --- a/Workflow/WorkflowManagerConfigSample/WorkflowManagerConfigSample (C#).md +++ b/Workflow/WorkflowManagerConfigSample/WorkflowManagerConfigSample (C#).md @@ -13,8 +13,8 @@ Language: C# Subject: Workflow Contributor: ArcGIS Pro SDK Team Organization: Esri, https://www.esri.com -Date: 04/04/2024 -ArcGIS Pro: 3.3 +Date: 11/04/2024 +ArcGIS Pro: 3.4 Visual Studio: 2022 .NET Target Framework: net8.0-windows ```