DistributionSystems Schema

Alias: dsys

Version: 1.0.2

A schema for defining distribution systems.

This schema contains classes for physical modeling of distribution systems - networks designed to receive, store, maintain, distribute, or control the flow of a distribution media. The primary goal of this schema, however, is not to model network connectivity but to model physical properties of elements participating in a distribution system and their physical connections or connection points.

A BIS DistributionSystem consists of IDistributionElements, which can be either IDistributionFlowElements that direct flow, IDistributionControlElements that control IDistributionFlowElements, or IDistributionSensorElements, which make observations relevant to the DistributionSystem.

A given bis:PhysicalElement can implement more that one of IDistributionFlowElement, IDistributionControlElement, and IDistributionFlowElement.

The following class-diagrams depict the main classes and relationships in the DistributionSystems schema:

DistributionSystems

DistributionPorts

Table of contents

Entity Classes

DistributionPort (Distribution Port) Abstract EntityClass

An inlet or outlet of a distribution element through which a particular substance may flow.

Base Class: BisCore:SpatialLocationElement

A distribution port is a flow connection point of a distribution element through which a particular substance may flow. Distribution ports define the physical connection and substance, electricity or data flow points of a distribution flow element. Subclasses of DistributionPort should specialize distributionport in a given domain by adding relevant properties like FlowVolume for plumbing, or RatedVoltage for electrical. Even though DistributionPort, as a subclass of bis:SpatialLocationElement, may have geometry on its own if needed, Ports typically do not have any visible geometry. Such geometry is usually captured by the parent distribution element. However, DistributionPort instances must have their Origin and Placement properties set in order to indicate their position and orientation.

Distribution ports are owned by a DistributionElement as they are essentially part of the whole definition of such element, similar to openings in a wall. DistributionElementOwnsDistributionPorts relationship is used for DistributionElement owning DistributionPorts.

Equivalent to IfcDistributionPort.

Properties

Name Description Type Extended Type
Description A human-readable description of the Distribution Port string
Direction Direction of the port: e.g. Input, Output, InputOrOutput, InputAndOutput. PortDirection
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
Category The bis:SpatialCategory used to categorize this bis:GeometricElement3d navigation
InSpatialIndex If true, this element will have an entry in the Spatial Index. boolean
Origin The placement origin of this bis:Element. point3d
Yaw The Yaw angle (in degrees) of the orientation of this bis:Element. double
Pitch The Pitch angle (in degrees) of the orientation of this bis:Element. double
Roll The Roll angle (in degrees) of the orientation of this bis:Element. double
BBoxLow The 'low' point of the element-aligned bounding box of this bis:Element. point3d
BBoxHigh The 'high' point of the element-aligned bounding box of this bis:Element. point3d
GeometryStream Binary stream used to persist the geometry of this bis:Element. binary GeometryStream
TypeDefinition Points to an instance of some specialization of TypeDefinition, which holds property values that vary per-type rather than per-instance of this Element. navigation

DistributionPortType (Distribution Port Type) Abstract EntityClass

Defines a shared set of properties whose values vary per-type of IDistributionElement rather than per-instance.

Base Class: BisCore:SpatialLocationType

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

DistributionSystem (Distribution System) EntityClass

A network designed to receive, store, maintain, distribute, or control the flow of a distribution media.

Base Class: BisCore:PhysicalSystem

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
AggregatingSystem The aggregator of this sub-system within the System hierarchy. navigation

A common example is a heating hot water system that consists of a pump, a tank, and an interconnected piping system for distributing hot water to terminals.

A DistributionSystem groups DistributionElements via the DistributionSystemGroupsDistributionElements relationship.

Equivalent to IfcDistributionSystem.

PortConnection (Port Connection) EntityClass

An element that indicates a connection between 2 distribution ports.

Base Class: BisCore:InformationRecordElement

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

A PortConnection instance objectifies a physical connection between 2 or more DistributionPorts when needed. That is typically the case when the level of granularity being modeled includes any physical element(s) that realize a connection. In that case, the realizing element(s) could be found using the PortConnectionIsRealizedByPhysicalElements relationship.

Mixins

IDistributionControlElement (Distribution Control Element) Abstract Mixin

An interface that can be mixed-into a bis:PhysicalElement to indicate that it is an IDistributionElement that controls other elements of a distribution system.

Base Class: DistributionSystems:IDistributionElement

Applies To: PhysicalElement

These elements are typically used to control distribution system elements and variables such as temperature, pressure, power, lighting levels and similar.

See DistributionSystems.

Equivalent to IfcDistributionControlElement for controlling predefined types.

IDistributionElement (Distribution Element) Abstract Mixin

An interface that can be mixed-into a bis:PhysicalElement to indicate that it can be a member of a DistributionSystem.

Base Class: BisCore:IParentElement

Applies To: PhysicalElement

IDistributionElement is a generalization of all elements that participate in a distribution system. Typical examples of IDistributionElement are (among others):

  • elements within heating systems
  • elements within cooling systems
  • elements within ventilation systems
  • elements within plumbing systems
  • elements within electrical systems
  • elements within communication network systems

It defines occurence of any HVAC, electrical, sanitary or other element within a distribution system. An IDistributionElement is expected to own at least one DistributionPort via the DistributionElementOwnsDistributionPorts relationship class.

Equivalent to IfcDistributionElement.

The distribution element should be assigned to the finest granularity SpatialStructureElement element it is fully contained in.

  • Space is the default container for a distributionElement
  • Story is the container if distribution element spans multiple spaces
  • Building is the default container when a distribution element spans multiple stories.

IDistributionElementType (Distribution Element Type) Abstract Mixin

An interface that can be mixed-into a bis:PhysicalType that defines a shared set of properties whose values vary per-type of IDistributionElement rather than per-instance.

Applies To: PhysicalType

IDistributionFlowElement (Distribution Flow Element) Abstract Mixin

An interface that can be mixed-into a bis:PhysicalElement to indicate that it is an IDistributionElement that facilitates the distribution of energy or matter, such as air, water or power.

Base Class: DistributionSystems:IDistributionElement

Applies To: PhysicalElement

See DistributionSystems.

Equivalent to IfcDistributionFlowElement.

IDistributionSensorElement (Distribution Sensor Element) Abstract Mixin

An interface that can be mixed-into a bis:PhysicalElement to indicate that it is an IDistributionElement that observes conditions that affect a distribution system.

Base Class: DistributionSystems:IDistributionElement

Applies To: PhysicalElement

Distribution sensor elements could be used to measure variables such as temperature, humidity, pressure or flow.

See DistributionSystems.

Equivalent to IfcDistributionControlElement for sensing predefined types and not IfcSensor.

Relationship Classes

DistributionElementOwnsDistributionPorts Abstract RelationshipClass

A relationship that relates child distribution ports to parent distribution element.

Base Class: BisCore:ElementOwnsChildElements

Strength: Embedding

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: owns

Multiplicity: (1..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is owned by

Multiplicity: (1..*)

Constraint Classes:

DistributionElementTypeUsesPortTypes Abstract RelationshipClass

Relationship that associates an IDistributionElementType with the DistributionPortTypes it uses.

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: uses

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is used by

Multiplicity: (0..*)

Constraint Classes:

DistributionSystemGroupsDistributionElements (Distribution System Groups Distribution Elements) RelationshipClass

A relationship used to identify the dsys:IDistributionElements that are members of a DistributionSystem.

Base Class: BisCore:PhysicalSystemGroupsMembers

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: groups

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is grouped by

Multiplicity: (0..*)

Constraint Classes:

PhysicalElementRealizesConnection RelationshipClass

Indicates the Physical Element(s) that realize a Connection between DistributionPorts.

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

When the Connection between DistributionPorts needs to be objectified, a PortConnection instance could be introduced, referenced by the PortConnectsToPort relationship via its PortConnection navigation property. The PhysicalElementRealizesConnection relationship can then be used to associate Physical Elements with such PortConnection instance.

Note that Physical Elements realizing a Connection are not directly enabling the flow of matter in a DistributionSystem. Thus, they are typically not IDistributionElements themselves.

Examples include bolts, rings or cement used on Connections between Pipes.

Equivalent to the RealizingElement property of IfcRelConnectsPorts.

Source

Is Polymorphic: true

Role Label: realizes

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is realized by

Multiplicity: (0..1)

Constraint Classes:

PortConnectionObjectifiesConnection RelationshipClass

Indicates that the connection between DistributionPorts is objectified by a PortConnection element.

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: objectifies

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is objectified by

Multiplicity: (0..*)

Constraint Classes:

PortConnectsToPorts Abstract RelationshipClass

Indicates that the DistributionPort is connected to other DistributionPorts.

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: connects to

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is connected by

Multiplicity: (0..*)

Constraint Classes:

Enumerations

PortDirection Enumeration

Backing Type: int

Strict: true

Label Value Description
Undefined 0
Input 1
Output 2
Input Or Output 3
Input And Output 4

Last Updated: 11 December, 2024