Skip to content

Commit

Permalink
Fixes to md level formatting in remarks. (#244)
Browse files Browse the repository at this point in the history
* Fixes to formatting in remarks. Update IFC doc links to latest version.

* Address extra ending tick.

* Address invalid links.

* Address cross-schema links.
  • Loading branch information
diegoalexdiaz authored Oct 4, 2023
1 parent 7c9e98a commit 042da7a
Show file tree
Hide file tree
Showing 14 changed files with 212 additions and 562 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ In BIS, a [ClassificationSystem](#classificationsystem) consists of one or more

![Class and Instance Diagrams](./media/classification-systems.png)

## ClassificationSystem
## Entity Classes

### ClassificationSystem

`ClassificationSystem` identifies the classification system to which the individual `Classifications` belong.
For well-known and externally defined standards, the name (CodeValue) is typically enough to identify the classification system. A consuming application just needs to create or use an instance with the appropriate name. For these cases, the `ClassificationSystem` class can be used directly.
Expand All @@ -28,17 +30,9 @@ See [Overview](#classificationsystems).

It is expected that any iModel will not contain all known classification systems. Instead, an iModel will only contain those classification systems that are used by that iModel and possibly only those parts of the classification system hierarchy that are used.

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `ClassificationTable` + `ClassificationSystem` | (none) | `IfcClassification` | (none) |
The combination of a `ClassificationSystem` and a `ClassificationTable` are equivalent to [IfcClassification](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcClassification.htm).

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcClassification` | (none) | `ClassificationTable` + `ClassificationSystem` | (none) |

## ClassificationTable
### ClassificationTable

`ClassificationTable` defines a table in a `ClassificationSystem` as defined in the original ClassificationSystem source. A Classification Table represents a division of classification system into classifications for different purposes.

Expand All @@ -52,17 +46,9 @@ A `ClassificationTable` will contain `Classification` and `ClassificationGroup`

See [Overview](#classificationsystems).

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `ClassificationTable` + `ClassificationSystem` | (none) | `IfcClassification` | (none) |
The combination of a `ClassificationSystem` and a `ClassificationTable` are equivalent to [IfcClassification](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcClassification.htm).

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcClassification` | (none) | `ClassificationTable` + `ClassificationSystem` | (none) |

## ClassificationGroup
### ClassificationGroup

A `ClassificationGroup` is a group of `Classification` elements, as grouped originally in the source classification system. The `Classification` elements are assigned to a group via `ClassificationGroupGroupsClassifications` relationship.

Expand All @@ -72,11 +58,9 @@ A `ClassificationGroup` element is intended to be persisted in a `bis:Definition

See [Overview](#classificationsystems).

### Mapping to and from IFC

Is not mapped to or from IFC, as the group concept does not exist in IFC

## Classification
### Classification

A `Classification` element represents one 'class' or 'category' into which the classification system classifies real-world Objects.

Expand All @@ -98,16 +82,8 @@ An element may be classified as multiple Classifications through the `ElementHas

See [Overview](#classificationsystems).

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `Classification` | (none) | `IfcClassificationReference` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcClassificationReference` | (none) | `Classification` | (none) |
Equivalent to [IfcClassificationReference](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcClassificationReference.htm).

## ClassificationSystemOwnsClassificationTable
### ClassificationSystemOwnsClassificationTable

Following the naming convention, this relationship class should have been named `ClassificationSystemOwnsClassificationTables` (plural), but was released with the a non-compliant name that would be disruptive to change post-release.
102 changes: 21 additions & 81 deletions Domains/1-Common/DistributionSystems/DistributionSystems.remarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,19 @@ Connection point information will be added in subsequent versions of the schema.

![Class and Instance Diagrams](./media/distributionsystems.png)

## DistributionSystem
## Entity Classes

### DistributionSystem

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](#IDistributionElement) via the `DistributionSystemGroupsDistributionElements` relationship.

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `DistributionSystem` | (none) | `IfcDistributionSystem` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcDistributionSystem` | (none) | `DistributionSystem` | (none) |
Equivalent to [IfcDistributionSystem](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcDistributionSystem.htm).

## IDistributionElement
### IDistributionElement

IDistributionElement is a generalization of all elements that participate in a distribution system. Typical examples of IDistributionElement are (among others):
`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
Expand All @@ -44,103 +38,49 @@ IDistributionElement is a generalization of all elements that participate in a d

It defines occurence of any HVAC, electrical, sanitary or other element within a distribution system.

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `IDistributionElement` | (none) | `IfcDistributionElement` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcDistributionElement` | (none) | `IDistributionElement` | (none) |
Equivalent to [IfcDistributionElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcDistributionElement.htm).

### Spatial Containment
The distribution element should be assigned to the finest granularity [SpatialStructureElement](./spatialcomposition.ecschema/#spatialstructureelement) element it is fully contained in.

The distribution element should be assigned to the finest granularity [SpatialStructureElement](./SpatialComposition.remarks.md#SpatialStructureElement) element it is fully contained in.
- [Space](./buildingspatial.ecschema/#space) is the default container for a distributionElement
- [Story](./buildingspatial.ecschema/#story) is the container if distribution element spans multiple spaces
- [Building](./buildingspatial.ecschema/#building) is the default container when a distribution element spans multiple stories.

- [Space](./BuildingSpatial.remarks.md#Space) is the default container for a distributionElement
- [Story](./BuildingSpatial.remarks.md#Story) is the container if distribution element spans multiple spaces
- [Building](./BuildingSpatial.remarks.md#Building) is the default container when a distribution element spans multiple stories.

## IDistributionFlowElement
### IDistributionFlowElement

See [DistributionSystems](#distributionsystems).

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `IDistributionFlowElement` | (none) | `IfcDistributionFlowElement` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcDistributionFlowElement` | (none) | `IDistributionFlowElement` | (none) |
Equivalent to [IfcDistributionFlowElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcDistributionFlowElement.htm).

## IDistributionControlElement
### IDistributionControlElement

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

See [DistributionSystems](#distributionsystems).

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `IDistributionControlElement` | (none) | `IfcDistributionControlElement` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcDistributionControlElement` | (for controlling predefinedtypes) | `IDistributionControlElement` | (none) |
Equivalent to [IfcDistributionControlElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcDistributionControlElement.htm) for controlling predefined types.

## IDistributionSensorElement
### IDistributionSensorElement

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

See [DistributionSystems](#distributionsystems).

### Mapping to and from IFC
Equivalent to [IfcDistributionControlElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcDistributionControlElement.htm) for sensing predefined types and <b><u>not</u></b> `IfcSensor`.

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `IDistributionSensorElement` | (none) | `IfcDistributionControlElement` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcDistributionControlElement` | (for sensing predefinedtypes) | `IDistributionSensorElement` | (none) |

`IDistributionSensorElement` maps to `IfcDistributionControlElement` and <b><u>not</u></b> `IfcSensor`.


## DistributionPort
### DistributionPort

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.
Ports are similar to openings in that they do not have any visible geometry, such geometry is captured by the parent distribution element. Ports do have placement to indicate position and orientation of the connection.
Distribution ports are owned by the `DistributionElement` as they are essentially part of the whole definition of the element, similar to openings in a wall. `DistributionElementOwnsDistributionPorts` relationship is used for `DistributionElement` owning `DistributionPorts`.

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `DistributionPort` | (none) | `IfcDistributionPort` | (none) |
Equivalent to [IfcDistributionPort](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcDistributionPort.htm).

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcDistributionPort` | (none) | `DistributionPort` | (none) |


## PortConnection
### PortConnection

A `PortConnection` defines a physical connection between 2 DistributionPorts. In the case where a connection is realized by some other physical element, the realizing element could be found using `PortConnectionIsRealizedByPhysicalElements` relationship.

a PortConnection is always between 2 distribution ports, however this constraint may be removed if a suitable use case is found.

### Mapping to and from IFC

| From BIS | Condition | To IFC | Condition |
| ----------- | --------- | --------- | --------- |
| `PortConnection` | (none) | `IfcRelConnectsPorts` | (none) |

| From IFC | Condition | To BIS | Condition |
| --------- | --------- | --------- | --------- |
| `IfcRelConnectsPorts` | (none) | `PortConnection` | (none) |
Equivalent to [IfcRelConnectsPorts](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcRelConnectsPorts.htm).
18 changes: 9 additions & 9 deletions Domains/1-Common/LinearReferencing/LinearReferencing.remarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,44 +20,44 @@ The following class-diagram depicts the core aspect classes in the LinearReferen

A Linear-Element is a one-dimensional object that serves as the axis along which measurements are made.

Equivalent to [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifclinearpositioningelement.htm).
Equivalent to [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcLinearPositioningElement.htm).

### ILinearlyLocated

Implementations of the `ILinearlyLocated` mix-in are equivalent to [IfcLinearPlacement](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifclinearplacement.htm).
Implementations of the `ILinearlyLocated` mix-in are equivalent to [IfcLinearPlacement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcLinearPlacement.htm).

### ILinearlyLocatedAlongILinearElement

Equivalent to [IfcProduct.PositionedRelativeTo](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcproduct.htm) referencing an [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifclinearpositioningelement.htm) via [IfcRelPositions.RelatingPositioningElement](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcrelpositions.htm).
Equivalent to [IfcProduct.PositionedRelativeTo](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcProduct.htm) referencing an [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcLinearPositioningElement.htm) via [IfcRelPositions.RelatingPositioningElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcRelPositions.htm).

Note that IFC further requires an individual reference to the appropriate [IfcCurve](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifccurve.htm) from each [IfcPointByDistanceExpression](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcpointbydistanceexpression.htm) via its `BasisCurve` attribute. In contrast, the LinearReferencing BIS schema considers such curves an implementation detail behind a concrete `lr:ILinearElement` realization in a particular domain, and therefore, it does not capture it.
Note that IFC further requires an individual reference to the appropriate [IfcCurve](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcCurve.htm) from each [IfcPointByDistanceExpression](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcPointByDistanceExpression.htm) via its `BasisCurve` attribute. In contrast, the LinearReferencing BIS schema considers such curves an implementation detail behind a concrete `lr:ILinearElement` realization in a particular domain, and therefore, it does not capture it.

### ILinearLocationLocatesElement

Equivalent to [IfcLinearPlacement.PlacesObject](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcobjectplacement.htm).
Equivalent to [IfcLinearPlacement.PlacesObject](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcLinearPlacement.htm).

### IReferent

Equivalent to [IfcReferent](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcreferent.htm). Note that IfcReferent is an [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifclinearpositioningelement.htm), thus references to it use the same [IfcRelPositions.RelatingPositioningElement] than references to [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifclinearpositioningelement.htm). On the other hand, a `lr:IReferent` is referenced from either a lr:LinearlyReferencedAtLocation or lr:LinearlyReferencedFromToLocation multi-aspects via their corresponding navigation properties.
Equivalent to [IfcReferent](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcReferent.htm). Note that IfcReferent is an [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcLinearPositioningElement.htm), thus references to it use the same [IfcRelPositions.RelatingPositioningElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcRelPositions.htm) than references to [IfcLinearPositioningElement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcLinearPositioningElement.htm). On the other hand, a `lr:IReferent` is referenced from either a lr:LinearlyReferencedAtLocation or lr:LinearlyReferencedFromToLocation multi-aspects via their corresponding navigation properties.

### LinearlyLocatedAttribution

Instances of subclasses of `LinearlyLocatedAttribution` must be contained in either `PhysicalModel`s or `SpatialLocationModel`s.

### LinearlyReferencedAtLocation

Equivalent to [IfcPointByDistanceExpression](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcpointbydistanceexpression.htm).
Equivalent to [IfcPointByDistanceExpression](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcPointByDistanceExpression.htm).

### DistanceExpression

The `DistanceExpression` structure allows measurements to be captured in absolute terms (with respect to the start of the Linear-Element) or relative to an `lr:IReferent`, or both.

The `DistanceExpression` structure is equivalent to [IfcPointByDistanceExpression](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcpointbydistanceexpression.htm).
The `DistanceExpression` structure is equivalent to [IfcPointByDistanceExpression](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcPointByDistanceExpression.htm).

The `LateralOffsetFromILinearElement` and `VerticalOffsetFromILinearElement` values are assumed to be measured perpendicularly from the tangent on the Linear-Element calculated at the location indicated by `DistanceAlongFromStart`.

Values in the `LateralOffsetFromILinearElement` are assumed to be positive for lateral offsets to the right of the Linear-Element and negative for lateral offsets to its left, with respect to its direction from start.

Values in the `VerticalOffsetFromILinearElement` are assumed to be positive for vertical offsets above the Linear-Element and negative for vertical offsets below it.

These assumptions are equivalent to a [IfcAxis2PlacementLinear](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcaxis2placementlinear.htm) with its `Axis` and `RefDirection` attributes describing a perpendicular to the tangent at the linear location of interest along the [BasisCurve](https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC2/HTML/link/ifcpointbydistanceexpression.htm).
These assumptions are equivalent to a [IfcAxis2PlacementLinear](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcAxis2PlacementLinear.htm) with its `Axis` and `RefDirection` attributes describing a perpendicular to the tangent at the linear location of interest along the [BasisCurve](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcPointByDistanceExpression.htm).
Loading

0 comments on commit 042da7a

Please sign in to comment.