Home - kataya/arcgis-pro-sdk GitHub Wiki

ArcGIS Pro 2.7 SDK for .NET

ArcGIS Pro SDK for .NET を使用して ArcGIS Pro を拡張します。ArcGIS Pro SDK for .NET は、アドインおよび構成によるの拡張性パターンに基づいています。 タスク非同期プログラミング(TAP)、LINQ、WPF バインディング、MVVM などの最新の .NET 機能とパターンを活用して、Pro の新しい API を使用して統合された 2D/3D アドインを作成できます。


In this topic

Requirements

ArcGIS Pro のアドインを開発するマシンの要件は次の通りです。

.NET Framework 4.8:

  • ArcGIS Pro 2.5 のリリースから, 最小の .NET ターゲットは 4.8 になりました。これはお客さまやあなたのアドインにとって、何を意味するのでしょうか?
    • すでにデプロイされている既存のアドインは、2.7 でも前方互換性を変更することなく動作します。
    • 2.7 で作成された新しいアドインは、ターゲット フレームワークの最小値を 4.8 に設定していないと、コンパイルできません(これはPro SDK のデフォルト設定です)。
    • 既存のアドインを 2.7 で再コンパイルする場合(コード変更が行われた場合など)、ターゲット フレームワークの最小値を 4.8 に設定していないと、コンパイルできません。

.NET Framework 4.6.1 で開発したアドインを 4.8 に移行する場合、 How To: Convert a version 2.0 to 2.4 ArcGIS Pro SDK add-in solution to Pro 2.5 and later versions のテクニカル サポート記事を参照してください。

ArcGIS Pro

  • ArcGIS Pro 2.7

サポートするオペレーティング システム

  • Windows 10 (Home, Pro, Enterprise) (64 bit)
  • Windows 8.1 (Pro, and Enterprise) (64 bit)

サポートする .NET framework

  • Microsoft .NET Framework 4.8 Developer Pack

サポートする統合開発環境

  • Visual Studio 2019 (Professional, Enterprise, and Community Editions)
  • Visual Studio 2017 (Professional, Enterprise, and Community Editions)

サードパーティー アセンブリ

Newtonsoft Json

  • ArcGIS Pro 2.7 では、Newtonsoft Json NuGet のバージョン 12.0.1 を使用しています。アドイン で Newtonsoft NuGet が必要な場合は、同じバージョンの Newtonsoft Json を使うことを推奨します。

CefSharp

  • ArcGIS Pro 2.7 では、CefSharp のバージョン 81.3.100 を使用しています。Pro では、CefSharp.dll, CefSharp.Core.dll, CefSharp.Wpf.dll を、"C:\Program Files\ArcGIS\Pro\bin\cef" のインストール先に配置しています。CefSharp ChromiumWebBrowser コントロールを使用するには、ChromiumWebBrowser をご参照ください。

詳細は次の How To: Fix compiler error(s) using CefSharp and the ArcGIS Pro SDK ChromiumWebBrowser Control in an add-in のテクニカル ドキュメントをご参照ください。

注: ArcGIS Pro system requirements

ArcGIS Pro SDK for .NET のインストール

ArcGIS Pro SDK for .NET は、以下のいずれかのオプションを使用してダウンロードし、インストールすることができます:

詳細なインストール方法は、ProGuide: Installation and Upgrade (_ja) をご参照ください。

ArcGIS Pro SDK for .NET components

次の表は、ダウンロードするSDK の各 .vsix ファイルの機能をまとめたものです:

名称 ファイル 機能
ArcGIS Pro SDK for .NET proapp-sdk-templates.vsix ArcGIS Pro アドインを作成するための、プロジェクト とアイテム テンプレート のコレクション
ArcGIS Pro SDK for .NET (Utilities) proapp-sdk-utilities.vsix ArcGIS Pro アドインの作成に役立つユーティリティ のコレクション

ArcGIS Pro SDK for .NET templates

パッケージ: proapp-sdk-templates.vsix

ArcGIS Pro SDK for .NET は次のプロジェクト とアイテム テンプレート を提供しています:

C# VB Name
ArcGIS Pro Module Add-in Project template
ArcGIS Pro Managed Configurations Project template
N/A ArcGIS Pro Plugin Project template
N/A ArcGIS Pro CoreHost Application Project template
ArcGIS Pro Backstage Tab
ArcGIS Pro Button
ArcGIS Pro Button Palette
ArcGIS Pro Combo Box
ArcGIS Pro Construction Tool
ArcGIS Pro Custom Control
N/A ArcGIS Pro Custom Item
N/A ArcGIS Pro Custom Project Item
ArcGIS Pro Dockpane
ArcGIS Pro Dockpane with Burger Button
ArcGIS Pro Drop Handler
ArcGIS Pro Embeddable Control
ArcGIS Pro Gallery
ArcGIS Pro Inline-Gallery
ArcGIS Pro Map Pane Impersonation
ArcGIS Pro Map Tool
ArcGIS Pro Menu
ArcGIS Pro Pane
ArcGIS Pro Property Sheet
ArcGIS Pro ProWindow
ArcGIS Pro Split Button

一般的に、フレームワークのUI 要素の拡張ポイント(button, tool, menu, dockpane など)とアイテム テンプレートの間には 1 対 1 の対応関係があります。 対応する拡張ポイントをアドイン に追加するには、関連するアイテム テンプレート を使用します。

注:さらに詳しい説明がある以下のアイテム テンプレート は、便利かもしれません。

Drop Handler

ArcGIS Pro Framework では、2 つの仮想関数によるドラッグ & ドロップがサポートされています。それは、OnDragOverOnDrop です。これらのメソッドの基本的な実装をアドイン に追加し、custom pane や dockpane でドラッグ & ドロップの機能をサポートを開始するのに、Drop Handler テンプレート を使用して下さい。
Excel Drop Handler sample

Embeddable Control

ポップアップ などの UI をカスタム マップツール に追加するには、Embeddable Control テンプレートを使用して下さい。マップツール をアクティブにすると、もし存在する場合、関連したembeddable control がアクティブなマップ ビュー上に表示されます。マップツール が非アクティブになると、embeddable control は非表示になります。 ProGuide: Using Embeddable Controls
Basic Map Tool sample
Map Tool with OverlayControl Sample

Map Pane Impersonation

マップ TOC コンテンツ コントロール (カスタム コンテンツ コントロールではなく) を "使用" したい場合は、マップ ペインを "偽装" する必要があります。 マップ ペイン の偽装でカスタム ペイン を実装するのに必要なコードを生成するには、このテンプレート を実行します。
ProGuide: Map Pane Impersonation
ImpersonateMapPane Sample

ArcGIS Pro SDK for .NET utilities

パッケージ: proapp-sdk-utilities.vsix

ArcGIS Pro SDK for .NET (Utilities) は、Visual Studio 環境を拡張する次のようなユーティリティ(日本語UI: ArcGIS Pro の参照先を修正、ArcGIS Pro のDAML Idを生成)を提供します。

pro-fix-references  

名称 説明
Pro Fix References utility ArcGIS Pro アドイン の壊れた参照を修正します。壊れた参照は、アドイン を他の同僚と共有したり、ArcGIS Pro アセンブリ参照 がインストールした場所とは異なる場所を指しているアドイン をダウンロードした場合に発生することがあります。
Pro Generate DAML Ids utility ArcGIS Pro Desktop Application Markup Language (DAML) のすべての文字列 ID を、DAML 要素タイプ (Button、Dockpane、Tool、Condition など) によって整理された静的な文字列プロパティに変換します。これにより、DAML 文字列 ID を手動で入力するのではなく、ソース コード ファイル内の Visual Studio の IntelliSense 機能を使用して ID を追加することができます。

Getting started

ArcGIS Pro のリボンに表示されるボタンの作成方法は、ProGuide: Build your first add-in (_ja) をご参照ください。

ProSnippets

ProSnippets はArcGIS Pro アドインにすばやく挿入できるコード スニペットです。利用可能なスニペットの一覧はList of available ProSnippets にあります。

ArcGIS Pro API

ArcGIS Pro API はマネージド .NET アセンブリです。.NET メタデータまたは PIA (Primary Interop Assemblies) を含む中間アセンブリは必要ありません。

API を構成する ArcGIS Pro マネージド アセンブリを、Visual Studio アドイン プロジェクトで直接参照として追加します。

pro-references.png

パブリックAPI に含まれる ArcGIS Pro アセンブリ の完全なリストを以下に示します。各アセンブリの具体的な詳細については、オンラインの API Reference を参照してください。

Core

Core アセンブリは {ArcGIS Pro インストールフォルダ}\bin にあります。

Assembly Description
ArcGIS.Core.dll Provides CIM, Geodatabase, Geometry and Utility Network APIs.
ArcGIS.CoreHost.dll Provides Host.Initialize to initialize ArcGIS.Core.dll for stand-alone use.
ArcGIS.Desktop.Framework.dll Provides the application framework to include add-in contracts, DAML support, and base classes. This assembly must be referenced by every add-in.
ESRI.ArcGIS.ItemIndex.dll Provides functionality to create and work with Custom items.

Extensions

ArcGIS Pro 内の主要なサブシステムは、エクステンションと呼ばれる単位で構成されています。Extension アセンブリは、{ArcGIS Pro インストールフォルダ}\bin\Extensions フォルダ内の個々のサブフォルダにあります。 Extension サブフォルダは、例えば、Mapping, Editing, Layout などのように、それらが表す機能単位に合わせて論理的に命名されています。

Assembly Description
ArcGIS.Desktop.Catalog.dll Provides access to project content items (map items, layout items, style items, folder items, and so on).
ArcGIS.Desktop.Core.dll Provides functionality to create and manage projects, access to events associated with the current project, and the ability to execute geoprocessing tools.
ArcGIS.Desktop.DataReviewer.dll Provides functionality to establish and manage Reviewer results, sessions, and batch jobs in a project.
ArcGIS.Desktop.Editing.dll Provides access to the editing environment and core editing functionality required for custom edit tool implementations.
ArcGIS.Desktop.Extensions.dll Provides extension methods for other ArcGIS Pro classes. Provides a base class for custom map tools.
ArcGIS.Desktop.Geoprocessing.dll Provides access to geoprocessing history items stored in the project. (Note: Adds a reference to ArcGIS.Desktop.Core.dll to execute geoprocessing tools.)
ArcGIS.Desktop.Layouts.dll Provides functionality for manipulating elements on a layout and exporting to a variety of image formats.
ArcGIS.Desktop.Mapping.dll Provides types to create maps and layers, label features, perform query operations, and visualize them in 2D or 3D. Provides a raster API to create raster layers and customize raster rendering, and an API to manage styles, style items, and symbols.
ArcGIS.Desktop.TaskAssistant.dll Provides the Tasks framework, allowing developers to access, open, close, or export task items.
ArcGIS.Desktop.Workflow.dll Provides functionality to create, configure, and execute Workflow Manager jobs and queries. Provides functionality to retrieve configuration information from the Workflow Manager database.

Extensions with no public API

{ArcGIS Pro インストールフォルダ}\bin\Extensions サブフォルダには、パブリックAPI を持たないExtension アセンブリがあります。これらは現在 Esri 内部でのみ使用されています。

  • ArcGIS.Desktop.Analyst3D.dll
  • ArcGIS.Desktop.Aviation.dll
  • ArcGIS.Desktop.BusinessAnalyst.dll
  • ArcGIS.Desktop.Charts.dll
  • ArcGIS.Desktop.DataSourcesRaster.dll
  • ArcGIS.Desktop.Defense.dll
  • ArcGIS.Desktop.DefenseMapping.dll
  • ArcGIS.Desktop.Editing.PushPull.dll
  • ArcGIS.Desktop.FullMotionVideo.dll
  • ArcGIS.Desktop.GAWizard.dll
  • ArcGIS.Desktop.GeoProcessing.SAModels.dll
  • ArcGIS.Desktop.Geostatistics.dll
  • ArcGIS.Desktop.Indoors.dll
  • ArcGIS.Desktop.Intelligence.dll
  • ArcGIS.Desktop.Intelligence.Configuration.dll
  • ArcGIS.Desktop.KnowledgeGraph.dll
  • ArcGIS.Desktop.LocationReferencing.dll
  • ArcGIS.Desktop.Maritime.dll
  • ArcGIS.Desktop.Metadata.dll
  • ArcGIS.Desktop.NetworkAnalysis.Facility.dll
  • ArcGIS.Desktop.NetworkAnalysis.NetworkDiagrams.dll
  • ArcGIS.Desktop.NetworkAnalysis.Transportation.dll
  • ArcGIS.Desktop.Search.dll
  • ArcGIS.Desktop.Sharing.dll
  • ArcGIS.Desktop.TerritoryDesign.dll
  • ArcGIS.Desktop.Workflow.Client.dll

注: パブリックAPI アセンブリに含まれる静的文字列リソース プロパティおよびイメージ リソースは、Esri 内部での使用のみを目的としています。サードパーティのアドインでの使用は意図していません。

ArcGIS Pro Extensions Nuget

ArcGIS Pro Extensions NuGet には、アドイン や 構成 のコンパイルに必要なすべての Pro API アセンブリが含まれており、従来のファイル ベースの参照に代わり、アドイン や 構成 で ArcGIS Pro アセンブリを参照する方法を提供します。

ArcGIS Pro Extensions NuGet は、次の環境のみで動作します:

  • Visual Studio 2017 update 8 以上 (Professional, Enterprise, Community Editions)
  • Visual StudioでのNuGet パッケージ管理形式は PackageReference でなければなりません。
  • Pro 2.5 の時点では、.Net のターゲット フレームワークは 4.8 に設定する必要があります。これは、2.5 より前のアドイン プロジェクトにNuget を追加する場合に重要です。

ProGuide: ArcGIS Pro Extensions NuGet

Release notes

ArcGIS Pro 2.7 SDK for .NET

これらのリリース ノートには、ArcGIS Pro 2.7 SDK for .NET リリースの詳細が記載されています。ここでは、利用可能な機能、既知の問題および制限事項について説明します。

What's new

ArcGIS Pro 2.7 SDK for .NET リリースでは、以下の機能が利用できます。:

1. API 拡張

Editing

  • New sketch events are available: sketch modified, vertex events, and undo/redo.

Geodatabase

  • New Topology API and a DDL pre-release API are available.

Layout

  • Various enhancements including view-page transformations and bulk element creation.

GraphicsLayer

  • Bulk element creation

Map Authoring:

  • New Device location API for GPS/GNSS data collection. Symbol Picker and Searcher user controls.

Map Exploration:

  • New Reports API enhancements for report editing and management.

Parcel Fabric:

  • Now in full release at 2.7, developers can build record-driven workflows.

3D Layers :

  • New Voxel layer API to create and manage voxel layer slices, sections, isosurfaces, voxel layer lighting and rendering.

Geometry:

  • Geometry engine enhancements.

.NET Framework 4.8:

  • ArcGIS Pro 2.5 のリリースから, 最小の .NET ターゲットは 4.8 になりました。これはお客様やあなたのアドインにとって、何を意味するのでしょうか?
    • すでにデプロイされている既存のアドイン は、2.7 でも前方互換性を変更することなく動作します。
    • 2.7 で作成された新しいアドインは、ターゲット フレームワークの最小値を 4.8 に設定していないとコンパイルできません(これは Pro SDK のデフォルト設定です)。
    • 既存のアドインを 2.7 で再コンパイルする場合(コード変更が行われた場合など)、ターゲット フレームワークの最小値を 4.8 に設定していないと、コンパイルできません。

詳細は次の How To: Convert a version 2.0 to 2.4 ArcGIS Pro SDK add-in solution to Pro 2.5 and later versions をご参照ください。

ArcGIS Pro API の変更点の詳細については What's new for developers at 2.7 ArcGIS Pro API Reference Guide トピックスをご参照ください。

3. SDK リソース

新しいSDK の機能を利用する助けになる多くの ProConcepts, ProGuide, ProSnippets, と samples があります:

SDK リソース のアップデート には、以下のものが含まれますが、これらに限定されるものではありません:

Previous versions

Resources

Pro SDK Icons は、Pro リボン上のコントロールのイメージとして使用できます。以下のコードスニペットは、アドインのconfig.damlで使用するパックのURIを提供しています。

<button...largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/<ImageNameHere>"/>
⚠️ **GitHub.com Fallback** ⚠️