Exemplo n.º 1
0
 public bool MergeDWG(string SourcePath, EntityFilter filter = null)
 {
     if (File.Exists(SourcePath))
     {
         BlockHelper TargetSpace = BlockMgr.ModelSpace; //目标DWG模型空间
         TargetSpace.StartTransaction();                //开启事务
         using (Database SourceDB = new Database(false, false))
         {
             SourceDB.ReadDwgFile(SourcePath, FileShare.Read, false, null);
             BlockTableRecord SourceBtr = SourceDB.CurrentSpaceId.GetObject(OpenMode.ForRead) as BlockTableRecord;//来源DWG模型空间
             foreach (ObjectId ObjId in SourceBtr)
             {
                 Entity ent = ObjId.GetObject(OpenMode.ForRead) as Entity;
                 if (filter == null || filter.Check(ent))
                 {
                     TargetSpace.CloneEntity(ent);
                 }
             }
         }
         TargetSpace.CommitTransaction();//提交事务
         return(true);
     }
     else
     {
         Logger.log("MergeDWG", "DWG文件不存在");
     }
     return(false);
 }