Interfaces
What is an interface?
Interfaces are similar to designs. However, items can't be created from interfaces! An interface is a set of generic attributes that can be shared by multiple designs.
A design can implement any number of interfaces. This lets it inherit the attributes of each interface alongside its own. An item of the design can therefore store values for all those attributes together. If a new attribute is added to an interface, it automatically becomes available on designs that implement it, and on items of those designs.
Use interfaces to standardise parts of your data models. This avoids redefining common attributes on multiple designs and provides greater flexibility going forward. Interfaces can even implement other interfaces!
Continuing our toy example, the Minifigure design below implements the Toy and Lego interfaces to inherit their attributes. Want to add a "Piece Count" attribute to all Lego products, including minifigures? Add it to the Lego interface! Similarly, if you create a Barbie design in future, it can implement the Toy interface to inherit those common attributes.
An item of the Minifigure design is also considered an item of the Toy and Lego interfaces.
Due to their similarities, designs and interfaces are sometimes referred to as DoDIs. This stands for Design or Design Interface.
Target multiple designs
An interface also provides a way to target multiple designs at once. In many areas of CausewayOne Asset Management, you can choose a design to focus on its items. If you choose an interface, you can target the items of all the designs that implement it.
For example, imagine a Playground Assets interface that is implemented by three designs: Swings, Seesaws and Roundabouts. To display items from all those designs on the map, you can define a single layer that queries the Playground Assets interface.
Targeting a single interface can save time and avoid repetition. It also provides extra flexibility, as any future designs can be incorporated into existing queries by simply implementing the interface.
If you target an interface, only the interface's attributes will be exposed.
For example, in the Data Explorer app, you can query the Defects interface to fetch all defect items. The results will include item data for all defect attributes. However, any attributes defined on individual defect designs won't be included.
Attributes
Like designs, an interface can have any number of defined attributes.
An attribute is a data field that represents a single characteristic of the concept described by the interface (e.g. dimensions, unit number). Link attributes are a special type that can reference items of a specific design/interface (e.g. the Jobs interface has a Fixed Defects attribute that links to the Defects interface).
When a design/interface implements an interface, it inherits all of the interface's attributes. This includes any attributes the interface itself has inherited from other interfaces!
In the following diagram, the Example Custom design directly inherits the black attributes from the Items interface and the green attributes from the Assets interface. However, it also indirectly inherits the red attribute from the Items With Reports interface.
Appearance
Like designs, every interface has the following properties:
-
Icon and Colour - these can affect the appearance of designs that implement the interface, and their items.
-
Title and Subtitle - these can affect how the items of those designs are labelled.
These properties are inherited by designs that implement the interface, unless they are configured on the design itself.
For example, the Generic Inspections design implements the Inspections interface. The design has no appearance properties set, so it inherits them from the interface. Therefore, an item of the design looks like this.
The Tree Visual Inspections design also implements the Inspections interface. However, the design has all of its appearance properties configured. Therefore, an item of the design looks like this.
Geometry types
Like designs, every interface has a Geometry attribute that can store coordinate data. This lets you record an item's location and shape. By default, the attribute is optional and accepts any geometry types (e.g. point, line, polygon).
Alternatively, you can configure an interface's properties to make geometry Required, so that a value must be entered when creating/editing items of any design that implements the interface. You can also limit the types of geometry that can be stored in those items.
If any geometry properties are blank on a design/interface that implements the interface, they will be inherited.
Context
Every interface has a Context property that indicates the interface's origin. If set to Customer, it was created by your organisation and can be edited freely. Otherwise, it's a protected system interface.
System interfaces are included to provide core functionality and help you get started (e.g. the Defects and Tasks interfaces). While system interfaces can't be edited or deleted, they can be extended with extra attributes.
Details
The possible context types are:
-
Core - the interface is included with CausewayOne Asset Management and required for system functionality. It can't be deleted but you can:
-
edit these properties: Name, Icon, Colour, Title, Subtitle
-
add, edit or remove any custom attributes
-
implement or remove any extra interfaces
-
-
Module - the interface belongs to an optional module that was installed. Same restrictions as Core.
-
Package - the interface was created by our system architects as part of a custom solution for your organisation. Same restrictions as Core.
-
Customer - the interface was created by your organisation. Therefore, you can freely edit or delete it, providing your user account has permission to do so.
Learn more
To learn more about creating and configuring interfaces, see Designs and interfaces in the Designer app.




