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 | 搜索条件。 选项如下:
| 必填 |
| 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 选择集。