接续上文。
如果添加图层的方法读懂之后,实现获取所有图层名称就变得轻而易举了。仅需遍历图层表LayerRecord,取出记录存储即可。具体方法如下:
#region "取得当前所有图层名称"
/// <summary>
/// 取得当前所有图层名称
/// </summary>
/// <returns>图层名称集合</returns>
public ArrayList GetLayerName()
{
ArrayList layers = new ArrayList();
using (Database db = HostApplicationServices.WorkingDatabase)
{
using (Transaction trans = db.TransactionManager.StartTransaction())
{
using (LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead))
{
foreach (ObjectId id in lt)
{
LayerTableRecord ltr = (LayerTableRecord)trans.GetObject(id, OpenMode.ForRead);
layers.Add(ltr.Name);
}
}
trans.Commit();
}
}
return layers;
}
#endregion
对于以上代码,不再赘述。获得当前图档中所有图层名称,实现完毕.
如有问题:请加qq1419226548或QQmail给我。 若转载,请注明出处。谢谢。
|