SCS Absolute Root Node Contains No Children

Hello,

Looking for some help here, we’ve come across a model that isn’t able to be rendered in our viewer because it appears the absolute root node of the scs file contains no children.

We are loading a .scs file and then running the following to create a model tree;

Edit: to add we are checking the callback modelStructureReady before doing so.

this.hwv.model.getAbsoluteRootNode();
let children = hwv.model.getNodeChildren(this.nodeId);

The children is empty here. However, after translation we can clearly see the model tree and it’s children in the out of the box viewer.

I’ve come across the documentation that states: When loading SC models into the Web Viewer the root node will always have one child node per model loaded with the hierarchy of the loaded model underneath it.

Any help is greatly appreciated!

Thanks,
Justin

Hello @justin.larosa,

Your description sounds like the expected behavior. That is, prior to loading the model in question, the root node of the assembly tree does not have any child nodes. So, at this point, the only existing node in the tree is the root node.

Given that you can see the model after a translation, the issue with your SCS file is that the default camera might not be set up correctly, for example, the camera target is not actually set to the visible model.

You can put all the nodes of the model in view by calling:

hwv.view.fitNodes([hwv.model.getAbsoluteRootNode()]);

Thanks,
Tino

Hello @tino , sorry I think I explained the problem poorly in hindsight. It makes it harder that we can’t share screenshots of the model. To clarify, the model get’s completely loaded in the view, but after loading the root node still has no children so we can’t populate our model tree. The way we set up our custom viewer does work for other models so we are confused as to what is going on in this case.

Justin

Thanks for clarification, @justin.larosa. Yes, that is rather odd that the root node does not have any child nodes.

I would be curious to know what the parent of the starting node is. Can you try calling this in your viewer application?:

hwv.model.getNodeParent(0);

Node 0 would typically be the child node of the root node (which would be -2). As a quick check on starting node 0, you can try generating an XML of the assemblytree by using the Converter option --output_xml_assemblytree.

@tino

The output for hwv.model.getNodeParent(0); is null

I am unable to provide the XML, but it does show Children under the root;

Id=“0” name=“unnamed” Children=“1”
id=“1” name=“root” Children “2 3 4 5”

I have checked hwv.model.getNodeParent(0); on a working model and it is indeed ‘-2’ for that case.

Based on the XML data that you provided, I would expect the root node to have node 0 as its child node.

I cross-referenced existing support tickets for a match on the subject of the root node not having a child node. But I was not able to find a match.

At this point, in order for us to do a deeper investigation, we will very likely need to get the SCS file or the source CAD file. In that regard, a support ticket can be created via the Communicator support portal.

2 Likes