//[CommandMethod("GetLayerPro")] public static void GetLayerPro() { try { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; Database db = new Database(false, true); if (File.Exists(FileName)) { db.ReadDwgFile(FileName, FileShare.Read, true, null); using (Transaction trans = db.TransactionManager.StartTransaction()) { LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead); foreach (ObjectId layerId in lt) { LayerTableRecord ltr = (LayerTableRecord)trans.GetObject(layerId, OpenMode.ForRead); if (ltr != null) { Autodesk.AutoCAD.Colors.Color layerColor = ltr.Color; ed.WriteMessage("\n图层名称为:" + ltr.Name); ed.WriteMessage("\n图层颜色为:" + layerColor.ToString()); } } trans.Commit(); } } } catch (Exception ex) { throw new Exception(ex.Message); } }
public static void GetLayerPro() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; //得到当前文档图形数据库 Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction()) { //获取数据库的图层表对象 LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead); //循环遍历每个图层 foreach (ObjectId layerId in lt) { LayerTableRecord ltr = (LayerTableRecord)trans.GetObject(layerId, OpenMode.ForRead); if (ltr != null) { Autodesk.AutoCAD.Colors.Color layerColor = ltr.Color; ed.WriteMessage("\n图层名称为:" + ltr.Name); ed.WriteMessage("\n图层颜色为:" + layerColor.ToString()); } } trans.Commit(); } }