Attach reference strings to UML model elements


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Attach reference strings to UML model elements.

You can write code to attach arbitrary strings to model elements. A string could be, for example, a URI, the cached result of a computation, or a ModelBus reference to an element in another model. Each string is contained in an IReference object. Any number of IReference objects can be attached to each model element.

Every IReference object has a Name. You could use this Name to indicate how the reference value should be interpreted. For example, you could set Name to "URI" to indicate that the Value should be interpreted as a URI. There are some predefined reference name values used by the modeling tools.

To use the following methods, you must add a reference to:


You should insert this directive in your code:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;

Method callDescription
element.AddReference (nameString, valueString, duplicatesAllowed)Creates an IReference with the given name and value strings, and links it to element. Returns the IReference.

Throws an exception if duplicatesAllowed is false and there is already an IReference with the same name attached to element.
element.GetReferences(name)Returns all the IReference objects linked to element that have the given name.
element.DeleteAllReferences(name)Deletes all the IReference objects linked to element that have the given name.
reference.Delete()Deletes this IReference.
ReferenceConstants.WorkItemThe value used to name work item references.

Define a work item link handler
Define and install a modeling extension
Programming with the UML API