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:
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
Target
DistributionElementTypeUsesPortTypes Abstract RelationshipClass
Relationship that associates an IDistributionElementType with the DistributionPortTypes it uses.
Base Class: BisCore:ElementRefersToElements
Strength: Referencing
Strength Direction: Forward
Source
Target
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
Target
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 IDistributionElement
s themselves.
Examples include bolts, rings or cement used on Connections between Pipes.
Equivalent to the RealizingElement property of IfcRelConnectsPorts.
Source
Target
PortConnectionObjectifiesConnection RelationshipClass
Indicates that the connection between DistributionPorts is objectified by a PortConnection element.
Strength: Referencing
Strength Direction: Forward
Source
Target
PortConnectsToPorts Abstract RelationshipClass
Indicates that the DistributionPort is connected to other DistributionPorts.
Base Class: BisCore:ElementRefersToElements
Strength: Referencing
Strength Direction: Forward
Source
Target
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