The values may be inherited, so this method is called while propagating values from the root nodes. This method should not walk the tree, since it is called for each GoLayoutTreeNode in a depth-first manner starting at a root. You probably do not need to override this method, but if you do you should call first either the base method or GoLayoutTreeNode.CopyInheritedPropertiesFrom, since they assign most of the GoLayoutTreeNode property values used to influence the layout. Informational properties such as GoLayoutTreeNode.DescendentCount and GoLayoutTreeNode.MaxGenerationCount will not yet have been initialized by the time this method is called. It is more common to override AssignTreeNodeValues in order to modify a property or two to customize the layout at that node.