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:[email protected]] 
Sent: Thursday, October 05, 2017 11:59 AM
To: Dennis Conklin <[email protected]>
Cc: Paraview ([email protected]) <[email protected]>
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 <[email protected]> 
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 
> <[email protected]> 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:[email protected]]
>> Sent: Tuesday, October 03, 2017 4:07 PM
>> To: Dennis Conklin <[email protected]>
>> Cc: Paraview ([email protected]) <[email protected]>
>> 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.

Attachment: test.py
Description: test.py

Attachment: test.xml
Description: test.xml

Attachment: test.xml.orig
Description: test.xml.orig

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Search the list archives at: http://markmail.org/search/?q=ParaView

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview

Reply via email to