Hi,
I'm developing a C#.Net Add-in that would convert Visio Shapes to EA. For every page in the Visio file, I must create a new BPMN Diagram. My code is working fine, but it seems that it's not in the BPMN 1.1 type since its toolbar isn't loading properly (as BPMN 1.1). Also, the shapes tagged values are either not populated like the shapes in BPMN 1.1 as well. Please see below for my code.
For adding the BPMN Diagram:
...
//Add a diagram in the current package for the specific page
EA.Diagram NewDiagram = (EA.Diagram)Package.Diagrams.AddNew(vsPage.Name, "Analysis");
NewDiagram.Update();
...
For the shapes:
...
EA.Element NewElement = (EA.Element)Package.Elements.AddNew(vsShape.Text, sShapeType);
NewElement.Stereotype = sShapeStereotype;
switch (sShapeType)
{
case "Activity":
taggedValue = (EA.TaggedValue)NewElement.TaggedValues.AddNew("LoopType", "System__ComObject");
taggedValue.ElementID = NewElement.ElementID;
taggedValue.Value = sSubTypeValue;
taggedValue.Update();
NewElement.TaggedValues.Refresh();
NewElement.Update();
break;
case "Decision":
taggedValue = (EA.TaggedValue)NewElement.TaggedValues.AddNew("GatewayType", "System__ComObject");
taggedValue.ElementID = NewElement.ElementID;
taggedValue.Value = sSubTypeValue;
taggedValue.Update();
NewElement.TaggedValues.Refresh();
taggedValue = (EA.TaggedValue)NewElement.TaggedValues.AddNew("MarkerVisible", "System__ComObject");
taggedValue.ElementID = NewElement.ElementID;
taggedValue.Value = "true";
NewElement.Update();
break;
case "EndEvent":
taggedValue = (EA.TaggedValue)NewElement.TaggedValues.AddNew("Result", "System__ComObject");
taggedValue.ElementID = NewElement.ElementID;
taggedValue.Value = sSubTypeValue;
taggedValue.Update();
NewElement.TaggedValues.Refresh();
NewElement.Update();
break;
case "IntermediateEvent":
taggedValue = (EA.TaggedValue)NewElement.TaggedValues.AddNew("Trigger", "System__ComObject");
taggedValue.ElementID = NewElement.ElementID;
taggedValue.Value = sSubTypeValue;
taggedValue.Update();
NewElement.TaggedValues.Refresh();
NewElement.Update();
break;
case "StartEvent":
taggedValue = (EA.TaggedValue)NewElement.TaggedValues.AddNew("Trigger", "System__ComObject");
taggedValue.ElementID = NewElement.ElementID;
taggedValue.Value = sSubTypeValue;
taggedValue.Update();
NewElement.TaggedValues.Refresh();
NewElement.Update();
break;
}