[Paraview] [EXT] Re: Details of XML filter with lists of input arrays

Dennis Conklin dennis_conklin at goodyear.com
Thu Oct 5 14:49:12 EDT 2017


Utkarsh,

Thanks for that information - I have figured it out now.   A few notes for others who are or will in the future follow this subject:

The object of this exercise is to write a Programmable Filter that will put up a list of your Cell or Point variables and allow the user to select which ones to process at runtime.   Say you wrote a Volume-Average filter which calculates volume-averaged values of variables.   Now you can let your user select which variables to average at runtime- this could be helpful in a number of scenarios.

1.  You need to include at least one property in your .py file, otherwise the translator is unhappy - you can delete it from your .xml file, though, if you don't really want it (I did!)

2.  Make a pretty standard xml plugin .py file and run it through the python_filter_generator to turn your python into an xml plugin

3.  The python_filter_generator knows nothing about the variable arrays so it is strictly a manual mod to the .xml file.   In order to illustrate this, I have included both the .xml originally produced by the python_filter_generator (test.xml.orig), and the hand edited version where I implemented the Cell variable list and deleted the property which I included only to make the translator happy (test.xml).  You can tkdiff these to see exactly what changes were made

3.  The original python_filter_generator had a typo of vtkMultiblockDataSet, while this newest revision correctly has vtkMultiBlockDataSet - use the one in your .py file that matches the version of the generator you are using

I have run this test filter on can2.exo,  a good, simple multi-block dataset that is available to everyone.  Screenshots attached

Hopefully this will help the next guy.
Dennis

-----Original Message-----
From: Utkarsh Ayachit [mailto:utkarsh.ayachit at kitware.com] 
Sent: Thursday, October 05, 2017 11:59 AM
To: Dennis Conklin <dennis_conklin at goodyear.com>
Cc: Paraview (paraview at paraview.org) <paraview at paraview.org>
Subject: Re: [EXT] Re: [Paraview] Details of XML filter with lists of input arrays

Dennis,

Here's a example. You need manually modify the XML generated using [1]. I've attached script.xml with my modifications to add a new property for "Arrays".
Also attached a state file that demos this filter (load state after lading the script.xml as plugin).

Hope that helps.
Utkarsh

[1]  `python python_filter_generator.py script.py script.xml`



On Wed, Oct 4, 2017 at 10:11 AM, Utkarsh Ayachit <utkarsh.ayachit at kitware.com> wrote:
> Dennis,
>
> Oops sorry, it slipped my mind you were doing this for programmable 
> filter. It should be doable, but I'll need to dig -- don't remember of 
> the top of my head. I'll put it on my plate to put together a small 
> example for you.
>
> Utkarsh
>
> On Wed, Oct 4, 2017 at 7:59 AM, Dennis Conklin 
> <dennis_conklin at goodyear.com> wrote:
>> Utkarsh,
>>
>> I think you have me confused with a real programmer!   ;- )
>>
>> I am just trying to write a Programmable Filter in python and I'm lost.
>>
>> I want to write an xml plugin that will put up a list of all the cell variables and let the user select from then and then have the names of those variables available in my python script within the Programmable Filter.    I'm hoping this can be similar to plugins I have written with hardcoded variable names where I've used something like:
>>
>> Properties = dict(
>>   Sector_Angle = True)
>>
>>
>> def RequestData():
>>
>>
>>    def process_block(block):
>>       #
>>       #
>>       if (Sector_Angle):
>>
>> Maybe this isn't possible at this low level, but how would I put up the list and then what would I have in my RequestData script that I could branch on.
>>
>> Thanks for your patience.
>>
>> Dennis
>>
>>
>> -----Original Message-----
>> From: Utkarsh Ayachit [mailto:utkarsh.ayachit at kitware.com]
>> Sent: Tuesday, October 03, 2017 4:07 PM
>> To: Dennis Conklin <dennis_conklin at goodyear.com>
>> Cc: Paraview (paraview at paraview.org) <paraview at paraview.org>
>> Subject: Re: [EXT] Re: [Paraview] Details of XML filter with lists of 
>> input arrays
>>
>>> So, after the user chooses some variables, are the chosen variable names in "input_array"?
>>> Or does "input_array"  contain True or False based on which he chose, in which case where are the corresponding names of the variables?
>>
>> When user selects variables, he's doing it on the "VolumeArrays"
>> property. Thus the selection is provided to the VTK filter via calling the command specified on the "VolumeArrays" property. In the case of the ExtractCTHParts files, this is done via `AddVolumeArrayName` and `RemoveVolumeArrayNames` API.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.py
Type: application/octet-stream
Size: 416 bytes
Desc: test.py
URL: <http://public.kitware.com/pipermail/paraview/attachments/20171005/192ab676/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.xml
Type: application/xml
Size: 2573 bytes
Desc: test.xml
URL: <http://public.kitware.com/pipermail/paraview/attachments/20171005/192ab676/attachment.xml>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.xml.orig
Type: application/octet-stream
Size: 2133 bytes
Desc: test.xml.orig
URL: <http://public.kitware.com/pipermail/paraview/attachments/20171005/192ab676/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Pic010.png
Type: image/png
Size: 21502 bytes
Desc: Pic010.png
URL: <http://public.kitware.com/pipermail/paraview/attachments/20171005/192ab676/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Pic009.png
Type: image/png
Size: 46201 bytes
Desc: Pic009.png
URL: <http://public.kitware.com/pipermail/paraview/attachments/20171005/192ab676/attachment-0001.png>


More information about the ParaView mailing list