Composite Types make building models faster, easier and more consistent. The concept is very simple.
Let's look at Equipment, for example. Most equipment has component parts that are also equipment, in and of themselves. For example, a batch tank probably has an inlet valve and an outlet valve. Valves are equipment in their own right, and have attributes associated with them such as run state, pressure rating, and possibly static information such as manufacturer name, part number, and last maintenance date. If your system has an inlet valve equipment type in it, you can add it as a child equipment type to an existing equipment type, e.g., the Batch Tank type. Now, anytime you create an equipment instance of the Batch Tank, the inlet valve will automatically be included. All you need to do is wire it up, i.e., pick the tag (or other data source). With Composite Types, you don't need to add an inlet valve to every batch tank instance that you create.
You can also add an inlet valve equipment type to a different piece of equipment or on its own, separate from the batch tank. The type will still contain all of its attributes. You will need to wire it up and insert any other information such as pressure rating, etc.
See Creating a Composite Type to learn how to create a composite/child equipment type.
These same steps apply to creating any composite Type.
Composite types have useful propagation rules:
- You can create a new type from an existing composite type.
- The new type will inherit all child types and attributes.
- You can add existing types to a composite type.
- Existing instances based on the composite type will automatically inherit all new child instances from the type where there is no name conflict.
- You can create new instances from composite types.
- The new instance will inherit all child instances.
- You cannot alter any type from the ThinkIQ Base Library. To alter these types in any way, you must first create a new Equipment Type that inherits from a ThinkIQ Base Library type, and then alter your new type in any way you need.
Composite equipment types also have deletion rules:
- When deleting a parent instance, all child instances will be deleted.
- When deleting a parent instance, all type to child type references will be deleted.
- In each situation, the user is warned about what will be deleted.