You can retrieve an object's expansion information using an OData function named GetNavigationOptions. This function allows easy navigation between objects in a client application and returns the relevant relationship definitions, edge definitions, expansion paths, and counts.
The GetNavigationOptions function is located at:
<ACCESS_URL>/api/v2/SDXDEV/GetNavigationOptions
You can access the GetNavigationOptions function using the following example POST request:
{
"StartingObjectOBID": "11S004A",
"RelLookAhead": true,
"EdgeLookAhead": true
}
This POST uses the following arguments:
Argument |
Description |
---|---|
StartingObjectOBID |
Specifies the starting object using the OBID to get the navigation options. |
RelLookAhead |
Set to true to get a count of the expanded relationship definitions, and filter out the relationship expansions that have a zero count. If set to false, the relationships definitions are not filtered and any with null counts also appear in the response. |
EdgeLookAhead |
Set to true to get a count of the edge definitions expanded, and filter out the edge expansions that have a zero count. If set to false, the edge definitions are not filtered and any with null counts also appear in the response. |
-
If you omit the RelLookAhead and EdgeLookAhead arguments, the default values are used, which are true for RelLookAhead and false for EdgeLookAhead.
-
If the StartingObjectOBID belongs to a complex object, the navigation options for all included objects are returned. For example, for a document the navigation options include the document master, revision, and version.
The POST returns the results as a NavigationOption collection located at:
<ACCESS_URL>/api/v2/$metadata#Intergraph.SDX.Server.API.Model.NavigationOption
Multiple expansions
When the POST response contains information about multiple expansions, each expansion returns the following properties:
Property |
Description |
---|---|
Link |
An OData link that can be used in a GET to navigate to the relationship or edge definitions expanded from the source object to return the results. |
UID |
The UID of the edge or relationship definition that may be expanded from the source object. |
DisplayName |
The display name of the edge or relationship definition. |
PathDefinition |
The path of the relationship definition, including the expansion direction. |
StartingInterface |
The interface definition which can expand the navigation. This must be one of the interface definitions of the starting object specified as the StartingObjectOBID. |
EndInterface |
The interface definition at the end of the expansion direction. This is either the interface definition at end 1 or end 2 on the relationship definition at the end of the path. |
Count |
Null, or an integer value when the RelLookAhead or EdgeLookAhead arguments are set to true in the request. |