C# CAD arx得到模型空间所有实体的代码

版权声明:yunyou.ke.qq.com 版权所有,转载请注明 https://blog.csdn.net/yunyouxy/article/details/83042065
   public List<Autodesk.AutoCAD.DatabaseServices.ObjectId> GetEntitiesInModelSpace()
        {
            List<Autodesk.AutoCAD.DatabaseServices.ObjectId> objects = new List<Autodesk.AutoCAD.DatabaseServices.ObjectId>();
            using (Autodesk.AutoCAD.DatabaseServices.Transaction transaction =   Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction())
            {
                Autodesk.AutoCAD.DatabaseServices.BlockTable blockTable = 
                    (Autodesk.AutoCAD.DatabaseServices.BlockTable)transaction.GetObject(
                    Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.WorkingDatabase.BlockTableId,
                    Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead);
                Autodesk.AutoCAD.DatabaseServices.BlockTableRecord blockTableRecord =
                    (Autodesk.AutoCAD.DatabaseServices.BlockTableRecord)transaction.GetObject(
                    blockTable[Autodesk.AutoCAD.DatabaseServices.BlockTableRecord.ModelSpace], 
                    Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead);
                foreach (Autodesk.AutoCAD.DatabaseServices.ObjectId objId in blockTableRecord)
                {
                    objects.Add(objId);
                }
                transaction.Commit();
            }
            return objects;
        }

猜你喜欢

转载自blog.csdn.net/yunyouxy/article/details/83042065
今日推荐