要素类导出 CAD 方法
方法一:批量导出
使用 ExportCAD 工具,通过拼接数据集路径一次性处理多个要素类。
private void ExportToCAD()
{
Geoprocessor GP = new Geoprocessor();
GP.OverwriteOutput = true; // 设置重写,即将原有数据覆盖
string dataset = string.Empty;
foreach (IFeatureClass featClass in this.FeatureClassList) // FeatureClassList 需要导出的要素类集合
{
// this.inputFilePath 数据源路径,例:"C:\\Users\\zxj\\Desktop\\datacenter\\龙华区.mdb\\LXDW_..."
dataset += this.inputFilePath + "\\\\" + featClass.AliasName + ";";
}
dataset = dataset.Substring(0, dataset.Length - 1);
// 构造函数:ExportCAD(string dataset, string Output_Type, string OutputPath)
ESRI.ArcGIS.ConversionTools.ExportCAD tool = new ESRI.ArcGIS.ConversionTools.ExportCAD(dataset, "DWG_R2010", this.tbOutPath.Text.Trim());
// GP 执行下,便可导出数据
GP.Execute((IGPProcess)tool, null);
}
方法二:单图层导出
此方式适合 Shapefile 文件或只导出一个要素类。注意循环执行时每次会覆盖前次结果。
private void ExportToCAD()
{
Geoprocessor GP = new Geoprocessor();
GP.OverwriteOutput = true; // 设置重写,即将原有数据覆盖
ESRI.ArcGIS.ConversionTools.ExportCAD tool = new ESRI.ArcGIS.ConversionTools.ExportCAD();
object obj = Type.Missing;
(IFeatureClass featClass .FeatureClassList)
{
tool.in_features = .inputFilePath + + featClass.AliasName;
tool.Output_File = .tbOutPath.Text.Trim();
tool.Output_Type = ;
(GP.Exists(tool.in_features, obj))
{
GP.Execute((IGPProcess)tool, );
}
}
}


