Skip to main content

Designs and Interfaces

Define a set of data attributes for each type of thing

The data structure of your customer project is determined by the designs and interfaces within it, sometimes referred to collectively as DoDIs. While they share a lot of the same characteristics, there are also some important differences!

Use designs to define the data attributes you want to record and store for each type of thing. Use interfaces to group related designs and extend them with shared data attributes.

If you're new to Alloy, we recommend reading the Designs and Interfaces concept articles first, which provide a simplified overview of their key features 🙂.

Note

If you're unable to view or manage designs/interfaces, your user account may lack the required permissions.

Designs

A design is a set of attributes that describe a particular type of thing. It can represent a physical object (e.g. assets, components) or an abstract concept (e.g. defects, tasks). Many designs are supplied with Alloy but you can of course create your own.

There are several attribute types for storing different types of data, such as numbers, dates or text. You can add custom attributes to any design in Alloy, even the system ones!

Every design has the following default attributes:

  • Title - a primary text label to help identify each item of the design. Typically displays one or more unique attribute values, e.g. a serial number, asset tag or ID number.

  • Subtitle - a secondary text label to identify items. Typically displays the item's design name but can be configured to display additional information, e.g. installed date, active task status.

  • Geometry - coordinate data representing the item's location and shape. Optional by default but can be made required. There are several geometry types for storing different types of coordinates, which can be limited as needed, e.g. point, line, polygon.

To enter data in Alloy, you can create items of your designs. When creating or editing an item, you can populate its attributes with values to represent a specific instance of that design. Items can subsequently be queried to fetch their attribute data, which can be filtered and sorted according to your needs.

A comparison of the Litter Bin design and a Litter Bin item

Interfaces

Interfaces are similar to designs. However, it isn't possible to create items directly from an interface.

Instead, the purpose of an interface is to define a set of generic attributes that can be shared among related designs (and other interfaces). If a design/interface implements an interface, it inherits that interface's attributes alongside its own. This saves you from redefining the same attribute in multiple places.

Additionally, an interface provides a single point of reference for the designs/interfaces that implement it. When performing a query, you can target all items of those designs by just targeting the interface!

For example, the Defects interface contains generic attributes for recording any defect (e.g. Reported Date), some of which are inherited from other interfaces. Whenever you create a design to represent a type of defect, it will implement the Defects interface and inherit all of those attributes. Want to add a new Hazard Score attribute to all your defect designs? Just add it to the Defects interface!

Throughout Alloy, you can target the Defects interface to fetch all items of all defect designs. For example, when creating a layer in the Maps app, or a query in the Data Explorer app, or a widget in the Workspaces app.

To learn more, see Implementing interfaces.

Diagram of the Defects interface
Diagram depicting the structure of a defect design

System DoDIs

Various system designs and interfaces are supplied with Alloy. They provide core functionality, along with modular functionality related to specific service areas or integrations. While they can't be fundamentally changed or deleted, you can customise their appearance (e.g. colour, icon, title, subtitle) and extend them with custom attributes as needed, e.g. to store a team's working hours, you could add two Time attributes to the Teams design.

You can of course create any number of custom designs and custom interfaces to represent your organisation's assets, operations and business processes.

Comparison

DesignsInterfaces
Specific attributes for one type of thingGeneric attributes to be shared among multiple types of things
Designs can implement interfaces to inherit their attributesInterfaces can implement other interfaces to inherit their attributes
Items can be created from designsItems cannot be created from interfaces