/// <summary>
 /// Visits the facet.
 /// </summary>
 /// <param name="facet">The facet to visit.</param>
 public override void VisitFacet(Facet facet)
 {
     if (facet.Id != null)
     {
         this.dictionary.Add(facet.Id, facet);
     }
     base.VisitFacet(facet);
 }
 /// <summary>
 /// Visits the facet.
 /// </summary>
 /// <param name="facet">The facet to visit.</param>
 public virtual void VisitFacet(Facet facet)
 {
     this.contextStack.Push(facet);
     if (facet.Facets != null)
     {
         foreach (Facet f in facet.Facets)
         {
             VisitFacet(f);
         }
     }
     this.contextStack.Pop();
 }