# How the ArraySelectionDomain works in PV

**URL:** https://discourse.paraview.org/t/how-the-arrayselectiondomain-works-in-pv/1847
**Category:** ParaView Support
**Created:** [May 13, 2019, 5:36pm UTC](https://discourse.paraview.org/t/how-the-arrayselectiondomain-works-in-pv/1847 "2019-05-13T17:36:51Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Haocheng\_Liu](https://discourse.paraview.org/user_avatar/discourse.paraview.org/haocheng_liu/32/46_2.png) [@Haocheng\_Liu](https://discourse.paraview.org/u/Haocheng_Liu)
#### Post date: [May 13, 2019, 5:36pm UTC](https://discourse.paraview.org/t/how-the-arrayselectiondomain-works-in-pv/1847/1 "2019-05-13T17:36:51Z")

</div>

Hi, I’m trying to understand how [**ArraySelectionDomain**](https://kitware.github.io/paraview-docs/nightly/cxx/PluginHowto.html) works in PV and what functions I need to implement in my reader so that I can use this property( Drop Down List with Values from Input File). However I cannot find a proper documentation for it nor can I locate the parser code in PV source code. Would you plz point me to some tutorial/ paraview source codes?

For now, I just follow the pattern in the xdmf3 reader and I can just guess what I need to implement.

Thanks!

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [May 14, 2019, 7:41am UTC](https://discourse.paraview.org/t/how-the-arrayselectiondomain-works-in-pv/1847/2 "2019-05-14T07:41:52Z")

</div>

There is an example usage here :  
[https://kitware.github.io/paraview-docs/latest/cxx/PropertyHints.html](https://kitware.github.io/paraview-docs/latest/cxx/PropertyHints.html)

And it is documented here :  
[https://kitware.github.io/paraview-docs/latest/cxx/classvtkSMArraySelectionDomain.html](https://kitware.github.io/paraview-docs/latest/cxx/classvtkSMArraySelectionDomain.html)

vtkSMArraySelectionDomain is a domain that can be for used for properties that allow users to select an array (or actually any string) based on an information\_only property.

The usecase is generally when a reader can, during the RequestInformation pass, recover the available readable array and provide their name in an information\_only prop, then the user select the arrays to read during the RequestData pass.

```auto
      <StringVectorProperty name="PointArrayInfo"
                            information_only="1">
        <ArraySelectionInformationHelper attribute_name="Point" />
      </StringVectorProperty>

      <StringVectorProperty name="PointArrayStatus"
                            command="SetPointArrayStatus"
                            number_of_elements="2"
                            repeat_command="1"
                            number_of_elements_per_command="2"
                            element_types="2 0"
                            information_property="PointArrayInfo"
                            label="Point Arrays">
        <ArraySelectionDomain name="array_list">
          <RequiredProperties>
            <Property name="PointArrayInfo" function="ArrayList" />
          </RequiredProperties>
        </ArraySelectionDomain>
        <Documentation>
          This property contains a list of the point-centered arrays to read.
        </Documentation>
      </StringVectorProperty>

```
