I can't summarize those instructions, MPD, you have to follow the exact steps or it won't work. Full instructions:
Create
2 content types, both correctly configured with NAT:
Machinery
Battery
2 vocabularies, both will be filled along the way with terms generated by NAT:
Machines
Batteries
Remark the difference in names, just to keep things clear in this explanation (so you don't mix up).
Add a "Term reference" field in both the content types. In het "Machinery" content type this field will refer to the "Batteries" vocabulary, and vice versa: the "Battery" content type has a term reference field that's linked to the "Machines" vocabulary.
Create the necessary nodes with both the Machinery and the Battery content type - which will generate terms in both the Machines and Batteries vocabulary.
Once this is done, check the right terms in each node: what batteries are related to this machine (for the Machinery nodes), and vice versa: in what machines does this battery fit (in the Battery nodes).
Once this is done, create a View and create a block in it. The block in this example will display related machines, being displayed on the page of a battery.
Set the format to whatever you like (HTML-list, unformatted, grid, ...). I'm using fields in this example (not content, but it should work as well).
Add the fields you'd like to show (Title, Image, ...)
Add the following filter: Content: type (=Machinery)
Now add 2 relationships:
- NAT: Nid (Identifier: "NAT node")
- Content: Taxonomy terms on node
- Relationship: "NAT node"
- Vocabularies: "Machines"
- Identifier: "term"
Add a contextual filter:
- File Usage: Entity ID
- Relationship: "NAT node"
- When the filter is not available: provide default value (Content ID from URL)
Finally go to the Query settings of the View and check "Distinct" (to avoid duplicates).
Et voila, the first block is ready to go.
For the second block that will show associated batteries on a Machinery page, duplicate the block we've just created and modify the proper settings accordingly (content type filter, vocabulary in taxonomy terms on node).
You should be good to go - it works in both ways now.
I've add some screenshots in case they may be useful (with other names though than in this example, so don't get confused).
(Maybe the EVA module does something similar, both the method above works in both directions)