"Great customer service. The folks at Novedge were super helpful in navigating a somewhat complicated order including software upgrades and serial numbers in various stages of inactivity. They were friendly and helpful throughout the process.."
Ruben Ruckmark
"Quick & very helpful. We have been using Novedge for years and are very happy with their quick service when we need to make a purchase and excellent support resolving any issues."
Will Woodson
"Scott is the best. He reminds me about subscriptions dates, guides me in the correct direction for updates. He always responds promptly to me. He is literally the reason I continue to work with Novedge and will do so in the future."
Edward Mchugh
"Calvin Lok is “the man”. After my purchase of Sketchup 2021, he called me and provided step-by-step instructions to ease me through difficulties I was having with the setup of my new software."
Mike Borzage
July 29, 2026 2 min read

Grasshopper data trees are the key to building definitions that remain flexible as a design grows. Instead of treating every list of geometry as a single stream, data trees organize information into branches and paths. Once you understand this structure, many “why is this component producing the wrong result?” moments become easier to diagnose and prevent.
Think of a data tree as a filing system:
{0}, {1}, or {2;4}.For example, a panelization definition may create one branch per floor, with each branch containing the panels assigned to that floor. A façade workflow might instead use one branch per grid line. Maintaining that relationship is far more reliable than flattening everything into one long list and trying to rebuild the logic later.
Start by making the data structure visible. Connect a Param Viewer component to important outputs in your definition. It displays branches and item counts graphically, helping you see whether the structure matches your design intent. A Panel is also useful for inspecting paths, indices, numbers, and text-based results.
When troubleshooting a component, ask three quick questions:
These questions matter because Grasshopper matches data according to both item order and tree paths. Imagine connecting four curves in one branch to four profile sections distributed across four separate branches. A sweep, loft, or transform operation may not pair them as expected—not because the geometry is wrong, but because the data organization is inconsistent.
Use tree operations deliberately:
A productive habit is to preserve structure for as long as possible. For instance, if you are generating windows for multiple building levels, keep the level-based branches through panel generation, sizing, and orientation. Flatten only at the final stage if a downstream operation truly requires a single collection. This approach makes it easier to adjust one floor, filter a particular zone, or assign materials by level without rewriting the definition.
Also, avoid using Flatten as a universal fix. It can make an error disappear temporarily while silently destroying the relationships needed for later steps. A cleaner solution may be to graft one input, simplify another, or use a Match Tree component to make the intended pairing explicit.
Data trees can seem abstract at first, but they are one of Grasshopper’s most powerful organizational tools. Treat branches as meaningful design categories—not just technical output—and your definitions will become more predictable, editable, and scalable. Explore professional Rhino and Grasshopper tools, training, and workflows at NOVEDGE.
You can find all the Rhino products on the NOVEDGE web site at this page.

July 31, 2026 3 min read
Read More
July 31, 2026 3 min read
Read MoreSign up to get the latest on sales, new releases and more …