(esri_featurelayer_elevatetofield) 函数用于修改指定要素图层的实体的 z 坐标,以及链接到这些要素的任何 TEXT 实体。
函数详细信息:
- 如果未包含任何选择集,将修改要素图层的所有要素。
- 该函数支持 POINT、POLYLINE、POLYGON 和 ANNOTATION 要素图层中的实体。
语法
(esri_featurelayer_elevatetofield flname field [elevation_settings])
参数
该函数的参数列表:
- flname | 字符串 | 必填 | 工程图中的现有要素图层名称。
- field | 字符串 | 必填 | 数值要素属性字段。
- elevation_settings | 关联列表 | 可选 | 点对形式的可选设置列表,用于修改高程的修改方式。
相关标注 值类型 值描述 必填或可选 "FIELDUNITS" string
"Feet"、"USFeet" 或 "Meters" (不区分大小写)。
可选(默认 "Meters")
"ZFACTOR" 双精度
将每个要素的 FIELD 值乘以此数量确定高程。 覆盖 FIELDUNITS。
可选(默认值为 1.0)
"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 无效。