cancel
Showing results for 
Search instead for 
Did you mean: 

Visual Enterprise 8.0 slowness

0 Kudos

A major issue we’re having with the 8.0 version is slowness in selecting a node and it’s children. If this slowness is resolved, it may remedy the freezing and crashing issue we've been experiencing.

Here’s a sample of the code that selects the nodes children.

void axDeepView_NodesSelectedEvent(object sender, AxExploration3D.IDeepViewEvents_NodesSelectedEvent e)
        {
            //List selected nodes on label.
            SceneObjectList nodes = axDeepView1.Scene.Nodes;

            //Store the node count
            int nodeCount = axDeepView1.Scene.Nodes.Count;

            //Some safety checks to make sure we are in the correct mode...  13 is the index we use to "part" selection as opposed to assembly
            if (e.currentlySelectedNodes.Count == 0 || nodeCount == 0 || Assembly_Button.ImageIndex == 13)
                return;

            //Loop through all our nodes
            for (int iNumNodes = 0; iNumNodes < e.currentlySelectedNodes.Count; ++iNumNodes)
            {
                //Grab the current node and store it
                Node selNode = e.currentlySelectedNodes.GetByIndex(iNumNodes);

                // Get the ultimate parent for the node
                for (selNode = selNode.Parent; selNode.Parent != null && selNode.Parent.Parent != null && selNode.Name != ""; )
                {
                    //Store the highest valid parent
                    selNode = selNode.Parent;
                }
              
                axDeepView1.NodesSelectedEvent -= axDeepView_NodesSelectedEvent;

                SelectChildren(selNode.FirstChild);

                axDeepView1.NodesSelectedEvent += new AxExploration3D.IDeepViewEvents_NodesSelectedEventHandler(axDeepView_NodesSelectedEvent);
            }
        }

        void SelectChildren(Node node)
        {
            if (node != null)
            {
                for (Node sibNode = node; sibNode != null; sibNode = sibNode.NextSibling)
                {
                    if (!sibNode.Selected)
                    {
                        try
                        {
                            sibNode.Selected = true;
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Debug.Print("Error:" + ex.Message);
                        }
                    }
                    SelectChildren(sibNode.FirstChild);
                }
            }
        }

Accepted Solutions (1)

Accepted Solutions (1)

anthony_cassidy
Explorer
0 Kudos

Hi William,

Try using node.SetSelectedRecursively(true/false)

This should make it much quicker.

Regards,

Answers (2)

Answers (2)

0 Kudos

Hi Anthony,

Do we have any additional options to resolve the slowness?

Best Regards,

Bill Tucker

anthony_cassidy
Explorer
0 Kudos

Hi Bill,

Could you describe, in as much details you can, the slowness you are referring to?

(ie describe type and contents of any scenes, steps down to the mouse clicks etc)

Regards,

Anthony.

0 Kudos

Hey,

Here's the steps to the slowness.

First I open a model that has a node with multiple children.

I click a node. This gets the ultimate parent of that node. (This part is still fast)

The code then calls node.SetSelectedRecursively(true) (This part is slow)

After the click the program freezes for about 3 seconds (longer with more children)

If the user clicks on anything while frozen, it may crash the program.

After 3 seconds, the program resumes with the parent node and it's children selected.

As you can see, most users will try to do something when frozen, which causes crashing.

Regards,

anthony_cassidy
Explorer
0 Kudos

Hi Bill,

Thank you for your detailed reply. Any performance issue is of concern. Since this question is deeper than just usage of the API, it is more appropriate to file an SAP Incident using the CSS system.  The solution will require development engagement. We will make our first level support aware of this conversation so it is fast tracked to development. Any performance improvement can then be incorporated into the release cycle. We will mark this question as Answered.

Regards,

Anthony.

anthony_cassidy
Explorer
0 Kudos

Hi Bill,

I see the incident that you've already raised. My future correspondence will be via the incident.

Thanks,

Anthony.

0 Kudos

Hi Anthony,

Our software engineer has run tests incorporating VE Viewer 9.0. Now, the 'node.SetSelectedRecusively(true/false) method works as expected. However we are still experiencing the slowness of node selection, but the program freezing and crashing seems to have been resolved working with the VEV 8.0 .net SDK in combination with VE Viewer 9.0. Is the slowness being addressed and corrected in the VE Viewer 9.0 SDK? What is the progress on releasing the .net VE Viewer 9.0 SDK and availability date?

Best Regards,

Bill Tucker

anthony_cassidy
Explorer
0 Kudos

Hi William,

The SDK contains java libraries, but nothing that can make the viewer binaries behave faster in dot.net. Apart from the javalibrary, it is just examples and documentation. Strictly speaking there is no .net SDK: there is one SDK for everything: Java,.net, javascript etc.

The 9.0 SAP 3D Visual Enterprise SDK can be obtained via this link:

https://store.sap.com/sap/cpa/ui/resources/store/html/SolutionDetails.html?pid=0000012810&catID=&pcn...

Regards,

Anthony