Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ice-dev] Status of the ParaView integration

All,

I'm having a lot of difficulty figuring out how to expose the contents of files in a way that is not file-type specific.

The background:
I have been trying to load data and select the plotted data by using the ParaViewWeb API. Each file read in gets its own sets of properties stored in a file "proxy" and a "representation". Representations contain information about how to draw the contents of the file, the proxies are more interesting because they contain information about what I can actually look at in the file.

The proxies are where things get messy. A proxy contains at least two sections: "ui" and "properties". The ui section is fairly self explanatory and basically lists meta data that could be used to construct widgets. The properties section, on the other hand, lists the values selected in those widgets. What I've been doing is manipulating those properties, which in turn causes the ParaView plot to change. I have attached some extremely simplified examples of the proxy properties, one from an ExodusII file and one from a silo file.

The problem:
Different file types result in proxies with different widgets, different types of widgets, etc. One solution is for the code to know exactly what it needs for each file type (which is dumb). Another option would be to just re-build ParaView's properties window (which appears to just implement the widgets as specified in the UI section), but I'm not terribly fond of that approach either, as it kind of defeats the purpose of having a standardized workbench in the first place. What I'm thinking is the most likely solution is to bypass the ParaViewWeb proxy entirely and query ParaView (via its python API) for a list of the data arrays.

After quite a bit of searching, I still haven't quite figured out how to do this though. But I figured I would let everyone know that's where I got stuck.

Jordan
-- 
Jordan Deyton
Oak Ridge National Laboratory
Telephone: (865) 574-1091
Email: deytonjh@xxxxxxxx
{
    "id": "636",
    "ui": [
        {
            "name": "Generate Object Id Cell Array",
            "advanced": 0,
            "doc": "docs...",
            "type": "int",
            "widget": "checkbox",
            "size": 1
        }
        {
            "values": [
                "var1",
                "var2"
            ],
            "name": "Element Variables",
            "advanced": 0,
            "doc": "more docs...",
            "type": "str",
            "widget": "list-n",
            "size": -1
        }
    ],
    "properties": [
        {
            "id": "636",
            "name": "GenerateObjectIdCellArray",
            "value": 1
        }
        {
            "id": "636",
            "name": "ElementVariables",
            "value": [
                "var1",
                "var2"
            ]
        }
    ]
}
  "ui": [
        {
            "values": ["mesh_1"],
            "name": "Meshes",
            "advanced": 0,
            "doc": "Manually formatted documentation",
            "type": "str",
            "widget": "list-n",
            "size": 2
        },
        {
            "values": [
                "call_array_1",
                "cell_array_2"
            ],
            "name": "Cell Arrays",
            "advanced": 0,
            "doc": "More documentation.",
            "type": "str",
            "widget": "list-n",
            "size": -1
        },
    ],
    "properties": [
        {
            "id": "777",
            "name": "MeshStatus",
            "value": ["mesh_1"]
        }
        {
            "id": "777",
            "name": "CellArrayStatus",
            "value": ["cell_array_2"]
        }
    ]

Back to the top