FAQ
ArcGIS Pro SDK: 属性値ごとにフィーチャクラスをエクスポート(分割)するツール

ナレッジ番号:6150 | 登録日:2026/06/23 | 更新日:2026/06/30

概要

ArcGIS Pro SDK for .NET で属性値を持つデータについて、同じ属性値を持つフィーチャを 1 つの固まりとして別のフィーチャクラスへ出力する方法をご紹介します。



サンプル コード

// *.cs ファイル 

protected override async void OnClick()
{
     await QueuedTask.Run(async () =>
    {
        // エクスポート先のフォルダ パス
        string outputGdb = @"<エクスポート先のフォルダ パス>";
        // マップに追加されているレイヤーの中で、最上位のレイヤーを取得
        FeatureLayer featureLayer = MapView.Active.Map.Layers.OfType<FeatureLayer>().FirstOrDefault();
        if (featureLayer == null)
            return;
            
        // 属性値が格納されているフィールドを特定
        const string targetField = "<フィールド名>";

        // 属性値の取得
        HashSet<string> uniqueValues = new HashSet<string>();
        using (var table = featureLayer.GetTable())
        {
            using (RowCursor cursor = table.Search(/*qf, false*/))
            {
                while (cursor.MoveNext())
                {
                    using (Row row = cursor.Current)
                    {
                        var value = row[targetField]?.ToString();
                         uniqueValues.Add(value);
                    }
                }
            }
        }
        string inputLayerName = featureLayer.Name;

        // 属性値ごとにエクスポート
        foreach (string value in uniqueValues)
        {
            Debug.WriteLine(value);
            string whereClause =
                $"{targetField} = '{value}'";

            string outputFcName =
                $"{inputLayerName}_{value}";

            var parameters = Geoprocessing.MakeValueArray(
                featureLayer.Name,
                outputGdb,
                outputFcName,
                whereClause
            );

            await Geoprocessing.ExecuteToolAsync(
                "conversion.FeatureClassToFeatureClass",
                parameters);
        }
    });
}