PickingStrategy
- Last UpdatedSep 26, 2025
- 4 minute read
The PickingStrategy node works with the PickSensor to enable picking, and Avatar to enable collision, based on set criteria.
It works only when the PickSensor field pickingStategyNode or Avatar field pickingStrategyNode contains the PickingStrategy node name. One PickSensor can have multiple picking strategies.
Platform support
This node is fully supported on XR-Windows platform. It is partially supported on XR-Portable Windows, XR-Portable iOS, XR-Portable Android. It is not supported on XR-P Hololens platform.
|
XR-WIN |
XR-P-WIN |
XR-P-IOS |
XR-P-AND |
XR-P-WASM |
|---|---|---|---|---|
|
Full support |
Partial support |
Partial support |
Partial support |
No support |
|
|
|
|
|
|
Picking attributes
The attributes enable you to customize the characteristics of picking by applying rules and restrictions to it. Attributes can be mixed together.
These are the attributes options that can be set to true or false.
-
singleResult
-
backfaceCulling
-
clipPlanes (ignored by SGL)
-
ignoreOpaque
-
ignoreTransparent
-
completelyInsideRect (ignored by SGL)
Supported model types
These parameters determine which type of model content can be picked in the scene by the PickSensor.
For example, if the includeMWX field is set to false, then PickSensor will not pick the MWX object.
These are the model type options that can be set to true/false.
-
includeMWX
-
includeRFC (currently not supported on portable platforms)
-
includeMwxSoup
-
includeSPC (currently not supported on portable platforms)
-
includeCmesh
-
includeSGL (currently not supported on portable platforms)
-
includePOPMesh
Supported feature types
These parameters applies only to feature picking and determine which feature types of a model content can be picked in the scene by the PickSensor.
For example, if the includeVertexes field is set to false, then PickSensor will not pick the object vertexes. An SGL object ignores these parameters.
These are the model feature options that can be set to true/false.
-
includeVertexes
-
includeEdges
-
includeTriangles
Note: This functionality is not supported on portable platforms.
Filtering
You can define a list of model references in a jsonList (defined in JSON format) to restrict the picking by including or excluding types.
The list is defined by the listMode field. Note that both inclusion and exclusion work for model type.
Code example
This is a code example for the jsonList field.
{
"models": [
{
"tags": ["DESIGN-AREA-200-STRUCTURE_ST001"],
"name": "ARF/rfc_IED_OILGAS",
"ids": [123,345,333]
},
{
"name": "EATON_3DModel",
"tags": ["/CLASS1_DIV2\\PROCESS_EQUIP"],
"ids": [830]
},
{
"name": "template_dr",
"tags": ["cube_default"]
},
{
"name": "spc/spc_Oberhausen94",
"tags": ["Oberhausen213.lsc"],
"ids": []
}
{
"name": "SGL/sgl_smallModified",
"ids": ["{2013286708/1730}","{2013286708/1717}","{2013286708/1718}"]
}
{
"name": "POP/POPMesh_014",
"tags": ["/GRADE"]
"ids": [333, 334]
}
]
}
Note: MwxSoup models can sometimes contain detached mesh geometries that are generated at import time, along with triangle soups. However, currently, the above json does not support detached mesh geometries, so it's not possible to include these elements in the tag attribute for an MwxSoup model.
Filtering behavior with other fields
The following example shows how jsonList filtering combines with other parameters (such as includeMWX, includeRFC) respecting an “and” logic.
Example
Given an MWX containing a model named "scene02|new_jersey_01" and a jsonList = {"models": [{"name": "scene02","tags": ["new_jersey_01"]}]}
-
With includeMWX = true and listMode = include: the model can be picked.
-
With includeMWX = false and listMode = include: the model cannot be picked.
-
With includeMWX = true and listMode = exclude: the model cannot be picked.
-
With includeMWX = false and listMode = exclude: the model cannot be picked.
An empty jsonList is ignored, so with jsonList = {}
-
With includeMWX = true: the model can be picked, regardless of listMode.
-
With includeMWX = false: the model cannot be picked, regardless of listMode.
PickingStrategy fields
Field inheritance: NodeBase > PickingStrategy
|
Fields |
Type |
Use |
Default value |
Description |
|---|---|---|---|---|
|
backfaceCulling |
sbool |
Optional |
true |
Enables or disables the picking for objects whose back face cull. |
|
clipPlanes |
sbool |
Optional |
true |
Enables or disables the picking for objects present in clip planes. Not supported by SGL (SGL objects will always be picked). |
|
completelyInsideRect |
sbool |
Optional |
false |
Enables or disables the picking for objects are inside the rect. Works only with area picking. Not supported by SGL (SGL objects partially inside rect are included anyway). |
|
ignoreOpaque |
sbool |
Optional |
false |
Enables or disable picking for opaque. |
|
ignoreTransparent |
sbool |
Optional |
false |
Enables or disable picking for transparent objects. |
|
includeCmesh |
sbool |
Optional |
true |
Enables or disable picking for CMesh models. |
|
includeEdges |
sbool |
Optional |
true |
Enables edges feature picking. |
|
includeMWX |
sbool |
Optional |
true |
Enables or disable picking for MWX models. |
|
includeMwxSoup |
sbool |
Optional |
true |
Enables or disable picking for MWX Soup models. |
|
includePOPMesh |
sbool |
Optional |
true |
Enables or disable picking for POPMesh models. |
|
includeRFC |
sbool |
Optional |
true |
Enables or disable picking for RFC models. |
|
includeSPC |
sbool |
Optional |
true |
Enables or disable picking for SPC models. |
|
includeSGL |
sbool |
Optional |
true |
Enables or disable picking for SGL models. |
|
includeTriangles |
sbool |
Optional |
true |
Enables triangles feature picking. |
|
includeVertexes |
sbool |
Optional |
true |
Enables vertexes feature picking. |
|
jsonList |
sjson |
Optional |
{} |
List of objects in the json format for the filter. |
|
listMode |
senum |
Optional |
not_used |
Mode to include or exclude or not_use the filter. |