Make/modify model programmatically

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()});
3 Likes