A Primary Requirement of BIM is the ability to items by a data structure different from levels.  Levels cannot be the primary way to group different objects.

Bentley defined the Feature Definition as the primary differentiator in the OpenRoads model.  They are analogous to an Object Type - a 12" Curb, A Barrier, a Centerline, a Construction Limit, etc.

Feature Definitions come in several dozen different data structures.  These are known as Feature Definition Types.  These analogous to Object Classes.  When the data structure needs to vary, then you need a new Feature Definition Type.  

Example:  A Electrical Junction box will have different data fields than, say, any StormWater Node.  StormWater Nodes have different data storage needs as the structures vary.  Headwalls, Manholes, Curb Opening Inlets, and Grate Inlets all have different physical and hydraulic characteristics.  Bentley provide different Feature Definition Types for each.  It is difficult or impossible to change a placed Grate Inlet into a Headwall.  This is good engineering logic and the software honors that.

The data structures of each Feature Definition Type is somewhat arbitrary.  Keeping the data structure "lean" has some speed advantages, but it's more art than science.  Very often, dropdown lists will filter out inappropriate Types.  This has speed and quality benefits.

Example:  the Feature Types Linear and Alignment are similar.  They could be a single Feature Type, but Bentley chose to separate them.  The difference is that Alignment has an extra field, "Template", for assigning a Roadway Template.  With an Alignment Feature, you can lay out a horizontal and simultaneously and automatically get a full 3D corridor.  You can't do that with a Linear-type feature.  Some tools only allow Alignment Features to be selected - no Linear features.  Filtering out inappropriate Feature Definition Types streamlines modeling and production work.

The Fundamental Unit of an OpenRoads model is the Feature.  Features should all have a Feature Definition (but you can do some things without a Feature Definition - not advised).  

Features are instances of Feature Definitions.  They are the instances of a type of object.


One rule of thumb is that if you need to track an object for quantities or cost, have a Feature Definition for it.  


Item Types are bundles of one or more custom properties (data fields) that can be attached to Feature Definition or Features.  Item Types extend the delivered OpenRoads data model to include what you need.

Items can be attached to any Feature Definition.  They're very flexible.