Skip To Content

esri_featurelayer_select (AutoLISP)

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 名称无效或缺失。

另请参阅

esri_featurelayer_selectspecial