CrossSubsetting
CrossSubsetting
is defined in SysML specification on
page 0.
Excerpt from the machine readable specification:
CrossSubsetting
is a kind ofSubsetting
for endFeatures
, as identified bycrossingFeature
, to subset a chainedFeature
, identified bycrossedFeature.
It navigates to instances of the endFeature
’s type from instances of other endFeature
types on the sameowningType
(at least two endFeatures
are required for any of them to have aCrossSubsetting
).The
crossedFeature
of aCrossSubsetting
must have a feature chain of exactly twoFeatures
. The secondFeature
in the chain is thecrossFeature
of thecrossingFeature
(endFeature
), which has the same type as thecrossingFeature
. When theowningType
of thecrossingFeature
has exactly two endFeatures
, the firstFeature
in the chain of thecrossedFeature
is the other endFeature
. ThecrossFeature
’sfeaturingType
in this case is the other endFeature
. When theowningType
has more than two endFeatures
, the firstFeature
in the chain is aFeature
thatCrossMultiplies
all the other endFeatures
, which is also thefeaturingType
of thecrossFeature
.A
crossFeature
must be owned by itsfeatureCrossing
(endFeature
) when thefeatureCrossing
owningType
has more than two endFeatures
. Otherwise, for exactly two endFeatures
, thecrossFeatures
of each the ends can instead optionally be inherited by the other end from one of itstypes
or a subsettedFeature
.
The following diagram shows the inheritance hierarchy of CrossSubsetting
according to the specification:
![// Class: CrossSubsetting
digraph {
CrossSubsetting [label="CrossSubsetting (SysML)" shape=plaintext]
Subsetting -> CrossSubsetting
Subsetting [label="Subsetting (KerML)" shape=plaintext]
Specialization -> Subsetting
Specialization [label="Specialization (KerML)" shape=plaintext]
Relationship -> Specialization
Relationship [label="Relationship (KerML)" shape=plaintext]
Element -> Relationship
Element [label="Element (KerML)" shape=plaintext]
}](../../../_images/graphviz-c5c92264438e9f28b6d6172fefa7cc704b125b97.png)
The following table shows all attributes defined for
CrossSubsetting
according to the specification together with
the documentation from the machine readable specification. Note
that in SysIDE API, we use snake case for attribute names
instead of Pascal case used in the specification.
Attribute |
Documentation from machine readable specification |
Attributes defined in |
|
The chained |
|
The end |
|
Attributes defined in |
|
A |
|
The |
|
The |
|
Attributes defined in |
|
A |
|
The |
|
A |
|
Attributes defined in |
|
Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler. |
|
The relatedElements of this Relationship that are owned by the Relationship. |
|
The relatedElement of this Relationship that owns the Relationship, if any. |
|
The Elements that are related by this Relationship, derived as the union
of the |
|
The
|
|
The |
|
Attributes defined in |
|
The declared name of this |
|
An optional alternative name for the |
|
The Documentation owned by this Element. |
|
The globally unique identifier for this Element. This is intended to be set by tooling, and it must not change during the lifetime of the Element. |
|
Whether all necessary implied Relationships have been included in the
|
|
Whether this Element is contained in the ownership tree of a library model. |
|
The name to be used for this |
|
The |
|
The Elements owned by this Element, derived as the ownedRelatedElements of the ownedRelationships of this Element. |
|
The Relationships for which this Element is the owningRelatedElement. |
|
The owner of this Element, derived as the |
|
The |
|
The |
|
The Relationship for which this Element is an ownedRelatedElement, if any. |
|
The full ownership-qualified name of this |
|
The short name to be used for this |
|
The |
The following table lists SysIDE specific attributes available for
class CrossSubsetting
:
Python Attribute |
- class CrossSubsetting
-
- STD: tuple[type[syside.CrossSubsetting], ...] = ()
- property crossed_feature: syside.Feature | None
- property crossing_feature: syside.Feature | None
- property crossed_feature_target: syside.ChainedFeatureReference
- property crossing_feature_target: syside.ChainedFeatureReference