<div dir="ltr">David your solution is working great. I am using C++/CLI (.NET) so I am going to post my code in case anyone else needs this functionality with .NET strings.<div><br></div><div><div><b>#include <msclr\marshal_cppstd.h></b></div><div><b><br></b></div><div><b>using namespace msclr::interop;     </b></div><div><b><br></b></div><div><b>String^ idnstr = cap->Identifier; </b></div><div><b><br></b></div><div><b>std::string idstr = marshal_as<std::string>(idnstr);</b></div><div><b><br></b></div><div><b>vtkSmartPointer<vtkStringArray> idarray = vtkSmartPointer<vtkStringArray>::New();</b></div><div><b>idarray->SetName("CapId");</b></div><div><b>idarray->InsertNextValue(idstr.c_str());</b></div><div><b><br></b></div><div><b>polyData->GetFieldData()->AddArray(idarray);</b></div></div><div><b><br></b></div><div>Here is the code to retrieve:</div><div><br></div><div><div><b>int* clickPos = m_iren->GetEventPosition();</b></div><div><b><br></b></div><div><b>// Pick from this location.</b></div><div><b>vtkSmartPointer<vtkPropPicker>  picker = vtkSmartPointer<vtkPropPicker>::New();</b></div><div><b>picker->Pick(clickPos[0], clickPos[1], 0, m_caprenderer->GetRenderer());</b></div><div><b><br></b></div><div><b><br></b></div><div><b>if (picker->GetActor() != NULL)</b></div><div><b>{</b></div><div><b>   vtkStringArray* strarr = reinterpret_cast<vtkStringArray*>(picker->GetActor()->GetMapper()->GetInput()->GetFieldData()->GetAbstractArray("CapId"));</b></div><div><b>   String^ capid = gcnew String(strarr->GetValue(0));</b></div><div><b>   System::Diagnostics::Debug::WriteLine("Cap ID from pick: " + capid);</b></div><div><b>}</b></div></div><div><b><br></b></div><div>Not sure if there is a better way to retrieve the array than "picker->GetActor()->GetMapper()->GetInput()->GetFieldData()->GetAbstractArray("CapId")" but it works.</div><div><br></div><div>Thanks</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 27, 2017 at 5:39 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yes, you can store any kind of array in the FieldData, and you can give each array any name that you want.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 27, 2017 at 2:49 PM, Donny Zimmerman <span dir="ltr"><<a href="mailto:zmanvortex@gmail.com" target="_blank">zmanvortex@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks David! That was exactly what I was looking for. Can I store a string array into FieldData?</div><div class="m_3354293881406172022HOEnZb"><div class="m_3354293881406172022h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 27, 2017 at 3:17 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Donny,<div><br></div><div>The usual way of doing this is by adding FieldData arrays to the VTK data objects:</div><div><a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/FieldData" target="_blank">http://www.vtk.org/Wiki/VTK/Ex<wbr>amples/Cxx/PolyData/FieldData</a><br></div><div><br></div><div>The field data can be retrieved from the data object during a pick.</div><span class="m_3354293881406172022m_4148130392146353448HOEnZb"><font color="#888888"><div><br></div><div> - David</div></font></span><div><div class="m_3354293881406172022m_4148130392146353448h5"><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 27, 2017 at 1:56 PM, Donny Zimmerman <span dir="ltr"><<a href="mailto:zmanvortex@gmail.com" target="_blank">zmanvortex@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have tried asking this question before without response so i am going to try to explain one of my use cases in hopes of clarifying the question.<div><br></div><div>I have vtkactors that are polyline and/or polygon objects that I am rendering. These polyline/polygons represent National Weather Service watch and warning areas. I would like to allow the user to pick a polygon and I will pop up a window with the watch/warning information text. I need a way to store some kind of ID with the actor so that when it is picked I am able to look up the correct informative text from my database. I am struggling with finding a way to store some kind of metadata with the vtkactor that can be referenced when picked. Any help would be appreciated.</div><div><br></div><div>Thanks.</div></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>