所谓静态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视图下正常依旧显示。