.. role:: clio-static
   :class: clio-flag clio-flag-static


#############
SelectionItem
#############

.. js:class:: wv.Selection.SelectionItem

   
   Index
   =====
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~static wv.Selection.SelectionItem.create`
   * :js:meth:`~wv.Selection.SelectionItem.equals`
   * :js:meth:`~wv.Selection.SelectionItem.getFaceEntity`
   * :js:meth:`~wv.Selection.SelectionItem.getInclusionKey`
   * :js:meth:`~wv.Selection.SelectionItem.getLineEntity`
   * :js:meth:`~wv.Selection.SelectionItem.getNodeId`
   * :js:meth:`~wv.Selection.SelectionItem.getPointEntity`
   * :js:meth:`~wv.Selection.SelectionItem.getPosition`
   * :js:meth:`~wv.Selection.SelectionItem.getSelectionType`
   * :js:meth:`~wv.Selection.SelectionItem.isEntitySelection`
   * :js:meth:`~wv.Selection.SelectionItem.isFaceSelection`
   * :js:meth:`~wv.Selection.SelectionItem.isLineSelection`
   * :js:meth:`~wv.Selection.SelectionItem.isNodeEntitySelection`
   * :js:meth:`~wv.Selection.SelectionItem.isNodeSelection`
   * :js:meth:`~wv.Selection.SelectionItem.isPointSelection`
   * :js:meth:`~wv.Selection.SelectionItem.overlayIndex`
   * :js:meth:`~wv.Selection.SelectionItem.toJson`
   
   



.. rst-class:: kind-group kind-methods

.. rubric:: Methods
   :class: kind-group-title


.. js:method:: static wv.Selection.SelectionItem.create

      .. rst-class:: clio-flags
      
         :clio-static:`static`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : *number*\ , **inclusionKey**\ : (*undefined* | *None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ , **lineEntity**\ : (*None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ ), **pointEntity**\ : (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )): :js:class:`FaceSelectionItem <wv.Selection.FaceSelectionItem>`
      
      Create a new [[FaceSelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : *number*
      
         **inclusionKey**\ : (*undefined* \| *None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : :js:class:`FaceEntity <wv.Selection.FaceEntity>`
      
         **lineEntity**\ : (*None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
         **pointEntity**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
      **Returns**\ : :js:class:`FaceSelectionItem <wv.Selection.FaceSelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : *number*\ , **inclusionKey**\ : (*undefined* | *None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : (*undefined* | *None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ ), **lineEntity**\ : :js:class:`LineEntity <wv.Selection.LineEntity>`\ , **pointEntity**\ : (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )): :js:class:`LineSelectionItem <wv.Selection.LineSelectionItem>`
      
      Create a new [[LineSelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : *number*
      
         **inclusionKey**\ : (*undefined* \| *None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : (*undefined* \| *None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
         **lineEntity**\ : :js:class:`LineEntity <wv.Selection.LineEntity>`
      
         **pointEntity**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
      **Returns**\ : :js:class:`LineSelectionItem <wv.Selection.LineSelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : *number*\ , **inclusionKey**\ : (*undefined* | *None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : (*undefined* | *None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ ), **lineEntity**\ : (*undefined* | *None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ ), **pointEntity**\ : :js:class:`PointEntity <wv.Selection.PointEntity>`\ ): :js:class:`PointSelectionItem <wv.Selection.PointSelectionItem>`
      
      Create a new [[PointSelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : *number*
      
         **inclusionKey**\ : (*undefined* \| *None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : (*undefined* \| *None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
         **lineEntity**\ : (*undefined* \| *None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
         **pointEntity**\ : :js:class:`PointEntity <wv.Selection.PointEntity>`
      
      
      **Returns**\ : :js:class:`PointSelectionItem <wv.Selection.PointSelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : (*undefined* | *None* | *number*\ ), **inclusionKey**\ : (*undefined* | *None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ , **lineEntity**\ : (*None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ ), **pointEntity**\ : (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )): :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      Create a new [[EntitySelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : (*undefined* \| *None* \| *number*\ )
      
         **inclusionKey**\ : (*undefined* \| *None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : :js:class:`FaceEntity <wv.Selection.FaceEntity>`
      
         **lineEntity**\ : (*None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
         **pointEntity**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
      **Returns**\ : :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : (*undefined* | *None* | *number*\ ), **inclusionKey**\ : (*undefined* | *None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : (*undefined* | *None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ ), **lineEntity**\ : :js:class:`LineEntity <wv.Selection.LineEntity>`\ , **pointEntity**\ : (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )): :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      Create a new [[EntitySelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : (*undefined* \| *None* \| *number*\ )
      
         **inclusionKey**\ : (*undefined* \| *None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : (*undefined* \| *None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
         **lineEntity**\ : :js:class:`LineEntity <wv.Selection.LineEntity>`
      
         **pointEntity**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
      **Returns**\ : :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : (*undefined* | *None* | *number*\ ), **inclusionKey**\ : (*undefined* | *None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : (*undefined* | *None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ ), **lineEntity**\ : (*undefined* | *None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ ), **pointEntity**\ : :js:class:`PointEntity <wv.Selection.PointEntity>`\ ): :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      Create a new [[EntitySelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : (*undefined* \| *None* \| *number*\ )
      
         **inclusionKey**\ : (*undefined* \| *None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : (*undefined* \| *None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
         **lineEntity**\ : (*undefined* \| *None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
         **pointEntity**\ : :js:class:`PointEntity <wv.Selection.PointEntity>`
      
      
      **Returns**\ : :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : *number*\ , **inclusionKey**\ : (*None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : (*None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ ), **lineEntity**\ : (*None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ ), **pointEntity**\ : (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )): :js:class:`NodeSelectionItem <wv.Selection.NodeSelectionItem>`
      
      Create a new [[NodeSelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : *number*
      
         **inclusionKey**\ : (*None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : (*None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
         **lineEntity**\ : (*None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
         **pointEntity**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
      **Returns**\ : :js:class:`NodeSelectionItem <wv.Selection.NodeSelectionItem>`
      
      .. rst-class:: sig-pretty-signature
      
         | create(**nodeId**\ : (*None* | *number*\ ), **inclusionKey**\ : (*None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ ), **faceEntity**\ : (*None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ ), **lineEntity**\ : (*None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ ), **pointEntity**\ : (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )): :js:class:`SelectionItem <wv.Selection.SelectionItem>`
      
      Create a new [[SelectionItem]].
      
      **Parameters**
      
      
         **nodeId**\ : (*None* \| *number*\ )
      
         **inclusionKey**\ : (*None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
         **faceEntity**\ : (*None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
         **lineEntity**\ : (*None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
         **pointEntity**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
      **Returns**\ : :js:class:`SelectionItem <wv.Selection.SelectionItem>`
      



.. js:method:: wv.Selection.SelectionItem.equals

      .. rst-class:: sig-pretty-signature
      
         | equals(**selectionItem**\ : :js:class:`SelectionItem <wv.Selection.SelectionItem>`\ ): *boolean*
      
      Determines if two selection items are equal.
      
      **Parameters**
      
      
         **selectionItem**\ : :js:class:`SelectionItem <wv.Selection.SelectionItem>`
      
      
            The selection item to test against.
      
      
      
      **Returns**\ : *boolean*
      
      
         whether or not the two items are equal.
      
      



.. js:method:: wv.Selection.SelectionItem.getFaceEntity

      .. rst-class:: sig-pretty-signature
      
         | getFaceEntity(): (*None* | :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
      Gets the face entity for this selection.
      
      **Returns**\ : (*None* \| :js:class:`FaceEntity <wv.Selection.FaceEntity>`\ )
      
      
         the face entity if one was selected, otherwise null
      
      



.. js:method:: wv.Selection.SelectionItem.getInclusionKey

      .. rst-class:: sig-pretty-signature
      
         | getInclusionKey(): (*None* | :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
      Gets the include id for this selection.
      
      **Returns**\ : (*None* \| :js:data:`InclusionKey <wv.Sc.InclusionKey>`\ )
      
      
         the inclusion key associated with this selection item
      
      



.. js:method:: wv.Selection.SelectionItem.getLineEntity

      .. rst-class:: sig-pretty-signature
      
         | getLineEntity(): (*None* | :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
      Gets the line entity for this selection.
      
      **Returns**\ : (*None* \| :js:class:`LineEntity <wv.Selection.LineEntity>`\ )
      
      
         the line entity if one was selected, otherwise null
      
      



.. js:method:: wv.Selection.SelectionItem.getNodeId

      .. rst-class:: sig-pretty-signature
      
         | getNodeId(): *number*
      
      Gets the part id for this selection.
      
      **Returns**\ : *number*
      
      
         the part id associated with this selection item
      
      



.. js:method:: wv.Selection.SelectionItem.getPointEntity

      .. rst-class:: sig-pretty-signature
      
         | getPointEntity(): (*None* | :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      Gets the point entity for this selection.
      
      **Returns**\ : (*None* \| :js:class:`PointEntity <wv.Selection.PointEntity>`\ )
      
      
         the point entity if one was selected, otherwise null
      
      



.. js:method:: wv.Selection.SelectionItem.getPosition

      .. rst-class:: sig-pretty-signature
      
         | getPosition(): (*None* | :js:class:`Point3 <wv.Point3>`\ )
      
      Convenience method for getting the world space position of the selection point. [[SelectionItem]]s with a type of [[SelectionType.Part]] will not have a position and null will be returned.
      
      **Returns**\ : (*None* \| :js:class:`Point3 <wv.Point3>`\ )
      
      
         World space position of the selection point if it can be determined.
      
      



.. js:method:: wv.Selection.SelectionItem.getSelectionType

      .. rst-class:: sig-pretty-signature
      
         | getSelectionType(): :js:data:`SelectionType <wv.SelectionType>`
      
      **Returns**\ : :js:data:`SelectionType <wv.SelectionType>`
      



.. js:method:: wv.Selection.SelectionItem.isEntitySelection

      .. rst-class:: sig-pretty-signature
      
         | isEntitySelection(): this *is* :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      **Returns**\ : this *is* :js:class:`EntitySelectionItem <wv.Selection.EntitySelectionItem>`
      
      
         true if the object has the fields required for an [[EntitySelectionItem]]. This function can be used as a TypeScript `type guard <https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards>`__\ .
      
      



.. js:method:: wv.Selection.SelectionItem.isFaceSelection

      .. rst-class:: sig-pretty-signature
      
         | isFaceSelection(): this *is* :js:class:`FaceSelectionItem <wv.Selection.FaceSelectionItem>`
      
      **Returns**\ : this *is* :js:class:`FaceSelectionItem <wv.Selection.FaceSelectionItem>`
      
      
         true if the object has the fields required for a [[FaceSelectionItem]]. This function can be used as a TypeScript `type guard <https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards>`__\ .
      
      



.. js:method:: wv.Selection.SelectionItem.isLineSelection

      .. rst-class:: sig-pretty-signature
      
         | isLineSelection(): this *is* :js:class:`LineSelectionItem <wv.Selection.LineSelectionItem>`
      
      **Returns**\ : this *is* :js:class:`LineSelectionItem <wv.Selection.LineSelectionItem>`
      
      
         true if the object has the fields required for a [[LineSelectionItem]]. This function can be used as a TypeScript `type guard <https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards>`__\ .
      
      



.. js:method:: wv.Selection.SelectionItem.isNodeEntitySelection

      .. rst-class:: sig-pretty-signature
      
         | isNodeEntitySelection(): this *is* :js:class:`NodeEntitySelectionItem <wv.Selection.NodeEntitySelectionItem>`
      
      **Returns**\ : this *is* :js:class:`NodeEntitySelectionItem <wv.Selection.NodeEntitySelectionItem>`
      
      
         true if the object has the fields required for a [[NodeEntitySelectionItem]]. This function can be used as a TypeScript `type guard <https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards>`__\ .
      
      



.. js:method:: wv.Selection.SelectionItem.isNodeSelection

      .. rst-class:: sig-pretty-signature
      
         | isNodeSelection(): this *is* :js:class:`NodeSelectionItem <wv.Selection.NodeSelectionItem>`
      
      **Returns**\ : this *is* :js:class:`NodeSelectionItem <wv.Selection.NodeSelectionItem>`
      
      
         true if the object has the fields required for a [[NodeSelectionItem]]. This function can be used as a TypeScript `type guard <https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards>`__\ .
      
      



.. js:method:: wv.Selection.SelectionItem.isPointSelection

      .. rst-class:: sig-pretty-signature
      
         | isPointSelection(): this *is* :js:class:`PointSelectionItem <wv.Selection.PointSelectionItem>`
      
      **Returns**\ : this *is* :js:class:`PointSelectionItem <wv.Selection.PointSelectionItem>`
      
      
         true if the object has the fields required for a [[PointSelectionItem]]. This function can be used as a TypeScript `type guard <https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards>`__\ .
      
      



.. js:method:: wv.Selection.SelectionItem.overlayIndex

      .. rst-class:: sig-pretty-signature
      
         | overlayIndex(): (*None* | *number*\ )
      
      Gets the overlay index for this selection.
      
      **Returns**\ : (*None* \| *number*\ )
      
      
         the overlay index associated with this selection item
      
      



.. js:method:: wv.Selection.SelectionItem.toJson

      .. rst-class:: sig-pretty-signature
      
         | toJson(): *object*
      
      Creates an object ready for JSON serialization.
      
      **Returns**\ : *object*
      
      
         The prepared object.
      
      




