esri_featurelayer_elevatetofield 函数用于修改指定要素图层的实体的 z 坐标,以及链接到这些要素的任何 TEXT 实体。
函数的详细信息如下:
- 如果未包含任何选择集,将修改要素图层的所有要素。
- 该函数支持 POINT、POLYLINE、POLYGON 和 ANNOTATION 要素图层中的实体。
语法
(esri_featurelayer_elevatetofield flname field [elevation_settings])
参数
- flname | 字符串 | 必填 | 工程图中的现有要素图层名称。
- field | 字符串 | 必填 | 数值要素属性字段。
- elevation_settings | 关联列表 | 可选 | 点对形式的可选设置列表,用于修改高程的修改方式,如下方定义:
相关标注 值类型 值描述 必填或可选 "ZFACTOR" 双精度
将每个要素的 FIELD 值乘以此数量确定高程。 此参数可覆盖 FIELDUNITS。
可选(默认值为 1.0)
"FIELDUNITS" string
高程的测量单位。 有效值为 "Feet"、"USFeet" 和 "Meters" (这些值不区分大小写)。
可选(当存在 ZFACTOR 时忽略)
"SELECTIONSET" 选择集
AutoCAD 选择集,用于限制将修改的要素。 如果未提供任何值,则将修改要素图层的所有要素。
可选(默认为要素图层的所有要素)
示例用法 1
在此示例中,将根据 ELEVATION 的要素属性字段(值单位为米)修改 Contours 要素图层的所有要素的高程。(esri_featurelayer_elevatetofield "Contours" "ELEVATION")
结果示例用法 1
此示例可根据 ELEVATION 属性字段的值修改 Contours 要素图层的所有要素的高程,并返回一个 true 的列表以及已修改要素的计数。
(T 49)示例用法 2
在此示例中,将修改 Spot_Elevation 要素图层的所选要素集的高程,其中 ELEVATION 字段中存储的高程需要乘以比例因子才能考虑从米到英尺的转换。(progn
(setq ss (ssget))
(esri_featurelayer_elevatetofield "Spot_Elevation" "ELEVATION"
(list
(cons "ZFACTOR" 3.28084)
(cons "SELECTIONSET" ss)
)))
结果示例用法 2
此示例将根据提供的比例因子修改所选点高程要素集的高程,并返回一个 true 列表和已修改要素的计数。
(T 20)返回值
以下是可能的返回值:
- 如果成功,则将返回一个 true 列表和已修改实体的计数:(T <n>)。
- 如果失败,则该函数将返回一个列表,其中第一个值为 nil,然后将返回一个包含键值 "Error" 的关联列表以及字符串形式的关联错误消息:(nil ( "Error" . "<message>"))。
失败的返回值
出于以下任一原因,可能出现失败的返回值:
- (nil ("Error" . "Cannot calculate unit scale factor from current coordinate system."))
函数无法求解用户指定的单位或地图坐标系单位。
- (nil ("Error" . "Missing required argument."))
未提供一个或多个必填参数。
- (nil ("Error" . "Feature layer not found."))
在工程图中未找到指定的要素图层。
- (nil ("Error" . "No supported feature layers found."))
图层具有不受支持的几何类型 MULTIPATCH。
- (nil ("Error" . "Field not found."))
找不到字段名称,或提供的 elevation_settings 值无效。