BPMN provides the application programming interface (APIs) to operate with the semantic model of BPMN models (*.bpmx) present in RSA. One of the way to leverage them is via pluglets, which can extend the workbench without creating a formal plug-in.
BPMN model is a model instance of an Eclipse Modeling Framework (EMF) based implementation of the subset of BPMN 2.0 specification, in line with what RSA supports. The objects that represent user models are BPMN2 objects. BPMN models are read and modified using the Java interfaces generated from BPMN Ecore model using EMF's capabilities. The package com.ibm.xtools.bpmn2 is the primary container having BPMN model EObjects. They reflect the same structural organization as mentioned in the BPMN2 specs (owned by OMG). BPMN APIs are a natural extension to the schema mentioned in the BPMN2 specs, they primarily translate the schema to a programmatic interface.
The objects found in such EMF model instances are called EMF objects. The interfaces implemented by an EMF object generally include EObject. This interface gives generic access to EMF objects' content, provides a reflection API and helps determine whether objects are loaded in memory. Because EObject extends Notifier every EMF object can notify listeners upon state change. In EMF, listeners are called Adapter.
These APIs can be used to create and manipulate the BPMN semantic models. This API is based on Eclipse Modeling framework (EMF) generated classes for the BPMN semantic model.
Additionally, there is a utility class BPMNModeler provided to encapsulate some commonly used model level behavior, which can be used to programmatically work with model level operations.
A sample kickstart pluglet is included in the product, demonstrating the use of the these APIs and BPMNModeler utility class to create a collaboration model.
The API help available is the default javadoc generation of the BPMN EMF model, which is currently a subset. It may include certain elements which are not yet supported from a UI perspective (in RSA).