Base Infrastructure Schema > domains > Functional ECSchema Functional Schema Alias: func Version: 1.0.3 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 FunctionalComponentElement FunctionalComposite FunctionalElement FunctionalModel FunctionalPartition FunctionalPortion FunctionalType Relationship Classes DrawingGraphicRepresentsFunctionalElement FunctionalElementIsOfType PhysicalElementFulfillsFunction 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 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 the formal name (business key) for a 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 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 the formal name (business key) for a 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 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 the formal name (business key) for a 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 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 the formal name (business key) for a 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 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 the formal name (business key) for a 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 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 the formal name (business key) for a 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 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 the formal name (business key) for a 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: DrawingGraphic Target Is Polymorphic: true Role Label: is represented by Multiplicity: (0..*) Constraint Classes: FunctionalElement 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 Multiplicity: (0..*) Constraint Classes: FunctionalElement Target Is Polymorphic: true Role Label: defines Multiplicity: (0..1) Constraint Classes: FunctionalType 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: PhysicalElement Target Is Polymorphic: true Role Label: is fulfilled by Multiplicity: (0..*) Constraint Classes: FunctionalElement Last Updated: 02 February, 2022