SysMLv1: CAUTION: Only a Signal can be used for a SendSignalAction or MessageEvent trigger of an AcceptEventAction, not a Block or ValueType, even if they are valid types for a SysML FlowProperty! But you can "wrap" a Block or ValueType in a Signal.

Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
Specification keywords
UML keywords
SysMLv1.x keywords
Keywords
Click on the image to view it full size

If you want to use SendSignalAction for exchange items you MUST use a Signal, not a Block or ValueType, for the exchange item, even if SysMLv1 accept any of a Signal, Block, or ValueType as the type of a FlowProperty.

The 'signal' of a SendSignalAction MUST be a Signal. A triggering MessageEvent of an AcceptEventAction MUST (if it isn't an Operation) be a Signal:

However, it you wish to use a Block or ValueType as an exchange item for better integration with your SysMLv1 model, there is way out; just wrap the Block or ValueType as an attribute "packet" of a Signal. You can then receive it on the Pin of an un-marshalled AcceptEventAction or as a Parameter of an effect Activity on a Transition.

This wrapping approach has the disadvantage in Magic Model Analyst® (Cameo Simulation Toolkit®) that you can't then as easily see in the animation of sending on Connectors exactly what is flowing.

It also become tricky when there are families of "packet" types. For example, if a type SubPacket that extends Packet is sent as the "packet", the unmarshalled Pin of an AcceptEventAction for WrapperSignal will be of type Packet, not SubPacket.

Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)