所谓静态EC属性过滤,也就是在创建EC属性定义的时候,通过使用系统预定义的XML标记或者特定的CustomAttribute来控制特定EC属性的显示状态。需要注意的是,虽然这种控制方式无需编写代码,但会对所有基于这个EC类所创建的EC实例产生影响。例如: 如果某个EC类中的某些EC属性以这种方式设置为隐藏的,则所有基于此EC类创建的EC实例中,这些属性默认也都是隐藏的。用于静态控制EC属性的XML标记或CustomAttribute有以下几种:
<ECProperty propertyName="Order" typeName="int" readOnly="True" displayLabel="Order">
此字段为可选的,省略时的默认值为False;
<ECClass typeName="BSplineBoundaryCurveData" isStruct="True" isDomainClass="True"> <ECCustomAttributes> <DisplayOptions xmlns="Bentley_Standard_CustomAttributes.01.10"> <Hidden>True</Hidden> </DisplayOptions> </ECCustomAttributes> <ECProperty propertyName="Order" typeName="int" readOnly="True" displayLabel="Order" /> </ECClass>
<ECClass typeName="CimObject" isDomainClass="True"> <ECProperty propertyName="DesignPhase" typeName="int" displayLabel="Design Phase"> <ECCustomAttributes> <HideProperty xmlns="EditorCustomAttributes.01.00"> <If2D>True</If2D> <If3D>False</If3D> </HideProperty> </ECCustomAttributes> </ECProperty> </ECClass>
上例中,DesignPhase这个属性在2D视图下不显示,但在3D视图下正常依旧显示。