Functional Schema

Alias: func

Version: 1.0.4

The Functional schema defines common base classes to be used by discipline-specific functional domains.

The Functional domain schema contains the core classes that define the "Functional" Modeling Perspective.

The "Functional" perspective sees an Object not as a physical Entity with form and mass, but as a functional Entity that will perform some activity when in use.

They say "form follows function". Separating the "Functional" perspective from the "Physical" perspective allows independent modeling of "form" and "function". Functional modeling/planning can occur first and be handled by a different responsible party than physical modeling. There is generally more than one physical Entity that could fulfill a given function. The particular physical Entity may be refined throughout the design process and may be changed over the lifetime of the operation of the Object.

The Functional Modeling Perspective is abstract. Domain authors are expected to specialize FunctionalPartition, FunctionalModel, and one or more of the subclasses of FunctionalElement to express their discipline's particular needs for functional modeling, e.g. architectural functional programming or plant process modeling.

Table of contents

Entity Classes

FunctionalBreakdownElement (Functional Breakdown) Abstract EntityClass

A func:FunctionalBreakdownElement models an aggregate functional Entity with child func:FunctionalElements modeling its parts.

Base Class: Functional:FunctionalElement

Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
TypeDefinition navigation

FunctionalBreakdownElement and FunctionalComponentElement are intended for use together, in a style of functional modeling that does not use sub-models. If you using sub-modeling, then specialize FunctionalElement directly.

FunctionalComponentElement (Functional Component) Abstract EntityClass

A func:FunctionalComponentElement models an 'atomic' functional Entity which will not be sub-modeled at a finer granularity and does not have 'child' parts.

Base Class: Functional:FunctionalElement

Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
TypeDefinition navigation

FunctionalComponentElement and FunctionalBreakdownElement are intended for use together, in a style of functional modeling that does not use sub-models. If you using sub-modeling, then specialize FunctionalElement directly.

FunctionalComposite (Functional Composite) EntityClass Deprecated

The best practice is now to inherit from a FunctionalBreakdownElement instead.

DEPRECATED: Inherit from FunctionalBreakdownElement instead.

Base Class: Functional:FunctionalBreakdownElement

Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
TypeDefinition navigation

FunctionalElement (Functional Element) Abstract EntityClass

A func:FunctionalElement models required functionality that will ultimately be fulfilled by a physical Entity.

Base Class: BisCore:RoleElement

Models a particular functional Entity--something that will perform a particular activity when in use. Functional Entities are non-geometric in nature, and are considered to be 'roles' played by an Object.

Properties

Name Description Type Extended Type
TypeDefinition navigation
Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json

FunctionalModel (Functional Model) EntityClass

A container for persisting func:FunctionalElement instances.

Base Class: BisCore:RoleModel

Inherited properties
Name Description Type Extended Type
ParentModel The parent bis:Model contains the bis:Element that this bis:Model is sub-modeling. navigation
ModeledElement The bis:Element that this bis:Model is sub-modeling. This bis:Model models the same Entity as the sub-Modeled bis:Element, but at a finer granularity. navigation
IsPrivate If IsPrivate is true then this bis:Model should not appear in lists shown to the user. boolean
IsTemplate If IsTemplate is true then this bis:Model is used as a template for creating new instances. boolean
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
LastMod The last time any element in this Model was modified. dateTime

Should be considered abstract. It should be specialized to hold discipline-specific functional Elements.

FunctionalPartition (Functional Partition) EntityClass

A func:FunctionalPartition element establishes a 'Functional' Modeling Perspective for its parent bis:Subject. It is intended to be specialized, and should be considered 'abstract'.

Base Class: BisCore:InformationPartitionElement

Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
Description A human-readable string describing the intent behind the partition. string

A func:FunctionalPartition element establishes a 'Functional' Modeling Perspective for its parent bis:Subject. It is intended to be specialized, and should be considered 'abstract'.

See Functional for a definition of the "Functional" Modeling Perspective.

FunctionalPortion (Functional Portion) EntityClass Deprecated

The best practice is now to inherit from a FunctionalComponentElement subclass and mix in ISubModeledElement when a breakdown concept is needed.

DEPRECATED: A Functional Portion is a Functional Component that will be broken down in more detail in a separate (sub) Functional Model.

Base Class: Functional:FunctionalComponentElement

Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
TypeDefinition navigation

FunctionalType (Functional Type) Abstract EntityClass

Defines a shared set of properties (the 'type') that can be associated with a func:FunctionalElement.

Base Class: BisCore:TypeDefinitionElement

Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation

The FunctionalType of a FunctionalElement is distinct from the PhysicalType of the PhysicalElement that may be used to fulfill the function.

Relationship Classes

DrawingGraphicRepresentsFunctionalElement RelationshipClass

Relates bis:DrawingGraphic instances to the func:FunctionalElement instances they represent.

Base Class: BisCore:DrawingGraphicRepresentsElement

Strength: Referencing

Strength Direction: Forward

Used to relate schematic drawings to FunctionalElements.

Source

Is Polymorphic: true

Role Label: represents

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is represented by

Multiplicity: (0..*)

Constraint Classes:

FunctionalElementIsOfType RelationshipClass

A type-instance relation; one that indicates that the specific func:FunctionalElement is an instance of the defined func:FunctionalType.

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

PhysicalElementFulfillsFunction RelationshipClass

Relates func:FunctionalElement instances (which model a required function) to the bis:PhysicalElement instances that model the physical Entity that fulfills the function.

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

There may be other relationships (defined elsewhere) to indicate a PhysicalType for PhysicalElements that may potentially be used to fulfill the function.

Source

Is Polymorphic: true

Role Label: fulfills

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is fulfilled by

Multiplicity: (0..*)

Constraint Classes:

Last Updated: 15 May, 2024