I’ve already figured out in something. For example, building the simple model.
o = {};
o.modeler = new BpmnJS({
container: '#canvas'
});
o.modeling = o.modeler.get('modeling');
o.elementRegistry = o.modeler.get('elementRegistry');
var i=0;
o.modeler.createDiagram();
var process_found = function(){
rt = o.elementRegistry.get('Process_1'); //get root
s1 = o.elementRegistry.get('StartEvent_1');//get start event
//append task
t2 = o.modeling.appendShape(s1,{type:'bpmn:Task'},{x:s1.x+200,y:s1.y+50},rt)
t2.businessObject.di.id = "task_2_gui";
o.modeling.updateProperties(t2,{name:'Scan',id:'task_2'});
c1 = t2.incoming[0];
c1.businessObject.di.id = 'seq_1_2_gui'
o.modeling.updateProperties(c1,{id:'seq_1_2'});
//append gateway
g1 = o.modeling.appendShape(t2,{type:'bpmn:ExclusiveGateway'},{x:t2.x+200,y:t2.y},rt);
t3 = o.modeling.appendShape(g1,{type:'bpmn:DataObjectReference'},{x:g1.x,y:g1.y+150},rt);
t3.businessObject.di.id = "task_3_gui";
o.modeling.updateProperties(t3,{name:'Fill',id:'task_3'});
t4 = o.modeling.appendShape(g1,{type:'bpmn:Task'},{x:g1.x+150,y:g1.y},rt);
t4.businessObject.di.id = "task_4_gui";
o.modeling.updateProperties(t4,{name:'Stroke',id:'task_4'});
console.log(o.modeler);
}
setTimeout(function(){process_found()});