系统内置定义了大量的CustomAttribute,用于精细化控制UI在处理ECSchema、ECClass以及ECProperty时的特定行为,下面我们将提供一些常用的CustomAttribute。在了解了上一节的内容后,我们就可以轻松的使用它们了。
名称
应用对象
功能
AlwaysExpand
ECProperty
指示是否应始终以展开方式显示此属性(对结构体、数组类型的属性而言)。
ArrayBehaviorAttributes
ECArrayProperty
指示UI应如何控制数组类型属性的显示,包括是否应将元素作为数组对待、是否允许显示空数组、是否允许用户在属性面板上直接添加和删除元素。
ArrayMemberNameFromValue
指示UI使用应使用数组元素的值作为其显示标题。
Localizable
指示UI这个字符串类型属性的值是可以被本地化的。
BooleanDisplay
指示UI应使用两个给定的字符串来显示这个布尔值(也就是True对应的字符串以及False对应的字符串)
Category
描述此ECProperty与分类有关的附加信息,主要包括: 所属分类的ID、所属分类的名称、所属分类的显示名称、所属分类的说明文字、所属分类的优先级值以及所属分类的属性是否应展开显示。
StringLength
指示UI此字符串类型可接受的字符串的最大/最小长度。
ClassPriority
ECClass
指定此ECClass的显示优先级值。
DontLoadProperty
指示UI此属性的加载会很耗时,所以默认时不要加载此属性的值。
DontShowNullProperties
指示UI不要显示此类中值为空的属性。
DontShowNullProperty
指示UI当此属性的值为空时就不要显示了。
ExtendType
描述此属性的扩展类型,主要包括属性的标准类型值(如表示长度、表示面积、表示体积等等),或者所属自定义类型的名称。
FilePickerAttributes
指示此属性是个文件名类型的属性,其中包含选择文件所需的相关信息。在必要时,系统会使用此属性中提供的信息弹出文件选择对话框,并能在对话框正常返回时获取选择结果作为属性值。
Format
指示UI应使用此属性提供的格式字符串来格式化这个ECProperty的值。
HideMembers
指示UI是否应在属性指定的情况下隐藏数组的成员,包含是否整体隐藏数组成员、是否在2D视图下隐藏数组成员、是否在3D视图下隐藏数组成员。
HideProperty
指示UI是否应在属性指定的情况下隐藏此属性,包括是否在2D视图下隐藏、是否在3D视图下隐藏,或者按指定的表达式来确定是否隐藏。
IgnoreZ
指示UI在显示此point3d类型的属性时应忽略其Z值。
MemberExtendedType
功能上类似于ExtendType,只不过它用于描述数组类型属性的成员。
RequiresRefresh
指示UI应在此属性被修改后重新刷新属性面板。
RequiresReload
指示UI应在此属性被修改后重新加载所有属性。
SchemaPriority
ECSchema
指定Schema的优先级值。
StandardValues
用于为ECProperty指定一个可供选择的值列表,这个值列表由一组显示字符串与值的配对序列组成,其中的显示字符串为每个选项的显示标题,而值则对应于每项的实际存储值。UI在显示此属性时会使用提供的值列表形成一个下拉列表以供用户选择,用户选择完成后会将结果传递给属性。
StoresUnitsAsUors
用于指示系统,应将此Schema中所有扩展类型(ExtendType或MemberExtendedType修饰的)的属性值按工作单位来显示,按UOR为单位来保存。若无此自定义属性,则Schema中所有属性值将默认按米单位保存。
UseBooleanInExpressions
用于布尔类型的属性,用于指示系统在计算EC表达式时不要将此属性中的布尔值转换为字符串。