The SEDRIS Data Representation Model
APPENDIX A - Classes State Related Geometry |
---|
An instance of this DRM class specifies a mechanism for specifying discrete states from a possibly continuous state value. Each discrete state corresponds to a branch of the <State Related Geometry> and is identified by the <State Data> for that branch; the state value itself is given by the state_tag of <State Related Geometry>.
Consider a <Model> of a building which has four different geometric representations, representing different damage states. The <Model> therefore has a <Geometry Model>, the geometry of which is organized via a <State Related Geometry> instance with four branches, one for each damage state, as shown below.
Each branch of the <State Related Geometry> has a <State Data> indicating the range of percent damage that the branch represents. The range values in the diagram therefore specify explicitly the "bins" in which the states fall.
A slightly different design for example 1, modified to allow each <Geometry Model Instance> to specify a percent damage value via a <State Control Link>.
Add a <State Control Link> component to the <State Related Geometry>, with mismatch_behaviour = SE_STATE_MSM_BHVR_NONE and a <Variable> V as its controlling <Expression>, where V's meaning is EAC_GENERAL_DAMAGE_FRACTION.
Associate V to the <Interface Template> component of the <Model>. If the <Model> has no <Interface Template>, create one.
The mismatch_behaviour of the <State Control Link> can be exploited to 'turn off' the <Geometry Model Instance> if a damage value is fed in which does not match one of the damage states. (This is why the <Model> doesn't require a 'totally destroyed' state for 100% damage.)
If the data provider instead wanted to keep a state transition from happening until the state value matches a <State Data>, SE_STATE_MSM_BHVR_LAST would be specified.
The mismatch_behaviour 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.
A wind sock model designed to support a landing site has state behaviour to allow it to respond to wind speed and wind direction. The wind sock is modeled with five states of EAC_WIND_RESPONSE, where the response to wind direction is implemented by using a <Rotation Control Link> tied to an EAC_WIND_DIRECTION <Variable>.
Identifies one of alternative appearances for some "state-applicable" attribute.
For a <State Related Geometry> representing different states of an aircraft hatch for EAC_OPENING_COVER_POSITION, one <State Data> with EEC_OPNCOVPOS_CLOSED and another with EEC_OPNCOVPOS_OPEN.
For a <State Related Geometry> representing different damage states of a building for EAC_GENERAL_DAMAGE, <State Data> for [0, 25) % damage, [25, 50) % damage, [75, 100) % damage, and [100, 100) % damage.
For a <State Related Geometry> representing different states of a forest for healthy vs. burned, EAC_GENERAL_DAMAGE could be used.
No. <Control Link> instances can be used to provide a fine level of control over state by changing fields instead of representing states as different <Geometry Representation> instances.
SE_Boolean | unique_descendants; | (notes) |
---|---|---|
SE_Boolean | strict_organizing_principle; | (notes) |
EDCS_Attribute_Code | state_tag; | (notes) |
---|---|---|
EDCS_Attribute_Value | active_state_value; | (notes) |
An association between a <Feature Representation> instance and a <Geometry Hierarchy> instance indicates that the environmental object(s) that they represent have the semantic relationship indicated by the <Base Association Data> instance on the association relationship.
An association between two <Geometry Hierarchy> instances indicates that the environmental object(s) that they represent have the semantic relationship indicated by the <Base Association Data> instance on the association relationship.
An association between a <Feature Representation> instance and a <Geometry Hierarchy> instance indicates that the environmental object(s) that they represent have the semantic relationship indicated by the <Base Association Data> instance on the association relationship.
An association between two <Geometry Hierarchy> instances indicates that the environmental object(s) that they represent have the semantic relationship indicated by the <Base Association Data> instance on the association relationship.
An association from a <Hierarchy Summary Item> instance to a <Geometry Hierarchy> indicates that the <Hierarchy Summary Item> summarizes that <Geometry Hierarchy>.
An association from a <Reference Surface> instance to a <Geometry Hierarchy> indicates that the <Geometry Hierarchy> organizes the geometric objects that specify the resolution surface of the <Reference Surface>.
In the case where multiple <Collision Volume> components are specified for a given <Aggregate Geometry>, the union of the volumes thus specified is used in collision detection.
If the value of the unique_descendants field is SE_TRUE, each descendant of this aggregation, that is, each <Geometry Representation> instance that exists in the component tree rooted at the given <Aggregate Geometry>, shall be unique, in the sense that it shall appear in only one branch of this aggregation. If unique_descendants is SE_FALSE, at least one <Geometry Representation> instance appears in more than one branch of the aggregation.
If the value of the strict_organizing_principle field is SE_TRUE, each branch of this aggregation strictly complies with the organizing principle for its particular subclass. If this value is SE_FALSE, at least one branch does not strictly comply with the given organizing principle. See the organizing principle constraint for each specific subclass for details.
The state_tag field specifies the state by which the component <Geometry Hierarchy> instances are being differentiated, and shall specify an EAC which qualifies as "state applicable".
The active_state_value field specifies the default state. If the given <State Related Geometry> instance has a <State Control Link> component, the active_state_value field is the target of that <State Control Link> instance.
|