The data associated with an individual network element consists of three parts:
- a type independent part containing index and flag information;
- a mandatory type dependent part containing all structural data necessary for the corresponding element type (this part essentially consists of generic element identifiers and type specific pointers);
- an optional, user configurable and application specific part containing information which needs to be accessed efficiently.
In Enif, a network is defined as the collection of its network elements, an attribute list for each element type (see below) and some auxiliary data, such as titles and element counts.
Network Attributes and Attribute Lists
One of the most basic and most important functionalities when dealing with large transportation networks is to provide a flexible and efficient way of accessing attribute values associated with network elements. In Enif, this is implemented using a very generalized approach consisting of network attributes which are structured into attribute lists.
Enif's concept of network attribute is much broader than the one used in EMME/2. While in EMME/2 a network attribute always implies a value which is physically stored in the EMME/2 data bank, in Enif the term attribute covers any kind of predefined [Page]value provider for the network elements of a specific type.
Network attributes are characterized by the following properties:
- Element type: Defines the type of network elements for which this attribute can provide values.
- Value type: Defines the type of value which is provided by this attribute, such as boolean, integer, floating point, string or pointer to another network element.
- Data source: Attribute values may be obtained in many different ways:






