Path discovery
Discover paths between related items#
In the following use case example of connected mechanical equipment in a named user collection, you can retrieve the path from one piece of equipment to a hop depth you define.
Figure: Path between mechanical equipment related items in the same collection
Sample query
{ "$findWithRelatedGraph": { "start": { "collectionDesc": { "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He" }, "query": { "_id": "61d16a426190581d330013ec" }, "options": { "page": {}, "project": { "_id": 1, "dtCategory": 1, "dtType": 1 } } }, "to": { "segments": [ { "relatedDesc": { "_userType": "sys_equipments" }, "as": "sys", "minDepth": 5, "maxDepth": 5, "options": { "project": { "dtCategory": 1, "dtType": 1 } } } ], "as": "paths", "response": "path", "options": { "page": { "_offset": 0 } } } }}Sample response
{ "_list": [ { //The collection that contains the start node "_uri": "/nameduseritems/61d16a416190581d330013e8", "_name": "1801KS-INV-01-ZZ-M3-Z-0001_Federated_elements", "_userType": "rvt_elements", "_tipId": "61d16a416190581d330013e9", "_versions": [ //The collection versions { //start node collection tip version "_userItemDbId": "61d16a416190581d330013e8", "_relatedItems": { "_pageSize": 1, "_list": [ { //start node collection projection "dtCategory": "Mechanical and Plumbing Equipment", "dtType": "Supply Air Grills & Diffusers", "paths": { "_pageSize": 1, "_list": [ { //start node "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He", "_userItemVersionId": "61d16a416190581d330013e9", "_id": "61d16a426190581d330013ed", "_version": 1, "child": { //first hop "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He", "_userItemVersionId": "61d16a416190581d330013e9", "_id": "61d16a426190581d330013ee", "_version": 1, "child": { //second hop "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He", "_userItemVersionId": "61d16a416190581d330013e9", "_id": "61d16a426190581d330013ef", "_version": 1, "child": { //third hop "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He", "_userItemVersionId": "61d16a416190581d330013e9", "_id": "61d16a426190581d330013f0", "_version": 1, "child": { //fourth hop "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He", "_userItemVersionId": "61d16a416190581d330013e9", "_id": "61d16a426190581d330013f1", "_version": 1 } } } } } ], "_offset": 0, "_total": 1 }, "_id": "61d16a426190581d330013ec" } ], "_offset": 0, "_total": 1 }, "_id": "61d16a416190581d330013e9", "_isTip": true, "_metadata": { "_updatedById": "f5cca02a-a515-48ed-aea2-37637376416a", "_createdAt": 1641114177806, "_createdById": "f5cca02a-a515-48ed-aea2-37637376416a", "_updatedAt": 1641114177806 }, "_version": 1 } ], "_irn": "itemsvc:nameduseritem:61d16a416190581d330013e8", "_namespaces": [ "lnt_EvqksGPz" ], "_nextVersion": 2, "_shortName": "1801KS-INV-_ba_elem", "_tipVersion": 1, "_versionsCount": 1, "_itemClass": "NamedUserCollection", "_userItemId": "1801ks-inv-_ba_elem_UKFFYde0He", "_syncedAt": "Sun Jan 02 09:23:41 GMT 2022", "_id": "61d16a416190581d330013e8", "_description": "Elements in BA model", "_metadata": { "_updatedById": "f5cca02a-a515-48ed-aea2-37637376416a", "_createdAt": 1641114177799, "_createdById": "f5cca02a-a515-48ed-aea2-37637376416a", "_updatedAt": 1641114177799 }, "_kind": "collection" } ], "_referencedItems": { //projection of all RelatedItems in each hop, grouped by userItemId and versionId "1801ks-inv-_ba_elem_UKFFYde0He": { //hops in this collection userItemId "61d16a416190581d330013e9": { //hops in this versionId "61d16a426190581d330013f0": { "dtCategory": "Mechanical and Plumbing Equipment", "dtType": "Attenuator - Duct Silencer", "_id": "61d16a426190581d330013f0" }, "61d16a426190581d330013f1": { "dtCategory": "Mechanical and Plumbing Equipment", "dtType": "Heat Recovery Unit", "_id": "61d16a426190581d330013f1" }, "61d16a426190581d330013ef": { "_id": "61d16a426190581d330013ef" }, "61d16a426190581d330013ee": { "dtCategory": "Mechanical and Plumbing Equipment", "dtType": "Fire Damper", "_id": "61d16a426190581d330013ee" }, "61d16a426190581d330013ed": { "_id": "61d16a426190581d330013ed" } } } }, "_time": "121ms"}