Метод FeatureLayer.SelectSpecial возвращает набор выборки AutoCAD из указанного векторного слоя на основе специальных критериев. Этот метод полезен для обеспечения качества и проверки соответствия перед синхронизацией векторных веб-слоев или для поиска элементов на основе различных состояний редактирования и данных при работе с векторными слоями.
К специальным критериям поиска относятся следующие:
- FlaggedAsModified — элементы AutoCAD, которые квалифицируются как объекты указанного векторного веб-слоя и статус редактирования которых отмечен как измененные.
- FlaggedAsNew — элементы AutoCAD, которые квалифицируются как объекты указанного векторного веб-слоя и состояние редактирования которых помечено как новый объект.
- Элементы IncorrectGeometry—AutoCAD, которые можно квалифицировать как объекты благодаря слою AutoCAD, в котором они находятся, но которые не считаются объектами, поскольку имеют неправильный тип геометрии. Примером могут служить полилинии, нарисованные в слое AutoCAD точечных объектов ArcGIS for AutoCAD.
- Элементы OutsideProjectArea—AutoCAD, которые квалифицируются как объекты указанного векторного слоя и находятся за пределами текущей границы области проекта.
- Вспомогательные элементы ProxyObjectPresent—AutoCAD, используемые для представления пользовательской геометрии объекта, такие как точки COGO за пределами Autodesk Civil 3D, или когда признак объекта отсутствует.
- Полилинейные элементы UnclosedPolyline—AutoCAD, которые могут считаться полигональными объектам, но для которых флаг замкнутости полилиний не задан для элемента.
Примечание:
Не рекомендуется пытаться управлять большим количеством наборов выборки одновременно. В приложении не может одновременно быть открыто более 128 наборов выборки. (В вашей системе этот предел может быть ниже.) При достижении предела дополнительные наборы выборки создаваться не будут AutoCAD. Одновременно открывайте минимальное количество наборов и как можно скорее удаляйте их из памяти. Если будет достигнуто максимальное количество выделенных наборов, вы не сможете создать больше.
Декларация
public SelectionSet Esri.ArcGISForAutoCAD.FeatureLayer.SelectSpecial(Document doc, string flName, string criteria, string sublayerName = null)
Параметры
| Тип | Имя | Описание | Обязательный |
|---|---|---|---|
Документ | doc | Документ AutoCAD, на основании которого следует действовать. | required |
string | flName | Имя существующего векторного слоя в чертеже. | required |
string | criteria | Специальные критерии. Можно выбрать следующие опции:
| required |
| 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
Вывести число элементов в текущем чертеже, принадлежащих к подуровню Public векторного веб-слоя Roads, которые считаются 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
*/
См. также
FeatureLayer.Select—метод .NET, который возвращает набор выборки AutoCAD, отфильтрованный по указанному векторному слою и дополнительному подслою из чертежа, и, при необходимости, указанный набор выборки и атрибутивный запрос.
esri_featurelayer_selectspecial—функция AutoLISP, которая возвращает набор выборки AutoCAD из указанного векторного слоя на основе специальных критериев.