3.4.4.1 静态EC属性过滤


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