A class serves as a blueprint/template for describing a specific type of object. They can be used to describe both physical and intangible assets. Classes pertaining to a particular domain are typically grouped together and their definitions stored in what are referred to as a schema. An Employee is an example of a physical asset that is associated with a company.
The Company that the employee works for is not in and of itself a physical asset, but rather an association formed and organized to carry on a business.
Notice both of the above classes are designated as IsDomainClass, which indicates that instances can be created from it. This attribute is typically set to false for abstract classes, since instances are not created for them. An example of one such class is shown below.
Classes are also often times used to define complex data types, having multiple pieces of data associated with them. The Location class shown below is an example.
Notice in this case, the class is designated as a IsStruct, which indicates it is a structure. Also, notice that it is also designated as a IsDomainClass, since instances will be created from it. Class are used for other purposes as well (e.g., relationships and custom attributes), which will be discussed later.