Skip to content

BeforeCreateRelationInstance

This event is triggered before a relation instance is created.

Parameters

ParameterDescription
frominstidintValue, the ID of the first ("from") instance.
toinstidintValue, ID of the second ("to") instance.
relationclassidintValue, ID of the relation class.
componentidintValue, ID of the concerned component (model, library, ...)

Exit value:

|0|No abortion.| |-1|Abort without error.| |-2|Abort with error.| |greater than 0|Abort with core error code.|

Remarks

This event is useful, if creating a relation instance shall be forbidden under certain circumstances.

Note that using the automatic cardinality check is the preferable solution in most cases. Automatic cardinality checking is customized through the "Cardinalities" class attributes and the "Default settings" library attribute.

See Also

Example

The following event handler makes it impossible to draw a connector between two objects which both have the same name

leo-grammar

ON_EVENT "BeforeCreateRelationInstance" {
    CC "Core" GET_OBJ_NAME objid:(frominstid)
    SET objname1:(objname)
    CC "Core" GET_OBJ_NAME objid:(toinstid)
    SET objname2:(objname)
    IF (objname1 = objname2) {
        EXIT -1
    }
}

ON_EVENT "BeforeCreateRelationInstance" {
    CC "Core" GET_OBJ_NAME objid:(frominstid)
    SET objname1:(objname)
    CC "Core" GET_OBJ_NAME objid:(toinstid)
    SET objname2:(objname)
    IF (objname1 = objname2) {
        EXIT -1
    }
}

Note that renaming objects after relation instance creation has no effect here.