Each ITAPS interface encapsulates functionality that "belongs" together, for example mesh or geometric model functionality. In some cases, however, data in several of these interfaces need to be related together. For example, a collection of mesh faces should be related to the geometric model face which they discretize. The ITAPS Relations interface accomplishes this in a way which allows the lower-level interfaces to remain independent.
iRel defines relations as pairwise associations between entities or entity sets. Related entities can be in the same or different interfaces. A given relation is created for a given pair of interfaces and returned in the form of a Relation Handle. After a specific relation pair has been created, concrete relations for that pair can be assigned and retrieved for specific entities using set and get functions on the iRel interface. A given interface instance can appear in one or many relation pairs, each identified by the relation handle.
iRel_createAssociation(instance, iface1, ent_or_set1, type1, iface2, ent_or_set2, type2, &relation_handle, &ierr)
iRel_setEntEntAssociation(instance, relation_handle, ent1, is_set1, ent2, is_set2, &ierr)
For functions taking only one entity or list as input, and returning an entity or list, an additional argument indicates whether the input entity or list belongs to the first or second interface in that relation pair.