[Paraview] unknown properties returned by ListProperties?

Cory Quammen cory.quammen at kitware.com
Tue Mar 20 01:12:15 EDT 2018


Roman,

Looking at your original problem with the error:


   File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
line 375, in SetPropertyWithName
     prop.SetData(arg)
   File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
line 1296, in SetData
     self.SMProperty.AddProxy(value_proxy)
TypeError: AddProxy argument 1: method requires a VTK object


You are hitting this when attempting to set the DataAxesGrid, which is a
ProxyProperty. In your dictionary, this entry has value 'None', but it
looks like setting a property to value 'None' is not handled correctly in
servermanager.py. As a workaround, I suggest filtering out properties from
your dictionary that have 'None' as a value, i.e., do not add those
property values to your dictionary.

HTH,
Cory

On Mon, Mar 19, 2018 at 12:12 PM, Grothausmann, Roman Dr. <
grothausmann.roman at mh-hannover.de> wrote:

> Hi Cory,
>
>
> Trying to find out what causes the former problems, I inserted a line that
> just sets the property that got collected so far:
> https://github.com/romangrothausmann/ParaView_scripts/
> commit/b8058f774535398da3767048219df12d6354e6c5#diff-2804420
> 278bfff084788b82c715c452eR59
> It already aborts on the first property encountered (ForceUseCache):
>
> <paraview.servermanager.GeometryRepresentation object at 0x7f7b591fc250>
> ForceUseCache 0
> Traceback (most recent call last):
>   File "/net/home/paraview/scripts/pvsm-multi.py", line 91, in <module>
>     main()
>   File "/net/home/paraview/scripts/pvsm-multi.py", line 59, in main
>     pvs.SetProperties(repr, **d)
>   File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/simple.py",
> line 567, in SetProperties
>     raise AttributeError("object has no property %s" % param)
> AttributeError: object has no property ForceUseCache
>
> Is ListProperties() returning properties that are not part of the specific
> object that is calling ListProperties()?
>
> Many thanks for any help or hints,
> Roman
>
> On 21/12/17 16:06, Grothausmann, Roman Dr. wrote:
>
>> Hi Cory,
>>
>> On 06/12/17 23:06, Cory Quammen wrote:
>>
>>> Sorry I failed to follow up. Did you find a solution to this problem?
>>>
>>
>> Many thanks for your reply. No, and I'm still stuck. I tried Your
>> suggestion to remove [0] (https://github.com/romangroth
>> ausmann/ParaView_scripts/commit/e40d1016d698ee363500bb9bf04f29add89b99dd),
>> which changed the reported error from:
>>
>>    File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>> line 375, in SetPropertyWithName
>>      prop.SetData(arg)
>>    File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>> line 803, in SetData
>>      raise RuntimeError("This property requires %d values." %
>> self.GetNumberOfElements())
>> RuntimeError: This property requires 3 values.
>>
>> to:
>>
>>    File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>> line 375, in SetPropertyWithName
>>      prop.SetData(arg)
>>    File "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>> line 1296, in SetData
>>      self.SMProperty.AddProxy(value_proxy)
>> TypeError: AddProxy argument 1: method requires a VTK object
>>
>> Any ideas on this?
>> Would You say it is a general problem in the py-code or could it be
>> caused by the content of the PVSMs I'm trying to combine?
>>
>> Many thanks for looking into this.
>> Roman
>>
>>
>>> This line in your script looks funny to me:
>>>
>>> d[props] = pvs.GetProperty(repr, props[0])
>>>
>>> Shouldn't props[0] just be props?
>>>
>>> Thanks,
>>> Cory
>>>
>>> On Fri, Nov 10, 2017 at 10:28 AM, Grothausmann, Roman Dr.
>>> <grothausmann.roman at mh-hannover.de> wrote:
>>>
>>>> Dear Cory,
>>>>
>>>> On 15/09/17 15:27, Grothausmann, Roman Dr. wrote:
>>>>
>>>>>
>>>>> On 15/09/17 15:14, Cory Quammen wrote:
>>>>>
>>>>>>
>>>>>> Put a ** in front of reppro[i], e.g.,
>>>>>>
>>>>>> pvs.SetProperties(repr, **reppro[i])
>>>>>>
>>>>>
>>>>> Hm, I now get:
>>>>> TypeError: SetProperties() argument after ** must be a mapping, not
>>>>> list
>>>>> Do I have to store the dict of object properties in another dict
>>>>> instead
>>>>> of a list?
>>>>>
>>>>
>>>>
>>>> With a dict of dicts
>>>> https://github.com/romangrothausmann/ParaView_scripts/
>>>> commit/3b309cc603433f02afc3e50656bd99f8b7cd0aa8#diff-2804420
>>>> 278bfff084788b82c715c452e
>>>> I get:
>>>>
>>>>    File "/net/home/grothama/paraview/scripts/pvsm-multi.py", line 64,
>>>> in main
>>>>      pvs.SetProperties(repr, **reppro[i]);
>>>>    File
>>>> "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/para
>>>> view/simple.py",
>>>> line 568, in SetProperties
>>>>      setattr(proxy, param, params[param])
>>>>    File
>>>> "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>>>>
>>>> line 317, in __setattr__
>>>>      setter(self, value)
>>>>    File
>>>> "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>>>>
>>>> line 2528, in setProperty
>>>>      return self.SetPropertyWithName(propName, value)
>>>>    File
>>>> "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>>>>
>>>> line 375, in SetPropertyWithName
>>>>      prop.SetData(arg)
>>>>    File
>>>> "/opt/paraview-5.3.0_GL1/lib/paraview-5.3/site-packages/paraview/servermanager.py",
>>>>
>>>> line 803, in SetData
>>>>      raise RuntimeError("This property requires %d values." %
>>>> self.GetNumberOfElements())
>>>> RuntimeError: This property requires 3 values.
>>>>
>>>> Any ideas what could still be wrong?
>>>>
>>>>
>>>> On 07/09/17 23:37, Cory Quammen wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Hi Roman,
>>>>>>>>
>>>>>>>> It turns out ParaView was not designed for this use case because of
>>>>>>>> certain difficulties discussed here:
>>>>>>>>
>>>>>>>> https://gitlab.kitware.com/paraview/paraview/issues/17442
>>>>>>>>
>>>>>>>> In your Python script, you could manually cash all the properties of
>>>>>>>> the existing representations and restore them after loading the most
>>>>>>>> recent state file.
>>>>>>>>
>>>>>>>> The functions
>>>>>>>>
>>>>>>>> reprs = GetRepresentations()
>>>>>>>> repr = reprs.values()[0]
>>>>>>>> props = repr.ListProperties()
>>>>>>>> GetProperty(repr, props[0])
>>>>>>>>
>>>>>>>> would be helpful for this.
>>>>>>>>
>>>>>>>> Cory
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Sep 4, 2017 at 8:42 AM, Grothausmann, Roman Dr.
>>>>>>>> <grothausmann.roman at mh-hannover.de> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Dear mailing list members,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> It seems that PV (and paraview.simple.LoadState) by default hides
>>>>>>>>> already
>>>>>>>>> loaded objects (and resets e.g. their coloring) when another
>>>>>>>>> state-file
>>>>>>>>> is
>>>>>>>>> loaded.
>>>>>>>>> Is there a way to load multiple state-files after one another
>>>>>>>>> without
>>>>>>>>> hiding
>>>>>>>>> and resetting already existent objects? I.e. a way to concatenate
>>>>>>>>> multiple
>>>>>>>>> state-files and leave their objects in the state as they got loaded
>>>>>>>>> (e.g.
>>>>>>>>> colored, hidden/visible)?
>>>>>>>>> I do understand that loading a new state-file will reset the
>>>>>>>>> camera,
>>>>>>>>> but
>>>>>>>>> not
>>>>>>>>> the rest.
>>>>>>>>> Here's my initial attempt to achieve this with pvpython:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/romangrothausmann/ParaView_scripts/blob/9
>>>>>>>>> 0eb4ca8499070bed941d50b89ebea82fd6a9e23/pvsm-multi.py
>>>>>>>>>
>>>>>>>>> Any help or hints are very much appreciated
>>>>>>>>> Roman
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Dr. Roman Grothausmann
>>>>>>>>>
>>>>>>>>> Tomographie und Digitale Bildverarbeitung
>>>>>>>>> Tomography and Digital Image Analysis
>>>>>>>>>
>>>>>>>>> Medizinische Hochschule Hannover
>>>>>>>>> Institut für Funktionelle und Angewandte Anatomie
>>>>>>>>> OE 4120, Carl-Neuberg-Str. 1, 30625 Hannover, Deutschland
>>>>>>>>>
>>>>>>>>> Tel. +49 511 532-2900
>>>>>>>>> grothausmann.roman at mh-hannover.de
>>>>>>>>> http://www.mh-hannover.de/anatomie.html
>>>>>>>>> _______________________________________________
>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> Dr. Roman Grothausmann
>>>>>>>
>>>>>>> Tomographie und Digitale Bildverarbeitung
>>>>>>> Tomography and Digital Image Analysis
>>>>>>>
>>>>>>> Medizinische Hochschule Hannover
>>>>>>> Institut für Funktionelle und Angewandte Anatomie
>>>>>>> OE 4120, Carl-Neuberg-Str. 1, 30625 Hannover, Deutschland
>>>>>>>
>>>>>>> Tel. +49 511 532-2900
>>>>>>> grothausmann.roman at mh-hannover.de
>>>>>>> http://www.mh-hannover.de/anatomie.html
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>> --
>>>> Dr. Roman Grothausmann
>>>>
>>>> Tomographie und Digitale Bildverarbeitung
>>>> Tomography and Digital Image Analysis
>>>>
>>>> Medizinische Hochschule Hannover
>>>> Institut für Funktionelle und Angewandte Anatomie
>>>> OE 4120, Carl-Neuberg-Str. 1, 30625 Hannover, Deutschland
>>>>
>>>> Tel. +49 511 532-2900
>>>> grothausmann.roman at mh-hannover.de
>>>> http://www.mh-hannover.de/anatomie.html
>>>>
>>>
>>>
>>>
>>>
>>
> --
> Dr. Roman Grothausmann
>
> Tomographie und Digitale Bildverarbeitung
> Tomography and Digital Image Analysis
>
> Medizinische Hochschule Hannover
> Institut für Funktionelle und Angewandte Anatomie
> OE 4120, Carl-Neuberg-Str. 1, 30625 Hannover, Deutschland
>
> Tel. +49 511 532-2900
> grothausmann.roman at mh-hannover.de
> http://www.mh-hannover.de/anatomie.html
>



-- 
Cory Quammen
Staff R&D Engineer
Kitware, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/paraview/attachments/20180320/7e670f68/attachment.html>


More information about the ParaView mailing list