What is an Attribute?

Attributes alone don’t do anything. When combined with other statements, attributes allow you to do everything — to solve the most difficult problems. Learn how to use attributes and become a master modeler.

Scott Baird

Entity Attributes store and carries information specific to an entity. Attributes are like the fields on your driver’s license. Every person has a driver’s license, but the information is unique to the person. An Attribute would be “hair color” and another would be “eye color,” etc. An attribute’s value can only be assigned, incremented, decremented, and examined by the entity. For example, when an Entity encounters Action Logic only the attributes for that entity can be read or changed. An entity can’t read or change another entity’s attributes.

Attributes always combine with other statements. Examples below show how attributes provide critical capabilities in your models.

Examples of Entity Attribute Usage

Attributes replace values

If an entity carries a unique time value in an attribute and the attribute replaces the time value in the Activity properties dialog, then every entity uses the time in the attribute.

Each entity possesses a unique time in the attribute.
When entities arrive at the activity, the TIme field doesn’t see the name a_Time, but rather the value in the attribute.

When an entity enters the input queue (or output queue) the entity attribute becomes the batch quantity when entered into the Batch Size field.

A batch forms when the quantity in the input queue is equal to or less than the number in the attribute a_Batch_Qty.

A variable create finds use in healthcare, manufacturing, repair, and support systems. The example below shows a create routing from healthcare. A doctor has an Initial Assessment with a patient. Based on the findings of the visit the doctor may optionally order bloodwork. Some patients need bloodwork and some don’t. The attribute on the entity determines the value of the create. Use an attribute to determine “if” a create occurs. If the attribute value equals one, a Create takes place. On the other hand, if the attribute equals zero, no Create occurs.

The attribute a_Sample_Qty determines if the lab process occurs.

An attribute also determines if the doctor needs to wait for the lab process to complete before making a treatment decision. The Attribute on the parent or creating entity determines the requirement to wait for a return. If the attribute is zero then the entity moves forward and the doctor can make a decision. If the attribute is set to one, the lab process causes a delay before the doctor decides on the treatment.

The Attach quantity is controlled by the attribute named a_Sample_Qty, on the parent entity (The entity requesting the Attach).

Record when an entity entered a section of a model

Every entity records the time entered into the simulation in the attribute named CycleStart. When I subtract the start time from the end time, I know how long the entity took in the model. The “time recording” and calculation all happen automatically. However, if you want to collect the start time from another location, you need to define and assign an attribute. The model and logic below show the statements needed to collect a new start time.

When the entity enters the activity capacity, its attribute records the current simulation time.

See What is a Clock( ) statement?

Find a cycle time within an area of the model.

To record the time from one are of the model to another an attribute records the time at the start of the collection and is used again in the calculation of the time collection. The example below shows the collection of time in a immediate delivery service using drones.

Time capture from “Commit Load” to the end of “Scan Destination” using an attribute.
Use and attrubte to collect the start of time capture using an attribute.
Record time values in a variable. The same attribute collecting the start time of the entity becomes part of the calculation.

See What is a Variable? What is a Clock( ) statement

Attributes become an integral part of many powerful features in ProcessModel. A limited selection of attribute application is shown below.

  1. Use the size of the product to change the production time
  2. Track the number of times a product has failed during an inspection
  3. Import historical production times for each entity’s arrival
  4. Import routing information with attributes
  5. Import the assembly requirements with attributes

Entities have the following pre-defined attributes:

Name – The name of the entity. DO NOT use an assignment statement to assign this attribute, e.g., Name = BadCall will not work. Instead, use the NewName statement or the available fields in the routing properties dialog.
Cost – The current accumulated cost for an entity. To learn more about costs, see