Skip To Content

FeatureLayer.SelectSpecial (.NET)

FeatureLayer.SelectSpecial 方法基于特殊条件返回指定要素图层的 AutoCAD 选择集。 此方法可用于在同步 Web 要素图层之前进行质量保证和合规性检查,或根据使用要素图层时的不同编辑和数据状态查找实体。

特殊搜索条件如下所示:

  • FlaggedAsModified - 符合指定 Web 要素图层的要素条件并且其编辑状态标记为已修改的 AutoCAD 实体。
  • FlaggedAsNew - 符合指定 Web 要素图层的要素条件并且其编辑状态标记为新要素的 AutoCAD 实体。
  • IncorrectGeometry - 因所在 AutoCAD 图层而符合要素条件,但因几何类型有误而不被视为要素的 AutoCAD 实体。 在 ArcGIS for AutoCAD 点要素 AutoCAD 图层上绘制的折线是其中一个示例。
  • OutsideProjectArea - 符合指定要素图层的要素条件且超出当前工程区域边界的 AutoCAD 实体。
  • ProxyObjectPresent - 用于表示自定义对象几何的 AutoCAD 代理实体,例如 Autodesk Civil 3D 外部的 COGO 点,或用于不存在对象启动程序的情况。
  • UnclosedPolyline - 符合面要素条件但是折线闭合标记未在实体上设置的 AutoCAD 折线实体。

注:

建议不要尝试同时管理大量选择集。 应用程序不能同时打开超过 128 个选择集。 (您的系统上的限值可能更低。)达到限值后,AutoCAD 将不会创建更多选择集。 每次保持打开最小数量的集合,并尽快将其从内存中释放出来。 如果达到选择集的最大数量,则将无法创建更多选择集。

声明

public SelectionSet Esri.ArcGISForAutoCAD.FeatureLayer.SelectSpecial(Document doc, string flName, string criteria, string sublayerName = null)

参数

类型名称描述必填

文档

doc

要进行操作的 AutoCAD 文档。

必填

string

flName

工程图中现有的要素图层名称。

必填

string

criteria

搜索条件。 选项如下:

  • 搜索条件:"UnclosedPolyline""IncorrectGeometry""ProxyObjectPresent""OutsideProjectArea"
  • 仅 web 要素图层选项:"FlaggedAsModified""FlaggedAsNew"

必填

string

sublayerName

字符串形式的现有要素图层子图层名称。

可选

返回

类型描述

SelectionSet

一种符合特殊条件的 ​​AutoCAD 要素选择集。

错误条件备注

如果参数无效,则此方法可能会抛出异常或者返回 null

示例 1

打印属于 Shelters 要素图层的实体的数量,这些实体位于当前工程图的工程区域之外。

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;

// Create a selection set with the criteria
var sheltersSelection = Esri.ArcGISForAutoCAD.FeatureLayer.SelectSpecial(doc, "Shelters", "OutsideProjectArea");

// Print the selection count
doc.Editor.WriteMessage("\nNumber of entities selected: " + sheltersSelection.Count.ToString());

/* Example output
Number of entities selected: 30
*/

示例 2

打印当前工程图中属于 Roads web 要素图层 Public 子图层的实体数量,这些实体被视为在进行同步之前已被 ArcGIS for AutoCAD 修改。

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;

// Create a selection set with the criteria
var publicRoadsSelection = Esri.ArcGISForAutoCAD.FeatureLayer.SelectSpecial(doc, "Roads", "FlaggedAsModified", "Public");

// Print the selection count
doc.Editor.WriteMessage("\nNumber of entities selected: " + publicRoadsSelection.Count.ToString());

/* Example output
Number of entities selected: 5
*/

另请参阅

FeatueLayer.Select - 此 .NET 方法将返回按来自工程图的指定要素图层和可选子图层过滤的 AutoCAD 选择集,以及可选的指定选择集和属性查询。

esri_featurelayer_selectspecial - 此 AutoLISP 函数将基于特殊条件返回指定要素图层的 AutoCAD 选择集。