Export (0) Print
Expand All

How to: Read a UML Model in Program Code

You can load a UML model and its diagrams using the UML API.

To access the content of a model without showing it in a Visual Studio window, use ModelingProject.LoadReadOnly().

For example:

using Microsoft.VisualStudio.Uml.Classes; 
               // for IElement
using Microsoft.VisualStudio.ArchitectureTools.Extensibility; 
               // for ModelingProject
using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;
               // for IModelStore
... 
string projectPath = @"C:\MyProjectFolder\MyProject.modelproj";
using (IModelingProjectReader projectReader =
           ModelingProject.LoadReadOnly(projectPath))
{
   IModelStore store = projectReader.Store;
   foreach (IClass umlClass in store.AllInstances<IClass>())
   { 
       ...
   }
}

If you want to read the shapes in a diagram, you must read the project and then the diagram.

For example:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation; 
                             // for IDiagram
...
foreach (string diagramFile in projectReader. DiagramFileNames)
{ 
  IDiagram diagram = projectReader.LoadDiagram(diagramFile);
  foreach (IShape<IElement> shape 
         in diagram.GetChildShapes<IElement>())
  { ... }
}

For many applications, Visual Studio Modelbus allows you to reference models and elements within them, with greater robustness and flexibility than with the methods described in this topic. It provides a standard method of making links between arbitrary elements, either in the same or different models. For more information, see How to: Integrate UML Models with Other Models and Tools.

You can also open models and diagrams in the user interface using the Visual Studio API. For more information, see How to: Open a UML Model by Using the Visual Studio API.

The example in the previous section will work in Visual Studio extensions. It is possible to read a model in a stand-alone application, but you must add some references to your Visual Studio project.

Note Note

The details of how to read a model in a stand-alone application are likely to change in future versions of the product. Some features that are accessible in the current version might not be available in future versions.

To add references to read a model in a stand-alone application.

  1. In Solution Explorer, right-click the project in which you are building the application, and then click Properties. In the properties editor, in the Application tab, set Target Framework to .NET Framework 4.

  2. Add the .NET references you need for accessing UML models, typically:

    • Microsoft.VisualStudio.Uml.Interfaces.dll

    • Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll

  3. In addition to the references listed in the previous sections, add the following project references from \Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies:

    • Microsoft.VisualStudio.Uml.dll

    • Microsoft.VisualStudio.TeamArchitect.ModelStore.Dsl.dll

    If you want to read diagrams in your application, you might also require these references:

    • Microsoft.VisualStudio.TeamArchitect.ActivityDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.ComponentDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.LogicalClassDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.SequenceDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.UseCase.Dsl.dll

Show:
© 2014 Microsoft