PTC Navigation Criteria Domain
The PTC Navigation Criteria domain provides access to the filters available in a part structure in Windchill. The filters are divided into two categories, configuration specifications that display a complete bill of material, and specialized filters that show a subset of parts relevant to a design task. The following table shows the Windchill items that are enabled with OData entities in the PTC navigation Criteria domain.
The following table lists the significant OData entities available in the PTC Navigation Criteria domain. To see all the OData entities available in the PTC Navigation Criteria domain, refer to the EDM of the domain. The domain EDM is available at the metadata URL.
Items
|
OData Entities
|
Description
|
Saved filters or navigation criteria in Windchill
|
NavigationCriteria
|
The NavigationCriteria entity represents filters, which are created and saved in Windchill. The criteria defined in the filter is used when you work with product structures.
To define the filter criteria, specify and save values in the filter. The values specified in the filter are access-controlled as is NavigationCriteria.
The entity includes complex types that represent different types of configuration specifications, spatial, option, and attribute filters.
The entity returns only those filters that appear in the Saved Filters drop-down list, when you click the Saved Filters menu in the Structure toolbar on a part information page, in Windchill. For more information, see the Managing Saved Structure Filters topic in the Windchill Help Center.
|
Cached NavigationCriteria in Windchill
|
CachedNavigationCriteria
|
The CachedNavigationCriteria entity represents filters and configuration specifications for a given cached navigation criteria ID, which are created and cached in Windchill. The criteria defined in the filter are used when you work with product structures. The cached navigation criteria are session specific. The Read, Create, Update and Delete operations are supported on CachedNavigationCriteria. The attributes and configuration specification are the same as NavigationCriteria.
|
In addition to the entity, this domain also contains the following complex types:
• ConfigSpec—Collection of configuration specifications in a part and CAD document structure. A configuration specification filters the part or CAD document structure to show complete product configurations with a part and document version displayed for each structure node.
|
If ConfigSpec is not specified for CAD documents, then no configuration specification is used, and all the children are unresolved. The document masters are returned for the CAD documents.
|
The configuration specification filters are represented as the following complex types:
◦ Date Effectivity configuration specification—View the configuration of a product based on a specified date, or date and time effectivity. This filter is available only for parts. Use the WTPartEffectivityDateConfigSpec complex type to work with parts.
◦ As Matured configuration specification—View the parts that are in their most mature state with reference to the specified date. This filter is available only for parts. Use the WTPartAsMaturedConfigSpec complex type to work with parts.
◦ Unit Effectivity configuration specification—View the configuration of a product based upon the serial number or lot number. This filter is available only for parts. Use the WTPartEffectivityUnitConfigSpec complex type to work with parts.
◦ Baseline configuration specification—Get the design from a specific event in time, that is, from a previously created baseline. Depending on the type of Windchill object use the following complex types:
▪ WTPartBaselineConfigSpec—To work with parts.
▪ EPMDocBaselineConfigSpec—To work with CAD documents.
◦ Promotion Request configuration specification—Get the data related to the specified promotion request. Depending on the type of Windchill object use the following complex types:
▪ WTPartPromotionNoticeConfigSpec—To work with parts.
▪ EPMDocPromotionNoticeConfigSpec—To work with CAD documents.
◦ Latest configuration specification—Find the latest designs, that is, the most recently created versions of a selected view and life cycle state. Depending on the type of Windchill object use the following complex types:
▪ WTPartStandardConfigSpec—To work with parts.
▪ EPMDocStandardConfigSpec—To work with CAD documents.
|
If you specify the navigation criteria in the request body with only ApplicableType parameter set, the URL returns unresolved dependents for the CAD structure. However, if additionally, the UseDefaultForUnresolved parameter is also set to true in the request body, then Latest configuration specification is applied to the structure.
|
◦ As Stored configuration specification—Get the most recent configuration stored for a CAD document. This filter is available only for CAD documents. Use the EPMDocAsStoredConfigSpec complex type to work with CAD documents. If this filter is used with other Windchill object types, an error message is returned.
• Filter—Collection of specialized filters in a part structure. The specialized part structure filters reduce the complexity of the part structure by showing only those parts that are relevant to a design task or optional product configuration. The specialized filters are represented as the following complex types:
◦ AttributeFilter—Attribute filters use part and usage link attribute information to determine what parts to include or exclude in the display of part structure.
◦ OptionFilter—Option filter is used to include or exclude parts in a part structure based on expressions assigned to the parts.
◦ SpatialFilter—Spatial filters use volumetric information to determine what components to display or hide in a part or CAD document structure. It is represented by following complex types:
▪ ProximitySpatialFilter
▪ SphereSpatialFilter
▪ BoxSpatialFilter
If you have a spherical spatial filter with bounding box set as partial, the navigation criteria for this is represented as shown below in Windchill REST Services. Use the following URL to retrieve the navigation criteria:
GET /Windchill/servlet/odata/NavCriteria/NavigationCriterias?$filter=Name eq 'Sphere_filter001'
The response is as follows:
"value": [
{
"ID": "OR:wt.filter.NavigationCriteria:261602",
"Name": "Sphere_filter001",
"ApplyToTopLevelObject": true,
"UseDefaultForUnresolved": false,
"SharedToAll": false,
"ApplicableType": "wt.part.WTPart",
"Centricity": false,
"HideUnresolvedDependents": false,
"Filters": [
{
"@odata.type": "#PTC.NavCriteria.SphereSpatialFilter",
"SpatialMethod": {
"Value": "PARTIALLY_IN",
"Display": "Partially in"
},
"XCenter": -0.5334005391706416,
"YCenter": 0.0503675,
"ZCenter": 0.00136,
"Radius": 0.40648001432418823
"Unit": "m"
}
],
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": "Design",
"LifeCycleState": null,
"Variation1": null,
"Variation2": null
}
],
"CreatedOn": "2018-10-01T11:38:16Z",
"LastModified": "2018-10-01T11:38:16Z"
}
]
}
◦ PathFilter—Filters the display of large assemblies so that only the subassemblies that you are currently working on are displayed. Path filters are supported on part, CAD document, and process plan structures. Depending on the link types that you want to navigate, the odata.type must be set appropriately.
◦ OccurrencePathFilter—Filters the part structure based on the identification of one or more uses occurrence paths.
|
• To apply the filter, the part specified as RootIdentifier must be the same as the top-level part specified in the GetPartStructure action.
• It is not required to expand on Occurrence for retrieving a part structure using the occurrence path filter.
• When you specify multiple path filters, you must use the same type of path filters.
• When you specify multiple occurrence paths, DisplayPath is a required attribute. You can specify any value, including an empty string (""), for this attribute.
|
For example, use the following POST URI to retrieve the part structure for a part using an occurrence path filter:
POST /Windchill/servlet/odata/ProdMgmt/Parts('OR:wt.part.WTPart:190468')/PTC.ProdMgmt.GetPartStructure?$expand=Components($expand=Part($select=Identity;$expand=Representations($select=CreoViewURL));$levels=max)
Use the following request body:
{
"NavigationCriteria": {
"ApplicableType": "PTC.ProdMgmt.Part",
"Filters": [
{
"@odata.type": "#PTC.NavCriteria.OccurrencePathFilter",
"RootIdentifier": "wt.part.WTPart:190468",
"Paths": [
{
"DisplayPath": "",
"InternalPath": "/1355"
},
{
"DisplayPath": "",
"InternalPath": "/1377"
}
]
}
]
}
}
◦ UsagePathFilter—Filters the part structure based on the identification of one or more part uses paths.
|
• To apply the filter, the part specified as RootIdentifier must be the same as the top-level part specified in the GetPartStructure action.
• It is not required to expand on Uses for retrieving a part structure using the usage path filter.
• When you specify multiple path filters, you must use the same type of path filters.
• When you specify multiple usage paths, DisplayPath is a required attribute. You can specify any value, including an empty string (""), for this attribute.
|
For example, use the following POST URI to retrieve the part structure for a part using a usage path filter:
POST /Windchill/servlet/odata/ProdMgmt/Parts('OR:wt.part.WTPart:196954')/PTC.ProdMgmt.GetPartStructure?$expand=Components($select=PartName,HasChildren,PathId,Resolved;$expand=Part($select=Identity;$expand=Representations($select=CreoViewURL));$levels=max)
Use the following request body:
{
"NavigationCriteria": {
"ApplicableType": "PTC.ProdMgmt.Part",
"Filters": [
{
"@odata.type": "#PTC.NavCriteria.UsagePathFilter",
"RootIdentifier": "wt.part.WTPart:196954",
"Paths": [
{
"DisplayPath": "",
"InternalPath": "ebf2b8fb-b4bf-4689-9c71-f6ac28b17b1f"
},
{
"DisplayPath": "",
"InternalPath": "929932d8-3ffb-452f-b704-06c1551c8f15|7259c67a-2663-400d-9558-5e1bfb96dfea"
}
]
}
]
}
}
Managing List of All Filters
Use the request header PTC-IncludeHiddenFilter to retrieve the navigation criteria that are hidden, visible, and accessible to the user. When the request header is set to true, the visible and hidden filters accessible to a user are returned. When the request header is set to false by default, only visible saved filters are returned.
URI
GET /Windchill/servlet/odata/NavCriteria/NavigationCriterias
Request Headers
Content-Type: application/json
PTC-IncludeHiddenFilter: true
Response
{
"@odata.context": http://<host>:<port>/Windchill/servlet/odata/v3/NavCriteria/$metadata#NavigationCriterias,
"value": [
{
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplicationName": null,
"ApplyToTopLevelObject": false,
"Centricity": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": null,
"LifeCycleState": {
"Value": "INWORK",
"Display": "In Work"
},
"Variation1": null,
"Variation2": null
},
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": false,
"View": null,
"LifeCycleState": {
"Value": "ACCEPTED",
"Display": "Accepted"
},
"Variation1": null,
"Variation2": null
}
],
"CreatedOn": "2022-09-20T12:51:35Z",
"Filters": [],
"HideUnresolvedDependents": false,
"ID": "OR:wt.filter.NavigationCriteria:1238450",
"LastModified": "2022-10-18T22:37:20Z",
"Name": "Test1",
"SharedToAll": false,
"UseDefaultForUnresolved": false
},
{
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplicationName": null,
"ApplyToTopLevelObject": false,
"Centricity": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": "Design",
"LifeCycleState": null,
"Variation1": null,
"Variation2": null
},
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": false,
"View": null,
"LifeCycleState": {
"Value": "APPROVAL",
"Display": "Approval"
},
"Variation1": null,
"Variation2": null
}
],
"CreatedOn": "2022-10-19T14:35:27Z",
"Filters": [],
"HideUnresolvedDependents": false,
"ID": "OR:wt.filter.NavigationCriteria:1994930",
"LastModified": "2022-10-19T14:35:27Z",
"Name": "Test2",
"SharedToAll": false,
"UseDefaultForUnresolved": false
}
],
"@PTC.AppliedContainerContext.LocalTimeZone": "GMT"
}
The CRUD Operations for the CachedNavigationCriteria Entity
The Read, Create, Update, and Delete operations are supported on CachedNavigationCriteria:
• You can fetch a specific CachedNavigationCriteria given the CachedNavigationCriteria ID. This example shows you how to get a specific CachedNavigationCriteria with the given ID. Use the following GET request.
URI
GET /Windchill/servlet/odata/NavCriteria/CachedNavigationCriterias('<ID>')
• You can create CachedNavigationCriteria using POST request. This example shows you how to create a CachedNavigationCriteria with the specified CachedNavigationCriteria properties and the configuration specification in the request body.
URI
POST /Windchill/servlet/odata/NavCriteria/CachedNavigationCriterias
Request Headers
Content-Type: application/json
CSRF_NONCE: <Use the value from Fetch NONCE example>
Request Body
{
"Name": "testCacheNavCriteria1",
"ApplyToTopLevelObject": true,
"UseDefaultForUnresolved": true,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"Centricity": false,
"HideUnresolvedDependents": true,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": "Design",
"LifeCycleState": {
"Value": "INWORK",
"Display": "In Work"
}
}
]
}
• You can update a specific CachedNavigationCriteria with given ID using a PUT request. The PUT request will update the specific CachedNavigationCriteria with the entire new value specified in the request body. The PATCH request is not supported.
This example shows you how to update a CachedNavigationCriteria with the specified new properties and the configuration specification in the request body using a PUT request.
URI
PUT /Windchill/servlet/odata/NavCriteria/CachedNavigationCriterias('<ID>')
Request Headers
Content-Type: application/json
CSRF_NONCE: <Use the value from Fetch NONCE example>
Request Body
{
"Name": "testCacheNavCriteriaUpdated",
"ApplyToTopLevelObject": true,
"UseDefaultForUnresolved": true,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"Centricity": false,
"HideUnresolvedDependents": true,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": "Design",
"LifeCycleState": {
"Value": "INWORK",
"Display": "In Work"
}
}
]
}
• You can remove a specific CachedNavigationCriteria from cache by specifying the CachedNavigationCriteria ID in the request URI as shown below:
URI
DELETE /Windchill/servlet/odata/NavCriteria/CachedNavigationCriterias('<ID>')