private static List<object> FindDescendentFromPick(Pick pickActivity, object descendent)
        {
            List<object> path = new List<object>();
            path.Add(pickActivity);
            foreach (PickBranch branch in pickActivity.Branches)
            {
                if (branch == descendent)
                {
                    break;
                }
                else if (branch.Trigger == descendent)
                {
                    path.Add(branch);
                    break;
                }
                else if (branch.Action == descendent)
                {
                    path.Add(branch);
                    break;
                }
                else
                {
                    bool isVariableError = false;
                    foreach (Variable variable in branch.Variables)
                    {
                        if (variable.Default == descendent)
                        {
                            isVariableError = true;
                            break;
                        }
                    }

                    if (isVariableError)
                    {
                        path.Add(branch);
                        break;
                    }
                }
            }

            path.Add(descendent);
            return path;
        }       
 private static List<object> FindRelativePath(Pick pickActivity, object descendent)
 {
     List<object> path = FindDescendentFromPick(pickActivity, descendent);
     path.Reverse();
     return path;
 }