Book a Demo

Author Topic: Add BPMN 1.1 Diagrams and Elements  (Read 2896 times)

thea

  • EA Novice
  • *
  • Posts: 10
  • Karma: +0/-0
    • View Profile
Add BPMN 1.1 Diagrams and Elements
« on: March 16, 2011, 04:01:11 pm »
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:
Code: [Select]
...
//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:
Code: [Select]
...
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;
}                                        
---------------------------------------------------------------------------------------------------------------
If your tried 10x and failed, try again.  We'll never know if we'll get it right on our next try.