Using the function like this: myShapes.model.nodeDataArray = go.Shape.getFigureGenerators().toArray(); works as expected and displayed all the icons from the figures.js file on the Graph.

However using it like this: var figures = go.Shape.getFigureGenerators().toArray(); only returns the first 182 icons and the rest are missing. I want to use the same icons used on the graph for popup help using: var svg = go.Geometry.stringify((figures[i].value("", 10, 10))); and this works well for the 182 icons that were returned, I need to get to some icons that were nor returned as well. Why does the function: go.Shape.getFigureGenerators().toArray(); work ok to display the icon map on the graph (returns more than 182) but only returns 182 icons to the array when called directly.


In Page Not Found -- Northwoods Software
myDiagram.model.nodeDataArray.length → 182
myDiagram.nodes.count → 182

So I do not understand the situation that you are describing. There are just as many nodes as there are figures in the array.

Hi. I have solved it now - Thanks. I am using the figures.js file and have added a couple extra figures. It all works well when I pass to the graph using: myShapes.model.nodeDataArray = go.Shape.getFigureGenerators().toArray();. The result I get using your example: myShapes.model.nodeDataArray.length is 244 and all these show up on the map of fiures on the diagram called MyShapes. All good.This got me thinking and I relaised that in this page I referenced the figures.js file and in the other I didn’t - hence using the figures.js file I got 244 and without I only got 182. Thanks for you help.