private static void AddConnector(ModelBusReference processOverview, ProcessOverview.SubProcessElement fromSubProcess, ProcessOverview.SubProcessElement toSubProcess) { IModelBus modelbus = processOverview.ModelBus; ModelBusAdapter adapter = modelbus.CreateAdapter(processOverview); Diagram diagram = ((StandardVsModelingDiagramView)adapter.GetDefaultView()).Diagram; using (Transaction t = fromSubProcess.Store.TransactionManager.BeginTransaction("Add Connector")) { //Connector must be added when BTSubProcessActivity is added ProcessOverview.SubProcessElementReferencesTargets refTargets = new ProcessOverview.SubProcessElementReferencesTargets(fromSubProcess, toSubProcess); ProcessOverview.SubProcessConnector connector = new ProcessOverview.SubProcessConnector(diagram.Partition); connector.Associate(refTargets); diagram.NestedChildShapes.Add(connector); t.Commit(); } }
public static SubProcessElement CreateSubProcessElement(string subProcessName, Partition partition, ProcessOverview.Process process, SubProcess subProcess, ModelBusReference subProcessReference) { var childReferenceProperty = new PropertyAssignment(SubProcessElement.SubProcessRefDomainPropertyId, null); var nameProperty = new PropertyAssignment(SubProcessElement.NameDomainPropertyId, subProcessName); var subProcessElement = new ProcessOverview.SubProcessElement(partition, nameProperty, childReferenceProperty); subProcessElement.VisioId = subProcess.VisioId.ToString().ToLower(); subProcessElement.SubProcessRef = subProcessReference; process.BTSubProcess.Add(subProcessElement); return subProcessElement; }