示例#1
0
 //[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);
     }
 }
示例#2
0
        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();
            }
        }