esri_featurelayer_select 函数将返回按来自工程图的指定要素图层和可选子类型过滤的 AutoCAD 选择集和(可选)指定选择集。 该函数类似于选择要素工具的对象选项,该工具位于内容窗格的 Web 要素图层或文档要素图层的快捷菜单上。
语法
(esri_featurelayer_select flname subtype [select_settings])
参数
- flname | 字符串 | 必填 | 工程图中现有 web 要素图层或文档要素图层名称。
- subtype | 字符串 | 必填 | 要素图层的子类型名称;对于所有子类型或者如果没有任何子类型,则为空字符串 ""。
- select_settings | 关联列表 | 可选 | 以点对形式显示的可选设置列表,用于通过属性查询和预选限制选择集。
相关标注 值类型 值描述 必填或可选 "SSET" AutoCAD 选择集对象
AutoLISP 选择集对象。 AutoCAD AutoLISP 函数 (ssget) 可用于提示用户为此函数选择实体。 如果未提供选择集,则指定子类型的要素图层的所有要素将包含在返回的选择集中,所有 AutoCAD 选择集也是如此。 建议在使用用于所有选择集的资源后将其释放。 为此,请在使用后将选择集设置为 nil。
可选
"ATTRIBUTEQUERY" string
使用单个字段名称将返回值限制为该字段的 where 子句。 如果还提供了 flname 值,则 where 子句字符串中包含的字段名称必须存在于该要素类定义中。
可选
注:
建议不要尝试同时管理大量选择集。 应用程序不能同时打开超过 128 个选择集。 (您的系统上的限值可能更低。)达到限值后,AutoCAD 将不会创建更多选择集。 每次保持打开最小数量的集合,并尽快将不需要的选择集设置为 nil。 如果达到选择集的最大数量,则无法创建更多选择集。
示例用法 1
此示例可为当前工程图中属于 Shelters 要素图层的所有实体创建选择集:(esri_featurelayer_select "Shelters" "")
结果示例用法 1
将返回属于 Shelters 要素图层的所有实体的选择集:
<Selection set: 2e>示例用法 2
此示例在 capacity 字段值大于 400 时为当前工程图中属于 Shelters 要素图层子类型 1 的所有实体创建选择集:(esri_featurelayer_select "Shelters" "1"
(list (cons "ATTRIBUTEQUERY" "capacity > 400"))
)
结果示例用法 2
在 capacity 字段值大于 400 时,会返回当前工程图中属于 Shelters 要素图层子类型 1 的所有实体的选择集:
<Selection set: 30>返回值
以下是可能的返回值:
- 如果成功,则返回 AutoCAD 选择集对象。
- 如果失败,则该函数将返回一个列表,其中第一个值为 nil,然后将返回一个包含键值 "Error" 的关联列表以及字符串形式的关联错误消息:(nil ( "Error" . "<message>"))。
失败的返回值
出于以下任一原因,可能出现失败的返回值:
- (nil ("Error" . "Missing required argument."))
未提供一个或多个必填参数。
- (nil ("Error" . "Feature layer not found."))
必填要素图层值无效或缺失。
- (nil ("Error" . "Sublayer not found."))
必填 subtype 名称无效或缺失。