Dim documents As DocumentCollection = Application.DocumentManager Dim editor As Editor = documents.MdiActiveDocument.Editor Dim database As Database = documents.MdiActiveDocument.Database Dim sourceDb As New Database(False, False) Dim ex As Autodesk..Runtime.Exception Try sourceDb.ReadDwgFile(sourceFileName, FileShare.Write, True, Nothing) Dim ids As ObjectIdCollection = New ObjectIdCollection() Dim manager As Autodesk.AutoCAD.DatabaseServices.TransactionManager = sourceDb.TransactionManager Dim transaction As Transaction = manager.StartTransaction Using transaction Dim table As BlockTable = CType(manager.GetObject(sourceDb.BlockTableId, OpenMode.ForRead, False), BlockTable) Dim id As ObjectId For Each id In table Dim record As BlockTableRecord = CType(manager.GetObject(id, OpenMode.ForRead, False), BlockTableRecord) If Not record.IsAnonymous And Not record.IsLayout Then ids.Add(id) record.Dispose() End If Next transaction.Commit() table.Dispose() transaction.Dispose() End Using 'Dim mapping As New IdMapping 'Dim cloning As New DuplicateRecordCloning sourceDb.WblockCloneObjects(ids, database.BlockTableId, DuplicateRecordCloning.Replace, False) 'doctemp.CloseAndDiscard() 'doctemp.Dispose() Catch ex editor.WriteMessage("复制出错" + ex.Message) End Try sourceDb.Dispose() database.Dispose()