Indeed the VTK online doxygen is very useful. Is there any way in python of getting the name of the class of the object I&#39;m dealing with ? That way I can find the class documentation in the Doxygen ?<br>Thanks again,<br>
Jacques<br><br><div class="gmail_quote">2008/11/13 David E DeMarle <span dir="ltr">&lt;<a href="mailto:dave.demarle@kitware.com">dave.demarle@kitware.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
There is probably a python way to get help more easily, but one way to<br>
figure it out is to look at the VTK doxygen documentation for<br>
vtkDataObject and it&#39;s subclasses, and realize that all (or almost<br>
all) of the public C++ methods are wrapped into python and therefore<br>
available to use.<br>
<br>
cheers,<br>
Dave<br>
<div><div></div><div class="Wj3C7c"><br>
On 11/13/08, Jacques Papper &lt;<a href="mailto:jacques.papper@gmail.com">jacques.papper@gmail.com</a>&gt; wrote:<br>
&gt; Thanks a lot Utkarsh !<br>
&gt;<br>
&gt; It works. I was almost there, but I couldn&#39;t figure out a way to expose the<br>
&gt; available interface for each object!<br>
&gt; Where am I supposed to look to figure out that CopyStructure(), and<br>
&gt; NewInstance(), SetBlock() etc ... are functions available ?<br>
&gt;<br>
&gt; Kind regards,<br>
&gt; Jacques Papper<br>
&gt;<br>
&gt;<br>
&gt; 2008/11/13 Utkarsh Ayachit &lt;<a href="mailto:utkarsh.ayachit@kitware.com">utkarsh.ayachit@kitware.com</a>&gt;<br>
&gt;<br>
&gt; &gt; Jacques,<br>
&gt; &gt;<br>
&gt; &gt; Couple of ways to solve your problem:<br>
&gt; &gt;<br>
&gt; &gt; * Solution One:<br>
&gt; &gt; If you don&#39;t want to deal with the fact that your data is a<br>
&gt; vtkMultiblockDataSet, apply the &quot;Merge Blocks&quot; filter after each of the<br>
&gt; &quot;Extract Block&quot; filters and then connect to the &quot;Programmable Filter&quot; to to<br>
&gt; the output from the &quot;Merge Blocks&quot; and then your current script should work<br>
&gt; just fine. The &quot;Merge Blocks&quot; will convert the vtkMultiBlockDataSet to a<br>
&gt; vtkUnstructuredGrid on which your script is applicable.<br>
&gt; &gt;<br>
&gt; &gt; * Solution Two:<br>
&gt; &gt;<br>
&gt; &gt; input0 = self.GetInputDataObject(0,0)<br>
&gt; &gt; input1 = self.GetInputDataObject(0,1)<br>
&gt; &gt; output = self.GetOutputDataObject(0)<br>
&gt; &gt;<br>
&gt; &gt; input0Block0 = input0.GetBlock(0)<br>
&gt; &gt; input1Block0 = input1.GetBlock(0)<br>
&gt; &gt;<br>
&gt; &gt; output.CopyStructure(input0)<br>
&gt; &gt; outputBlock0 = input0Block0.NewInstance()<br>
&gt; &gt; outputBlock0.CopyStructure(input0Block0)<br>
&gt; &gt; output.SetBlock(0, outputBlock0)<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; outputBlock0.GetPointData().AddArray(input0Block0.GetPointData().GetArray(&quot;pressure1&quot;))<br>
&gt; &gt;<br>
&gt; outputBlock0.GetPointData().AddArray(input1Block0.GetPointData().GetArray(&quot;pressure2&quot;))<br>
&gt; &gt;<br>
&gt; &gt; The above script will work if you are extracting a single block using the<br>
&gt; Extract Block filter. If you want to merge arrays for all the blocks in the<br>
&gt; input you&#39;ll have to iterate over the datasets in the vtkMultiblockDataset.<br>
&gt; Take a look at<br>
&gt; &gt;<br>
&gt; <a href="http://www.paraview.org/Wiki/Python_Programmable_Filter#Dealing_with_Composite_Datasets" target="_blank">http://www.paraview.org/Wiki/Python_Programmable_Filter#Dealing_with_Composite_Datasets</a><br>
&gt; &gt;<br>
&gt; &gt; Utkarsh<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Jacques Papper wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Here is what I am doing at the moment.<br>
&gt; &gt; &gt; -Load geometry 1<br>
&gt; &gt; &gt; -Extract wing block<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; -Load geometry 2<br>
&gt; &gt; &gt; -Extract wing block<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Then use the resample filter with wing1 as input and wing2 as source<br>
&gt; &gt; &gt; (this works)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The last bit is missing (that is merging the data from wing2 with the<br>
&gt; resampled data)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Jacques<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 2008/11/13 Berk Geveci &lt;<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a><br>
&gt; &lt;mailto:<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>&gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp;Programmable filter can still be made to work. Do the datasets have<br>
&gt; &gt; &gt; &nbsp; &nbsp;multiple parts? I am not sure how resampling would work with multiple<br>
&gt; &gt; &gt; &nbsp; &nbsp;parts. It is impossible to guess which parts map to which parts...<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp;-berk<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp;On Thu, Nov 13, 2008 at 8:28 AM, Jacques Papper<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp;&lt;<a href="mailto:jacques.papper@gmail.com">jacques.papper@gmail.com</a><br>
&gt; &lt;mailto:<a href="mailto:jacques.papper@gmail.com">jacques.papper@gmail.com</a>&gt;&gt; wrote:<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt; They are multi-block datasets from Ensight Reader.<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt; Is there another way of dealing with this then ?<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt; Jacques<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt; 2008/11/13 Berk Geveci &lt;<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a><br>
&gt; &gt; &gt; &nbsp; &nbsp;&lt;mailto:<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>&gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; Are the inputs multi-block datasets by any chance?<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; -berk<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; On Thu, Nov 13, 2008 at 6:03 AM, Jacques Papper<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &lt;<a href="mailto:jacques.papper@gmail.com">jacques.papper@gmail.com</a><br>
&gt; &lt;mailto:<a href="mailto:jacques.papper@gmail.com">jacques.papper@gmail.com</a>&gt;&gt; wrote:<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; Hi Berk,<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; I am trying out your suggestion of merging arrays :<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; input0 = self.GetInputDataObject(0,0)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; input1 = self.GetInputDataObject(0,1)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; output = self.GetOutputDataObject(0)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; output.GetPointData().AddArray(input0.GetPointData().GetArray(&quot;pressure1&quot;))<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; output.GetPointData().AddArray(input1.GetPointData().GetArray(&quot;pressure2&quot;))<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; but I get the following error message :<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; &nbsp; File &quot;&lt;string&gt;&quot;, line 2, in &lt;module&gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; &nbsp; File &quot;&lt;string&gt;&quot;, line 4, in RequestData<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; AttributeError: GetPointData<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; I also tried just using the programmable filter on one source<br>
&gt; &gt; &gt; &nbsp; &nbsp;and with<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; the<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; following code, and &nbsp;I get the same error :<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; input0=self.GetInputDataObject(0,0)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; input0.GetPointData()<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; I am using version 3.4.0<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; _______________________________________________<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; ParaView mailing list<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt; <a href="mailto:ParaView@paraview.org">ParaView@paraview.org</a> &lt;mailto:<a href="mailto:ParaView@paraview.org">ParaView@paraview.org</a>&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt; &gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; ParaView mailing list<br>
&gt; &gt; &gt; <a href="mailto:ParaView@paraview.org">ParaView@paraview.org</a><br>
&gt; &gt; &gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; ParaView mailing list<br>
&gt; <a href="mailto:ParaView@paraview.org">ParaView@paraview.org</a><br>
&gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
</div></div><font color="#888888">--<br>
David E DeMarle<br>
Kitware, Inc.<br>
R&amp;D Engineer<br>
28 Corporate Drive<br>
Clifton Park, NY 12065-8662<br>
Phone: 518-371-3971 x109<br>
</font></blockquote></div><br>