Rule Name: No Attribute Conflicts

Definition

No two directly attached Property Value components of an object instance may share the same EDCS Attribute Code (EAC) for the attribute_code field of Property Value.

If an inherited Property Value has the same attribute_code EAC as a directly attached Property Value, then the directly attached component replaces the inherited component in the inheritance context.

Rationale

The intent of this rule is eliminate ambiguity in specifying the attributes of an object instance.

Example

  1. A Union of Primitive Geometry has a Property Value component with attribute_code = EDCS_AC_MATERIAL_COMPOSITION_CATEGORY and the attribute value for Asphalt, SE_PROP_VAL_MCC__ASPHALT. A Polygon component in the union has a Property Value component which also has attribute_code = EDCS_AC_MATERIAL_COMPOSITION_CATEGORY, but attribute value for Concrete, SE_PROP_VAL_MCC__CONCRETE. For that Polygon, the SE_PROP_VAL_MCC__CONCRETE value overrides the inherited SE_PROP_VAL_MCC__ASPHALT value.

    No Attribute Conflicts, Example 1

FAQs

I have a building model which could be used for a Police Station or a Post Office. Can I attach both EDCS_AC_BUILDING_FUNCTION_CATEGORY values with two Property Value components?
No. Instead, you should:
  1. Produce the building Model as a component Model in the Model Library. (That is, set the Model's model_reference_type field to SE_COMPONENT_MODEL.)

  2. Add a separate model to the Model Library for the Police Station, with a Classification Data tagged as EDCS_ECC_BUILDING and having an elaborating Property Value of EDCS_AC_BUILDING_FUNCTION_CATEGORY, SE_PROP_VAL_BFC__POLICE_STATION.

    The Geometry Model's Geometry (and/or Feature Model's Feature Hierarchy, as the case may be) is just a Geometry Model Instance (or Feature Model Instance) which instances the building component model in (1), above.

  3. Similarly, add a separate model to the Model Library for the Post Office.

Prev: Nested Primitive Geometry. Next: No Model CLOD. Up:Index.