Custom elements in meta model extension for BPMN 2.0

Hello BPMN.io community,

I began programming with bpmn.io for 2-3 weeks and now I have some questions about the extensibility.

First I want to introduce my main goal:
I want specific, new task and event elements like for example a Sensor Event in a modeler. It’s really important for the further project that the new custom elements are BPMN 2.0 conform. Therefore they should be saved in the correct way in the meta model extension for BPMN 2.0:
bpmn2:extensionElements new, custom elements </bpmn2:extensionElements> format.
Further, the properties from the new, custom elements should be editable in the properties panel.

For the start I used this project: https://github.com/bpmn-io/bpmn-js-examples/tree/master/properties-panel-extension and I edited the core bpmn-moddle/resources/bpmn/json/bpmn.json and also the BPMNRenderer.json and the ReplaceOptions.json. As a result, I have obviously no BPMN conform xml files.

This leads to my questions:

  1. How can I extend BPMN core elements like an activity most efficient?
  2. How can I define that these new elements are bpmn2:extensionElements?
  3. Add specific properties (like dropdown with a picklist) for the new, custom elements?

I hope the overall project and the questions are clear.
Thanks for any advice beforehand.

Best regards,
Jannis

Please checkout the way we plug in camunda properties inside the properties panel.

Checkout the Camunda meta-model extension, too. It extends the library to understand the camunda namespace and store the attributes using the extension points provided by the standard.