The main idea with Nest is to share parts that are in common. Both Simples and higher level Parts can be shared between different higher level parts.
Storing is made by the Nest client method Store( Part ).
Nest automatically reuses the Simples that may already have been stored.
In the example, the string object "Christopher Nolan" is shared by different Director parts.
var nest = new Nest();
var simpleTitle = new Simple<string>().AddValue("Inception");
var simpleName = new Simple<string>().AddValue("Christopher Nolan");
var title = new Part("Title").Add(simpleTitle);
var director = new Part("Director").Add( new Part("Name").Add(simpleName));
var film = new Part("Film");
film.Add(title).Add(director);
nest.Store(film);
To share a specific part between two different part structures one must first query the structure intended for sharing and then incorporate it into the structure to be stored.
Simples are however shared automatically between different structures and do not need to be queried before used in storing.
This can be exemplified by first store a Film with two child parts: Title and Director.
var nest = new Nest();
var simpleTitle = new Simple<string>().AddValue("Inception");
var simpleName = new Simple<string>().AddValue("Christopher Nolan");
var title = new Part("Title").Add(simpleTitle);
var director = new Part("Director").Add( new Part("Name").Add(simpleName));
var film = new Part("Film");
film.Add(title).Add(director);
nest.Store(film);

Now define a new film with title Memento. We wish to add the same director so first Query the existing Director part and then add it to the film and store. That results in the below structure in the data model.
Note that the Director part is automatically duplicated in order to correctly separate the different structures and avoiding to connect both films into the same node.
var title2 = new Part("Title").Add(new Simple<string>().AddValue("Memento"));
var film2 = new Part("Film").Add(title2);
var qName = new Part("Name").Add( new Simple<string>("Christopher Nolan"));
var qDirector = new Part("Director").Add(qName);
nest.Query(qDirector);
film2.Add(qDirector);
nest.Store(film2);