yanghao1 发表于 2013-12-19 19:34:39

给定的层中确实包含有2个DBPoint类型对象,但本函数无法得到,返回null

本帖最后由 yanghao1 于 2013-12-19 20:43 编辑

但是,遍历这个层确实找到了这2个DBPoint对象,本函数却无法得到,不知错在哪里。
      public List<Entity> 得到实体(Document doc, string 实体类型,string 层名)
      {
            List<Entity> et = new List<Entity>();
            using (DocumentLock docLock = doc.LockDocument())
            {
                TypedValue[] filList = new TypedValue;
                filList = new TypedValue((int)DxfCode.Start, 实体类型);
                filList = new TypedValue((int)DxfCode.LayerName, 层名);
                SelectionFilter filter = new SelectionFilter(filList);
                PromptSelectionResult res = doc.Editor.SelectAll(filter);//问题出在这里:执行此句后res的结果是"errors,"
                if (res.Status == PromptStatus.OK)
                {
                  using (Transaction trans = doc.Database.TransactionManager.StartTransaction())
                  {
                        foreach (ObjectId id in res.Value.GetObjectIds())
                        {
                            Entity entObject = trans.GetObject(id, OpenMode.ForWrite) as Entity;
                            et.Add(entObject);
                        }
                        trans.Commit();
                  }
                }
            }
            return et;
      }
      提示:如果把实体类型参数换成"DBText"则能返回给定层中的所有DBText对象。
      为什么实体类型参数为"DBPoint"却不能得到给定层中的DBPoint对象。

sieben 发表于 2013-12-19 20:25:18

无BDTEXT,也无DBPOINT
有 POINT ,有TEXT

yanghao1 发表于 2013-12-19 20:42:08

sieben 发表于 2013-12-19 20:25 static/image/common/back.gif
无BDTEXT,也无DBPOINT
有 POINT ,有TEXT

谢谢!
如果是光栅类型该写成什么呢?

yanghao1 发表于 2013-12-19 20:44:10

sieben 发表于 2013-12-19 20:25 static/image/common/back.gif
无BDTEXT,也无DBPOINT
有 POINT ,有TEXT

对不起,字打错了,应该是DBText

sieben 发表于 2013-12-19 21:37:06

yanghao1 发表于 2013-12-19 20:42 static/image/common/back.gif
谢谢!
如果是光栅类型该写成什么呢?

(0 . IMAGE)

yanghao1 发表于 2013-12-19 21:43:29

sieben 发表于 2013-12-19 21:37 static/image/common/back.gif
(0 . IMAGE)

谢谢!明天试试。
页: [1]
查看完整版本: 给定的层中确实包含有2个DBPoint类型对象,但本函数无法得到,返回null