An aggregation of Geometry Hierarchy that are differentiated by the field values of the Geometry State Data link objects attached to the aggregations used to reach the Geometry Hierarchy objects. State Related Geometry is used to group discrete changes in geometry. State provides a mechanism to select discrete states from a possibly continuous state value.
Example 1
A Geometric Model of a Building might have 4 different levels of damage. The EDCS State Code (ESC) for a General Damage State ( EDCS_AC_DAMAGE_GENERAL) would be used as the state_tag, and the State Related Geometry would have 4 Geometry Hierarchy components. Each aggregation to each component would have in its Geometry State Data a value that indicates the Percent Damage range that this child is designed to represent. The SEDRIS sub-graph might look something like this:
(...) |Under the above implementation the range values specify explicitly the "bins" in which the states fall.<> - state_tag = EDCS_AC_DAMAGE_GENERAL | - active_state = 0.0 | |---------------|-----------------|-------------|------------| [0.0 - 0.25) [0.25 - 0.50) [0.50 - 0.75) [0.75 - 0.99) [0.99 - 1.0) | | | | | Geometry Geometry Geometry Geometry Geometry "Healthy" "Slight Damage" "Moderate" "Heavy" "Destroyed"
Example 2
Another way to implement almost the same thing is:
(...) (...)---| | - "building damage state" | | - EDCS_AC_DAMAGE_GENERAL | | <>---------------- <> - state_tag = EDCS_AC_DAMAGE_GENERAL - mismatch_policy = SE_NO_CHANGE | - active_state = 0.0 | |---------------|-----------------|-------------|------------| [0.0 - 0.0) [0.25 - 0.25) [0.5 - 0.5) [0.75-0.75) [1.0 - 1.0) | | | | | Geometry Geometry Geometry Geometry Geometry "Healthy" "Slight Damage" "Moderate" "Heavy" "Destroyed"
With the addition of a Geometry State Control Link that is evaluated from a Variable, a mismatch behavior can be exploited to keep the transition from happening until a match is found between "building damage state" and the Geometry State Data. The mismatch_policy would not be needed if the Variable only took on valid values (0.0, 0.5, 0.75, or 1.0). But this scheme does not force state values to be discrete.
Example 3
A wind sock model that is designed to support a landing site has state behavior to allow it to respond to wind speed and wind direction. The wind sock is modeled with 5 states of Wind Speed Response (GE.WSR) and the response to wind direction would be implemented by using a Rotation Control Link and having it tied to the Wind Speed Variable.
The SEDRIS graph might look like this:
(...)---
| - EDCS_AC_WIND_DIRECTION
|
------
| - angle=0.0
|
(...) | (...)-----
| | | - EDCS_AC_WIND_SPEED
| <> |
<>-------
<> - state_tag = GE.WSR - mismatch_policy = SE_NO_CHANGE
| - active_state = 0.0
|
|---------------|-----------------|-------------|------------|
[0.0 - 0.25) [0.25 - 0.50) [0.50 - 0.75) [0.75 - 0.99) [0.99 - 1.0)
| | | | |
Geometry Geometry Geometry Geometry Geometry
"NoWind" "SlightWind" "ModerateWind" "HeavyWind" "HurricaneWind"
| SE_BOOLEAN | unique_descendants; | (notes) |
|---|---|---|
| SE_BOOLEAN | independent_topologies; | (notes) |
| SE_BOOLEAN | strict_organizing_principle; | (notes) |
| EDCS_AC_ID | state_tag; | (notes) |
|---|---|---|
| SE_PROPERTY_DATA_VALUE | active_state_value; | (notes) |
If SE_TRUE, then for any object that exists 'below' this aggregation, each object will appear in only one 'branch' of this aggregation. If SE_FALSE, then objects may appear in multiple 'branches' of this aggregation.
If SE_TRUE, then each 'branch' from this aggregation is its own, independent topology. If SE_FALSE, then all of the branches exist within the same topology.
If true, then each 'branch' strictly follows the rules of this aggregation. If false, then each 'branch' might bend the rules a bit. For example, if this is a spatial aggregation, than a value of true indicates that objects will *not* cross the spatial extents defined by this aggregation relationship, and a value of false indicates that objects might cross those bounds. For another example, if this is a time-based aggregation, then a value of true indicates that all branches will only contain data valid for the times specified for each branch, and a value of false indicates that the branches have the option of including data that falls outside of the specified time ranges for that branch.
The state by which the component <Geometry Hierarchies> are being differentiated; must be an EDCS State Code (ESC). Refer to the list of ESCs to understand their meanings, as well as the allowable ranges or enumerated values. (Note that the list of ESCs is a subset of the list of EDCS Attribute Codes (EACs), which is why a EDCS_AC_ID is used to identify the state.)
The default state. If a <Geometry State Control Link> is present, then this field is its target.