string fileter = "CAD file(*.DWG)|*.DWG|CAD DGN file(*.DGN)|*.DGN|CAD DXF file(*.DXF)|*.DXF";
string FilePath;
string FileName = OpenFile("转换CAD数据", fileter, true);
if ("" == FileName)
{
return;
}
string strFile = FileName.Substring(FileName.LastIndexOf('//') + 1);
FilePath = FileName.Substring(0, FileName.Length - strFile.Length - 1);
IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactoryClass();
IFeatureWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(FilePath, 0) as IFeatureWorkspace ;
IFeatureDataset pFeatureDataset = pWorkspace.OpenFeatureDataset(strFile);
IFeatureClassContainer pFeatureClassContainer = pFeatureDataset as IFeatureClassContainer;
IFeatureClass pFeatureClass;
IFeatureLayer pFeatureLayer;
// 对CAD中的要素集进行遍历
for (int i = 0; i < pFeatureClassContainer.ClassCount; i++)
{
pFeatureClass = pFeatureClassContainer.get_Class(i);
if (pFeatureClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation)
{
//标注类型必须设置单位的标注类型
pFeatureLayer = new CadAnnotationLayerClass();
}
else //点线面层
{
pFeatureLayer = new FeatureLayerClass();
}
pFeatureLayer.Name = pFeatureClass.AliasName;
pFeatureLayer.FeatureClass = pFeatureClass;
MainaxMapControl.AddLayer(pFeatureLayer, 0);
}