First let me start by saying that you do not have to follow that guide in order to implement what you call "dynamic visibility". That guide is only relevant when you want to create a relation between two types of items. When you want to associate items with categories - it's much easier. You don't need to create any custom fields. Instead, you can assign a category for each document that you upload. Once uploaded, just click the document and a screen with its properties will show. In that screen there is a section "Categories and tags". You can click to add categories to the item, or create some if you don't have any. Once you have associated some items with a category, you can create a page and put two widgets on it - one to display the documents (Download list), and another to display the categories (Categories widget, found in the Classifications section of the toolbox). In order to let the Categories widget know what categories it should display, you need to set one property. This property instructs it what type of items it is working with. Click Edit on the Categories widget and in the screen that opens, find the ContentType textbox. For working with documents, you have to enter the value "Telerik.Sitefinity.Libraries.Model.Document". Once you save and publish the page, you will be able to filter documents by clicking on the categories. This procedure works for all built-in modules. If you want to use it for a dynamic module that you have created, it is a bit different. Let me know if that is the case.
Regards, Slavo Telerik