In C++, there are many way to specify the usage of a class. These can be separated into two parts:
When you explicitly link two UML elements, either by typing an attribute or a parameter, or by creating an association, a usage is generated in the source code. Depending of the kind of usage, a forward declaration or an inclusion is generated. Modelio C++ Designer will always prefer forward declaration, in order to limit the dependencies of the generated file.
When you need to explicitly create an include, element imports are used. Element imports are the UML link that provides an element with visibility of another importable element. In the C++ language, this notion is expressed through #include directives.
The visibility of the element import designates the file where the include is to be generated: