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); }