deepClone(ObjectIdCollection ids, Point3d pnt3dBase) { Entity dbObj = null; Database db = BaseObjs._db; ObjectIdCollection idsNew = new ObjectIdCollection(); try { using (BaseObjs._acadDoc.LockDocument()) { try { using (Transaction tr = BaseObjs.startTransactionDb()) { IdMapping idMap = new IdMapping(); db.DeepCloneObjects(ids, db.CurrentSpaceId, idMap, false); foreach (IdPair idP in idMap) { ObjectId id = idP.Value; dbObj = (Entity)id.GetObject(OpenMode.ForWrite); idsNew.Add(id); } JigDraw jDraw = new JigDraw(pnt3dBase); jDraw.AddEntity(idsNew); PromptResult jRes = BaseObjs._editor.Drag(jDraw); if (jRes.Status == PromptStatus.OK) { jDraw.TransformEntities(); } else { return; } db.Dispose(); tr.Commit(); } } catch (System.Exception ex) { BaseObjs.writeDebug(ex.Message + " Blocks.cs: line: 634"); } } } catch (System.Exception ex) { BaseObjs.writeDebug(ex.Message + " Blocks.cs: line: 640"); } }
clone(ObjectIdCollection ids, Point3d pnt3dBase) { Database db = BaseObjs._db; ObjectIdCollection idsNew = new ObjectIdCollection(); try { using (Transaction tr = BaseObjs.startTransactionDb()) { BlockTableRecord ms = Blocks.getBlockTableRecordMS(); foreach (ObjectId id in ids) { Entity ent = (Entity)tr.GetObject(id, OpenMode.ForRead); Entity entCopy = (Entity)ent.Clone(); ms.AppendEntity(entCopy); tr.AddNewlyCreatedDBObject(entCopy, true); idsNew.Add(entCopy.ObjectId); } db.Dispose(); tr.Commit(); } } catch (System.Exception ex) { BaseObjs.writeDebug(ex.Message + " Blocks.cs: line: 671"); } JigDraw jDraw = new JigDraw(pnt3dBase); jDraw.AddEntity(idsNew); PromptResult jRes = BaseObjs._editor.Drag(jDraw); if (jRes.Status == PromptStatus.OK) { jDraw.TransformEntities(); } else { return; } }