import CIMFilteredFindPathsConfiguration from "@arcgis/core/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js";
Inheritance
CIMFilteredFindPathsConfigurationAccessor
Since
ArcGIS Maps SDK for JavaScript 4.32
beta

The pathfinding configuration for executeFindPaths() and executeFindPathsAsynchronous().

You can define filters that specify which entity types and relationship types must be included. You can also define filters that exclude entity types and relationship types or specific entities and relationships. You can define mandatory waypoints (individual entities or relationships) that must be present in paths. You can also define optional waypoints (individual entities or relationships, and entire entity types and entire relationship types): when optional waypoints are defined, paths must pass through at least one of the optional waypoints.

Example
knowledgeGraphService.executeFindPaths({
inKnowledgeGraphUrl: "https://sampleserver7.arcgisonline.com/server/rest/services/Hosted/BumbleBees/KnowledgeGraphServer",
config: {
type: "CIMFilteredFindPathsConfiguration",
name: "exampleFFPconfiguration",
originEntities: [
{
type: "CIMFilteredFindPathsEntity",
iD: devPathStart,
entityTypeName: "User"
}
],
destinationEntities: [
{
type: "CIMFilteredFindPathsEntity",
iD: devPathEnd,
entityTypeName: "Species"
}
],
pathFilters: [
{
type: "CIMFilteredFindPathsPathFilter",
iD: null,
itemTypeName: "Observation",
itemType: "Entity",
filterType: "Include"
}
],
defaultTraversalDirectionType: "Any",
entityUsage: "EachPair",
pathMode: "All",
minPathLength: 1,
maxPathLength: 8,
maxCountPaths: 100000
}
});

Constructors

Constructor

Constructor

Parameters

ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor

The name of the class. The declared class name is formatted as esri.folder.className.

defaultTraversalDirectionType

Property
Type
TraversalDirectionType

Specifies the direction which the algorithm uses to traverse relationship in the path.

DirectionDescription
AnyThe filtered find paths algorithm considers all relationships independent of their direction.
ForwardThe filtered find paths algorithm considers only the relationships that are traversed in forward direction, origin --> destination.
BackwardThe filtered find paths algorithm considers only the relationships that are traversed in backward direction, origin <-- destination.
Default value
"Any"

destinationEntities

autocast Property
Type
CIMFilteredFindPathsEntity[]

The entities to use as the destination of the path.

entityUsage

Property
Type
FilteredFindPathsEntityUsageType

Specifies how the origin and destination entities are used in the executeFindPaths() and executeFindPathsAsynchronous() algorithm. For example, say you want to find all shortest paths between {A, B} and {C, D} where A and B are your possible origin entities and C and D are your possible destination entities. Using the default setting of AnyOriginAnyDestination, this means that the algorithm can return 4 kinds of shortest paths:

A -> C

A -> D

B -> C

B -> D

If the shortest paths between each origin and each destination have the following lengths:

A -> C : length 4

A -> D : length 3

B -> C : length 5

B -> D : length 6

Then the "shortest shortest paths" here are the shortest paths of length 3, from A to D. So only these paths will be returned.

OptionDescription
AnyOriginAnyDestinationThe filtered find paths algorithm only returns the shortest paths for the origin entities that have the shortest shortest paths and the shortest paths for the destination entities that have the shortest shortest paths. When multiple entities are used, this option leads to faster computations.
AnyOriginAllDestinationsThe filtered find paths algorithm returns the shortest paths for the origin entities that have the shortest shortest paths and one shortest path (if it exists) per destination entity. When multiple entities are used, this option leads to longer computations.
AllOriginsAnyDestinationThe filtered find paths algorithm returns one shortest path (if it exists) per origin entity and the shortest paths for the destination entities that have the shortest shortest paths. When multiple entities are used, this option leads to longer computations.
AllOriginsAllDestinationsThe filtered find paths algorithm returns one shortest path (if it exists) per origin entity and one shortest path (if it exists) per destination entity. When multiple entities are used, this option leads to longer computations.
EachPairThe filtered find paths algorithm returns one shortest path (if it exists) per pair of origin and destination entity. When multiple entities are used, this option leads to longer computations. An error will be returned if strictly more than 10 origin entities are defined or if strictly more than 10 destination entities are defined.
Default value
"AnyOriginAnyDestination"

maxCountPaths

Property
Type
number

The maximum number of paths that the executeFindPaths() and executeFindPathsAsynchronous() algorithm returns. This parameter is only taken into account when pathMode is All.

Default value
100000

maxPathLength

Property
Type
number

The maximum path length. The default value of 0 means the value is unlimited.

Default value
0

minPathLength

Property
Type
number

The minimum path length.

Default value
1

name

Property
Type
string

The name of the configuration.

Default value
""

originEntities

autocast Property
Type
CIMFilteredFindPathsEntity[]

The entities to use as the origin of the paths.

pathFilters

autocast Property
Type
CIMFilteredFindPathsPathFilter[]

Any filters to use during pathfinding.

pathMode

Property
Type
"Shortest" | "All"

Specifies whether the filtered find paths algorithm searches for all paths or only the shortest paths.

Default value
"Shortest"

traversalDirections

autocast Property
Type
CIMKGTraversalDirection[]

The filtered find paths algorithm uses traversal directions to specify how relationships are traversed. When no traversal direction is defined for a specific relationship type, the default traversal direction is used.

type

readonly Property
Type
"CIMFilteredFindPathsConfiguration"

Methods

MethodSignatureClass
inherited static
fromJSON(json: any): any
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters

ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.

Type definitions

FilteredFindPathsEntityUsageType

Type definition
Type
"AnyOriginAnyDestination" | "AnyOriginAllDestinations" | "AllOriginsAnyDestination" | "AllOriginsAllDestinations" | "EachPair"

TraversalDirectionType

Type definition
Type
"Any" | "Forward" | "Backward"