yxr_MJTD 发表于 2011-7-7 11:27:08

选择集过滤

如图所示,有如下一些扩展属性,有没有直接选取代码为R00002 的选择集过滤方法?我想直接得到包含此代码的对象,而不想通判断来获取,请大家指点!


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 yxr_MJTD的微博

sieben 发表于 2011-7-7 11:44:54

应该不行,从逻辑上也应该不行,里面很多1000组码,没有唯一性

yxr_MJTD 发表于 2011-7-8 11:35:07

回复 yxr_MJTD 的帖子

呵呵,我现在还是自己写的方法判断。主要我不想做这个步骤的事情,以为有这方面的方法。

houlinbo 发表于 2011-12-9 13:16:16

/// <summary>
      /// 得到选择集 根据扩展数据
      /// </summary>
      /// <param name="ed">ed</param>
      /// <param name="xData">扩展数据值</param>
      /// <param name="entIds">返回的实体列表</param>
      /// <returns>返回true,false</returns>
      public static bool TryGetSSetByXData(Editor ed, string appName, string xData, out ObjectId[] entIds)
      {
            TypedValue[] filList = {new TypedValue(1000, xData) ) };
            SelectionFilter fileter = new SelectionFilter(filList);
            PromptSelectionResult res = ed.SelectAll(fileter);
            if (res.Status == PromptStatus.OK)
            {
                entIds = res.Value.GetObjectIds();
                return true;
            }
            else
            {
                entIds = null;
                return false;
            }
      }
这样得到不选择集,不知为什么1001是可以的

liuxu042 发表于 2011-12-9 14:23:25

本帖最后由 liuxu042 于 2011-12-12 11:17 编辑

1001 就是注册应用程序名 ((int)DxfCode.ExtendedDataRegAppName),每一组扩展属性肯定有相应的注册应用程序名,其值是可以用来过滤的   1000是其对应的字符串值(Dxfcode.ExtendedDataAsciiString),也可以用来过滤

yxr_MJTD 发表于 2012-3-2 11:43:21

liuxu042 发表于 2011-12-9 14:23 static/image/common/back.gif
1001 就是注册应用程序名 ((int)DxfCode.ExtendedDataRegAppName),每一组扩展属性肯定有相应的注册应用 ...

哦,好的。谢谢!
页: [1]
查看完整版本: 选择集过滤