Class definitions - HxGN SDx - Update 56 - Reference

HxGN SDx Schema Overview

Language
English
Product
HxGN SDx
Search by Category
Reference
SmartPlant Foundation / SDx Version
10

A class definition is a named description of a set of objects that support or realize the same interface definitions and share the same property definitions and relationships. In the schema, class definitions can represent physical things, such as pumps, or conceptual things, such as projects.

Class definitions have the following characteristics:

  • Every class definition belongs to one and only one component schema.

  • Every class definition has a primary interface definition that defines the set of possible roles (interface definitions) for the class definition.

  • Every instance of a class definition is instantiated by a class factory.

Class definitions and interface definitions

Class definitions offer different roles with which the software can interact. Class definitions expose or realize their roles through abstract entities called interface definitions.

Class definitions have a Realizes relationship with interface definitions. This means that instances of a particular class definition support or implement the realized interface definitions.

SHARED Tip Use the IsRequired flag on the Realizes relationship to specify if an object of the particular class definition must have the interface definition or if it is optional.

Class definitions must also realize implied interface definitions. If an interface definition implies another interface definition, then any class definition that realizes the first interface definition must also realize the implied interface definition.

Class definitions and property definitions

Class definitions are made up of property definitions and can share property definitions, but not the data associated with the properties. Interface definitions expose the property definitions for class definitions by combining the property definitions in a named collection called an interface definition.

Specializations of class definitions

You can also create a specialization of a class definition. When you create a class definition specialization, you are creating a new class definition using an existing class definition as a template or starting point. By using a prior class definition as the template, all interfaces from the class definition being used as the starting point are copied to the new class definition. The new class definition also has all the methods and properties attached to these interface definitions.

When you create a class definition specialization, an interface with the same name as the class definition preceded by an I prefix is created and attached to the new class definition using the Realizes relationship. Any property definitions that you select when you create the class definition are associated to the new interface by an Exposes relationship.