.. role:: clio-optional
   :class: clio-flag clio-flag-optional


##########
PickConfig
##########

.. js:class:: PickConfig

   Configuration for all pick functions in the View class.
   
   
   Index
   =====
   
   .. rubric:: Constructors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~PickConfig.constructor`
   
   .. rubric:: Properties
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:data:`~PickConfig.bimMask`
   * :js:data:`~PickConfig.enableProximityFaces`
   * :js:data:`~PickConfig.forceEffectiveSceneVisibilityMask`
   * :js:data:`~PickConfig.forceEffectiveVisibilityMask`
   * :js:data:`~PickConfig.ignoreCappingGeometry`
   * :js:data:`~PickConfig.ignoreOverlays`
   * :js:data:`~PickConfig.maxWorldDistance`
   * :js:data:`~PickConfig.oneEntityPerTypePerInstance`
   * :js:data:`~PickConfig.rejectionBitsAll`
   * :js:data:`~PickConfig.rejectionBitsAny`
   * :js:data:`~PickConfig.requiredBitsAll`
   * :js:data:`~PickConfig.requiredBitsAny`
   * :js:data:`~PickConfig.respectDepthRange`
   * :js:data:`~PickConfig.respectVisibility`
   * :js:data:`~PickConfig.restrictLinesAndPointsToSelectedFaceInstances`
   * :js:data:`~PickConfig.restrictToOverlays`
   * :js:data:`~PickConfig.selectionMask`
   
   .. rubric:: Accessors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~PickConfig.allowFaces`
   * :js:func:`~PickConfig.allowLines`
   * :js:func:`~PickConfig.allowPoints`
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~PickConfig.copy`
   
   




Constructors
============

.. js:method:: PickConfig.constructor

   .. rst-class:: sig-pretty-signature
   
      | PickConfig(**selectionMask**\ : :js:data:`~SelectionMask`\ ?): :js:class:`~PickConfig`
   
   **Parameters**
   
      **selectionMask**\ : :js:data:`~SelectionMask` = SelectionMask.Face
   
   
   **Returns**\ : :js:class:`~PickConfig`
   





Properties
==========

.. js:data:: PickConfig.bimMask

   .. rst-class:: clio-flags
   
      :clio-optional:`optional`
   
   .. rst-class:: sig-pretty-signature
   
      | bimMask: :js:data:`BimMask <Sc.BimMask>`
   
   If set, selection will be restricted to geometry of the specified BIM types.
   



.. js:data:: PickConfig.enableProximityFaces

   .. rst-class:: sig-pretty-signature
   
      | enableProximityFaces: *boolean*
   
   If true, faces can be selected by proximity (like lines and points). This option is only relevant for screen selection.
   



.. js:data:: PickConfig.forceEffectiveSceneVisibilityMask

   .. rst-class:: sig-pretty-signature
   
      | forceEffectiveSceneVisibilityMask: :js:data:`~SelectionMask`
   
   For each element type bit in this mask, if the bit is on, then scene visibility is treated as if that element type is visible during selection.
   



.. js:data:: PickConfig.forceEffectiveVisibilityMask

   .. rst-class:: sig-pretty-signature
   
      | forceEffectiveVisibilityMask: :js:data:`~SelectionMask`
   
   For each element type bit in this mask, if the bit is on, then scene visibility and geometry visibility are treated as if that element type is visible during selection.
   



.. js:data:: PickConfig.ignoreCappingGeometry

   .. rst-class:: sig-pretty-signature
   
      | ignoreCappingGeometry: *boolean*
   
   Configures whether or not capping geometry is ignored when computing selection results.
   



.. js:data:: PickConfig.ignoreOverlays

   .. rst-class:: sig-pretty-signature
   
      | ignoreOverlays: *boolean*
   
   If true, selection will not process geometry contained in overlays. This option is only relevant for screen selection.
   



.. js:data:: PickConfig.maxWorldDistance

   .. rst-class:: clio-flags
   
      :clio-optional:`optional`
   
   .. rst-class:: sig-pretty-signature
   
      | maxWorldDistance: *number*
   
   If supplied, this is the maximum distance in world-space along the selection ray that can be used to select any geometry.
   
   If this value is negative, it is ignored.
   
   This parameter is incompatible with line and point selection.
   



.. js:data:: PickConfig.oneEntityPerTypePerInstance

   .. rst-class:: sig-pretty-signature
   
      | oneEntityPerTypePerInstance: *boolean*
   
   If true, then only one entity per entity type can be returned per instance.
   
   For example, consider a cube made from a single mesh instance, where each face is a different face entity and backfaces culling is disabled. If this option is true, then at most one face from the cube can be selected. If false, then multiple faces from the cube can be selected. (This can occur when selecting from the front of the cube and then obtaining the face behind the front face in addition to the front face.)
   



.. js:data:: PickConfig.rejectionBitsAll

   .. rst-class:: clio-flags
   
      :clio-optional:`optional`
   
   .. rst-class:: sig-pretty-signature
   
      | rejectionBitsAll: *number*
   
   (8 bits) If rejectionBitsAll are supplied, a mesh cannot be selected if its selection bits have all the ones supplied.
   



.. js:data:: PickConfig.rejectionBitsAny

   .. rst-class:: clio-flags
   
      :clio-optional:`optional`
   
   .. rst-class:: sig-pretty-signature
   
      | rejectionBitsAny: *number*
   
   (8 bits) If rejectionBitsAny are supplied, a mesh cannot be selected if its selection bits have any of the ones supplied.
   



.. js:data:: PickConfig.requiredBitsAll

   .. rst-class:: clio-flags
   
      :clio-optional:`optional`
   
   .. rst-class:: sig-pretty-signature
   
      | requiredBitsAll: *number*
   
   (8 bits) If requiredBitsAll are supplied, a mesh can only be selected if its selection bits have all the ones supplied.
   



.. js:data:: PickConfig.requiredBitsAny

   .. rst-class:: clio-flags
   
      :clio-optional:`optional`
   
   .. rst-class:: sig-pretty-signature
   
      | requiredBitsAny: *number*
   
   (8 bits) If requiredBitsAny are supplied, a mesh can only be selected if its selection bits have any of the ones supplied.
   



.. js:data:: PickConfig.respectDepthRange

   .. rst-class:: sig-pretty-signature
   
      | respectDepthRange: *boolean*
   
   Configures whether or not depth range is respected when performing a selection. This option is only relevant for screen selection.
   



.. js:data:: PickConfig.respectVisibility

   .. rst-class:: sig-pretty-signature
   
      | respectVisibility: *boolean*
   
   Configures whether or not visibility is respected when performing a selection.
   



.. js:data:: PickConfig.restrictLinesAndPointsToSelectedFaceInstances

   .. rst-class:: sig-pretty-signature
   
      | restrictLinesAndPointsToSelectedFaceInstances: *boolean*
   
   Configures whether or not line and point selection is restricted to instances that get selected by face. This is only a heuristic and may be ignored. This option is only relevant for screen selection.
   



.. js:data:: PickConfig.restrictToOverlays

   .. rst-class:: sig-pretty-signature
   
      | restrictToOverlays: *boolean*
   
   If true, selection is performed only within overlays. This option is only relevant for screen selection.
   



.. js:data:: PickConfig.selectionMask

   .. rst-class:: sig-pretty-signature
   
      | selectionMask: :js:data:`~SelectionMask`
   
   Configures what types of entities are considered for selection.
   





Accessors
=========

.. js:method:: PickConfig.allowFaces

   .. rst-class:: sig-pretty-signature
   
      | *get* allowFaces(): *boolean*
   
   **Returns**\ : *boolean*
   
   .. rst-class:: sig-pretty-signature
   
      | *set* allowFaces(**allow**\ : *boolean*\ ): *void*
   
   **Parameters**
   
      **allow**\ : *boolean*
   
   
   **Returns**\ : *void*
   



.. js:method:: PickConfig.allowLines

   .. rst-class:: sig-pretty-signature
   
      | *get* allowLines(): *boolean*
   
   **Returns**\ : *boolean*
   
   .. rst-class:: sig-pretty-signature
   
      | *set* allowLines(**allow**\ : *boolean*\ ): *void*
   
   **Parameters**
   
      **allow**\ : *boolean*
   
   
   **Returns**\ : *void*
   



.. js:method:: PickConfig.allowPoints

   .. rst-class:: sig-pretty-signature
   
      | *get* allowPoints(): *boolean*
   
   **Returns**\ : *boolean*
   
   .. rst-class:: sig-pretty-signature
   
      | *set* allowPoints(**allow**\ : *boolean*\ ): *void*
   
   **Parameters**
   
      **allow**\ : *boolean*
   
   
   **Returns**\ : *void*
   





Methods
=======

.. js:method:: PickConfig.copy

   .. rst-class:: sig-pretty-signature
   
      | copy(): :js:class:`~PickConfig`
   
   Returns a copy of this [[PickConfig]].
   
   **Returns**\ : :js:class:`~PickConfig`
   





