There is one Root object in each Repository. The Root object is the starting point for navigating to other objects in the Repository. The Root object serves as the starting point for both type and instance data navigations.
When you create a tool information model, the corresponding Repository type library is attached to the Root object through the ReposTypeLibs collection. This collection can be used to enumerate all of the tool information models (type data) that are contained in the Repository.
Once a tool information model is defined, the Repository can be populated with instance data. This instance data consists of objects and relationships that conform to the classes and relationship types of the tool information model.
Because the objects are connected via relationships, you can navigate through this data. However, to enable general purpose Repository browsers to navigate this data, the first navigational step must be from the Root object of the Repository through a root relationship collection to the primary objects of your tool information model. Primary objects are objects that make a good starting point for navigating to other objects of your tool information model.
Because this root relationship collection is different for each tool information model, it must be defined by the tool information model. There are two options for attaching this relationship collection to the Root object:
To facilitate navigation, the Root object in all repositories always has the same object identifier. The symbolic name for this object identifier is OBJID_ReposRootObj.
Use the ReposRoot class to:
Interface | Description |
IAnnotationalProps | Gets and sets annotational properties. |
IManageReposTypeLib | Adds tool information models (Repository type libraries) to a Repository. |
IRepositoryDispatch | Provides enhanced dispatch support. |
IRepositoryItem | Manages Repository objects and relationships. |
IRepositoryObject | Retrieves Repository object identifiers. |
IRepositoryObjectStorage | Creates and loads Repository objects. |
IReposRoot | Provides an attachment point for tool information model instance data. |
IWorkspaceContainer | Manages the set of workspaces in a Repository. |