Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
        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;
            }
        }