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.
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
.