Complex, expensive vehicles – such as airplanes or trucks – often contain a number of parts that will fail over the lifetime of the item. Approaching the modeling of this usage and failure tracking can be a tricky prospect. One solution is to use the entity’s attributes to model each part. Attributes can even be arrayed to contain additional information about the individual part, such as the installation date, number of trips made or miles logged, part number, and a unique identification code. But since every entity has a copy of every attribute, what happens when different vehicles have different part requirements? The number of attributes needed to manage this level of complexity can quickly become overwhelming and cumbersome.
Another approach is to use entities to represent the individual parts. The part entity can store all the relevant data for that particular part in its attributes. The set of part attributes will usually contain a great deal of commonality across multiple, different part types.
As for the vehicles themselves, they will also be modeled as entities. However, they will be the representative entity, carrying the individual part entities. The vehicle entity will use a Pickup module to collect all its needed part entities. Pickup is similar to Batch in that many entities are contained within one single representative entity. The key difference between Batch and Pickup is that with Pickup, the original entity is the representative entity and essentially carries and controls the rest of the entities within the group. With the Batch module, a new representative entity will be created and all the grouped entities are equals.
The vehicle entity will go through the process doing whatever missions or trips are required. It can then update the attributes of the part entities in its group, adding additional trips or evaluating which parts need to be replaced. The Assign Attribute module makes it easier to update the attributes of the grouped entities by eliminating the need to use the A() function. Instead, you can select the “Entity in Group” type and then select the attribute that needs to be updated. If the new value of the attribute depends on its previous value, then one of the group member variables (such as AG) can be used to determine that value.
When a part needs to be replaced, the vehicle entity can use the Assign Attribute module to modify the attribute values to update them to the replacement part’s values. The vehicle can then continue on its assigned journeys.
Another option for modeling part replacement is to use the Dropoff module to remove the part from the group. The Dropoff module can let multiple parts go simultaneously; for example, if the vehicle is undergoing a major renovation and all parts are being replaced at the same time. Even if only a limited number of parts are being removed, this approach would be more appropriate when defective parts are removed, repaired, and returned to a spare parts queue.
New parts can be picked up from the spares queue to replace the previously removed parts. It is important to remember that the new entities will join the group in the order that they were added. If the first entity part is dropped off and a new one is picked up to replace it, the newly added part will be at the last position in the group; it will not return to the first position in the group. If position in the group is critical to the model, it would be better to stay with the first approach.
Interested in trying this out for yourself? Email us and we can send you this model.