How to link paraview filter details between views?

Greetings!

When I split a layout into two render views, all filters in the pipeline are separated, e.g. a StreamTracer’s source properties. How can I link those? In Tools → Manage Links… I can only link the views themselves, or some properties, but I cannot find the proper way to link filters from the pipeline.

A wild guess was linking the GeometryRepresentation, but a first quick test did not achieve anything…

Cheers
Tobias

PS: Cross-post at https://stackoverflow.com/q/67200192/321973

1 Like

all filters in the pipeline are separated

What do you mean here ? Can you share a statefile with the problem ?

I mean for each view all filters’ Display properties are “reset” to their default values, e.g. I have a StreamTrace plot set to use a 1mm source sphere around 1|0|0 in my first view. The second view has the StreamTrace not only turned off but also defaults back to a line source. In my case I’d like to have both instances of the StreamTrace use the identical source sphere and keep it synchronized between views when changing settings in one view. Or more simple, an STL file’s opacity is not transfered - which usually does make sense, but I fail to find a property to link if I actually want that to be identical. In the attached file opacity.pvsm (335.1 KB) I just created a Cylinder source and changed it’s opacity to 0.3, whereas in the second view it remains 1.0. Linking their respective GeometryRepresentations doesn’t change this, so I seem to be on the wrong track here - do you have any idea how I could achieve this properly?

The display section is indeed linked to a view, that is why it is reset to default when creating a new view.
The properties section however is related to the current filter and should not change depending on the view. Here is some doc about the Properties Panel.

Also, rendering a dataset can be time consuming in many cases (big dataset, volume rendering, ray tracing etc), that is why nothing is displayed by default when creating a new view.

Linking the representation in your statefile works for me but I need to click on the second view to force a refresh.

Concerning the StreamTracer source switching back to line, it looks strange. Can you share a state file with it ? Or steps to reproduce ? Which version of ParaView are you using ? I cannot reproduce on PV 5.9, nor on 5.8.1

1 Like

Great hint about clicking the other view first, that works fine in this case, thanks! I’ll check if it’s the same for the “proper” case. Concerning StreamTrace filter (not source), is there any integrated source I can use to generate a vector field on which to apply the filter? Alternatively I’d have to attach some vtk files with raw data… However after some brief local testing which seems to work just fine (running PV 5.8.1 on Windows 10) I have another potential culprit though: I usually use pvserver to visualize remote OpenFOAM simulation data. So that might be the problem then and potentially a bug :expressionless:

In the source menu, you have the Fast Uniform Grid that is a regular grid with a vector data (named Swirl).

Great, thanks! Locally that works the way it should. Remotely I have a render in progress, so I’ll check that tomorrow but now I must assume this is a bug in the client-server system…

Remotely using the Fast Uniform Grid and then StreamTrace also works. I did however notice that only changes made to an STL’s opacity after linking the GeometryRepresentations are synchornized (and after clicking the other view again), not sure if that is a bug or a feature. Concerning my original problem of StreamTrace of OpenFOAM data not synchronizing to a sphere etc. seems to have vanished now - my remote pvserver instance crashed after the SSH connection broke up. So maybe this is merely a Heisenbug; I did learn a lot nonetheless, so thank you very much!

Two questions remains though:

  • What is the quickest way to determine a Filter’s GeometryRepresentation-ID? I figured out that I can hover them in the Edit links… Menu, but that’s a rather tedious method if many filters are used
  • Is there a way to start with a cloned/linked view that uses all the same filters and has the GeometryRepresentations linked by default to start with and then unlink/modify the view?

determine a Filter’s GeometryRepresentation-ID

The only way I see is to use the python shell.

  • GetRepresentations() gives you a dict of {(name, id): representation}
  • GetRepresentation() gives you the representation object for the active object in the active view.
    Then with a reverse search you can find the correct name.

start with a cloned/linked view

I think you can create a python script that:

  1. create a second view
  2. Show filters in second view depending on the first view
  3. create Property links accordingly

For first and second point, the python trace can help you.
For the property links, this test from ParaView source may be helpful.