Terrain Schema

Alias: trrn

Version: 1.0.0

Base schema for the Terrain domain.

This schema contains classes that are used to provide context terrains. Cuts, fills and modifications to terrain are defined in the Earthwork schema.

See the ITerrain documentation for details on how terrain is defined in iModels.

Terrain

Table of contents

Entity Classes

Terrain (Terrain) EntityClass

A bis:PhysicalElement modeling the base terrain for a small portion of the earth.

Base Class: BisCore:PhysicalElement

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
PhysicalMaterial Indicates the bis:PhysicalMaterial of which the bis:PhysicalElement is made. navigation

Terrain is used to define context for assets and projects that may be expected to change and therefore, it is fully contained within an iModel. Terrains are expected to be of small or medium size in order to not negatively impact performance of iModels. Large terrains are expected to be captured by TerrainReferences.

Every Terrain owns multiple TerrainSourceFeatures, which capture details of the Terrain that are not calculated, such as its boundary, breaklines or spot elevations. Calculated details such as contours, flow arrows or triangles are not expected to be captured as child elements of a Terrain. Instead, they are expected to be calculated at display-time. They can be still captured in iModels as, for instance, DrawingElements in DrawingModels if needed for sheet-production.

Terrains already calculated will have their calculated Surface stored in their GeometryStream as a Polyface.

Terrains must be contained in PhysicalModels. The same repercussions of the choice of the containing Model for TerrainReference apply to Terrain.

Instances of Terrain, by default, shall use the Domain-ranked trrn:Terrain category.

TerrainBoundary (Terrain Boundary) EntityClass

A bis:SpatialLocationElement capturing the maximum external limits an ITerrain element is modeling.

Base Class: BisCore:SpatialLocationElement

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

One TerrainBoundary is expected for every ITerrain instance.

An ITerrain, if already calculated, has a Boundary captured by a single child element of type TerrainBoundary, which stores the boundary's geometrical details in its GeometryStream as a closed line-string (i.e. no arcs) encoded into a single LineString3d. The first and last point of the LineString3d shall be the same.

Instances of TerrainBoundary, by default, shall use the Domain-ranked trrn:Boundary category.

TerrainBreakline (Terrain Breakline) EntityClass

A TerrainSourceFeature capturing a linear feature in a terrain where abrupt changes of slope occur.

Base Class: Terrain:TerrainSourceFeatureElement

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

TerrainBreaklines are used to designate linear features such as edges of pavement, ditch bottoms, ridges, etc. where an abrupt change of slope occurs. Any longitudinal element may be defined as a break line. One TerrainBreakline typically captures one of such linear features, but multiple of them could be captured by a single TerrainBreakline instance if they do not capture additional data per breakline feature.

A TerrainBreakline stores its geometrical details in its GeometryStream as line-strings (i.e. no arcs) which may be open or closed. These line-strings shall be encoded as a LineString3d. If a single instance of TerrainBreakline is capturing multiple breaklines, each breakline shall be encoded into a separate LineString3d in the GeometryStream.

Instances of TerrainBreakline, by default, shall use the Domain-ranked trrn:Breakline category.

TerrainDrapeBoundary (Terrain Drape Boundary) EntityClass

A TerrainSourceFeature capturing a surface boundary that determines its elevations by draping on the underlying surface.

Base Class: Terrain:TerrainSourceFeatureElement

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

Up to one TerrainDrapeBoundary is expected for every Terrain instance, if a terrain's limits were explicitely defined on its source.

A TerrainDrapeBoundary stores its geometrical details in its GeometryStream as a closed line-string (i.e. no arcs) encoded as a LineString3d. Z-coordinates shall be the same (planar). The first and last point of the LineString3d shall be the same.

Instances of TerrainDrapeBoundary, by default, shall use the Domain-ranked trrn:DrapeBoundary category.

TerrainDrapeVoid (Terrain Drape Void) EntityClass

A TerrainSourceFeature capturing an area defined by a closed shape that delineates a region of missing or invalid data that should not be used. It determines its elevations by draping on the underlying surface.

Base Class: Terrain:TerrainSourceFeatureElement

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

The same restrictions described for TerrainVoids are applicable to TerrainDrapeVoids.

A TerrainDrapeVoid stores its geometrical details in its GeometryStream as closed line-strings (i.e. no arcs) encoded into a LineString3d. Z-coordinates shall be the same (planar). The first and last point of the LineString3d shall be the same. If a single instance of TerrainVoid is capturing multiple void features, each void feature shall be encoded into a separate LineString3d in the GeometryStream.

Instances of TerrainVoid, by default, shall use the Domain-ranked trrn:Void category.

TerrainHole (Terrain Hole) EntityClass

A TerrainSourceFeature capturing an area defined by a closed shape that delineates a region where the current terrain is ignored and the underlying terrain is utilized.

Base Class: Terrain:TerrainSourceFeatureElement

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

TerrainHoles can be used for marking areas of the Terrain that are not used or displayed. TerrainHoles are typically used to mark areas of a design terrain that are not intended for use. One TerrainHole typically captures one hole feature, but multiple of them could be captured by a single TerrainHole instance if they do not capture additional data per hole feature.

A TerrainHole stores its geometrical details in its GeometryStream as closed line-strings (i.e. no arcs) encoded into a single LineString3d. The first and last point of the LineString3d shall be the same. If a single instance of TerrainHole is capturing multiple hole features, each hole feature shall be encoded into a separate LineString3d in the GeometryStream.

Instances of TerrainHole, by default, shall use the Domain-ranked trrn:Hole category.

TerrainIsland (Terrain Island) EntityClass

A TerrainSourceFeature capturing an area defined by a closed shape that demarcates a region for which data exists within a void of a terrain.

Base Class: Terrain:TerrainSourceFeatureElement

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

One TerrainIsland typically captures one island feature, but multiple of them could be captured by a single TerrainIsland instance if they do not capture additional data per island feature.

A TerrainIsland stores its geometrical details in its GeometryStream as closed line-strings (i.e. no arcs) encoded into a LineString3d. The first and last point of the LineString3d shall be the same. If a single instance of TerrainIsland is capturing multiple island features, each island feature shall be encoded into a separate LineString3d in the GeometryStream.

Instances of TerrainIsland, by default, shall use the Domain-ranked trrn:Island category.

TerrainReference (Terrain Reference) EntityClass

A reference to a bis:RepositoryLink capturing the location of the service providing the base terrain for a portion of the earth.

Base Class: BisCore:PhysicalElement

Terrain data in TerrainReferences is always provided by a service, but may be locally cached. The location of the service providing the TerrainReference is captured by the RepositoryLink instance stored in the iModel's global RealityDataSourcesModel. Such instance is referenced via the RepositoryLink navigation-property.

Where multiple TerrainReferences overlap, the TerrainReference with the highest Priority will be used.

TerrainReferences must be contained in PhysicalModels. The choice of the containing Model has these repercussions:

  • The visibility of the terrain is controlled along with the visibility of other Elements in the Model.
  • There is an implication that the party responsible for the other Elements in the Model is also responsible for the TerrainReference.

Every TerrainReference has a Footprint captured in an associated RealityDataMask element. This Footprint is used to clip overlapping areas of TerrainReferences with lower priority.

Terrain

Properties

Name Description Type Extended Type
RepositoryLink Reference to the bis:RepositoryLink capturing the location of the service that provides the terrain. navigation
Priority The relative priority of this ITerrain to other ITerrain's. Where ITerrain overlap, the one with the larger Priority is used. int
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
PhysicalMaterial Indicates the bis:PhysicalMaterial of which the bis:PhysicalElement is made. navigation

TerrainSourceContour (Terrain Source Contour) EntityClass

A TerrainSourceFeature capturing a linear element(s) at the same elevation created as source data for a terrain.

Base Class: Terrain:TerrainSourceFeatureElement

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

One TerrainSourceContour typically captures one contour, but multiple of them could be captured by a single TerrainSourceContour instance if they do not capture additional data per contour.

A TerrainSourceContour stores its geometrical details in its GeometryStream as an open or closed line-string (i.e. no arcs), encoded into a LineString3d. If it is closed then the first and last point of the LineString3d shall be the same. If a single instance of TerrainSourceContour is capturing multiple contours, each contour shall be encoded into a separate LineString3ds in the GeometryStream.

Instances of TerrainSourceContour, by default, shall use the Domain-ranked trrn:SourceContour category.

TerrainSourceFeatureElement Abstract EntityClass

A bis:SpatialLocationElement serving as base class for elements capturing specific details of a parent Terrain element that came from the source data that was utilized to create the Terrain element.

Base Class: BisCore:SpatialLocationElement

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

TerrainSourceFeatureElements store its geometrical details in their GeometryStream.

TerrainSpotElevation (Terrain Spot Elevation) EntityClass

A TerrainSourceFeature capturing a specific point-location(s) with no functional relationship with any other point in a terrain.

Base Class: Terrain:TerrainSourceFeatureElement

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

One TerrainSpotElevation typically captures one point, but multiple of them could be captured by a single TerrainSpotElevation instance if they do not capture additional data per spot elevation.

A TerrainSpotElevation stores its geometrical details in its GeometryStream as a PointString3d. The elevation captured by a TerrainSpotElevation can be read from each point's Z-coordinate in the PointString3d. If a single instance of TerrainSpotElevation is capturing only one Spot elevation, its GeometryStream shall contain a PointString3d with one single point in it.

Instances of TerrainSpotElevation, by default, shall use the Domain-ranked trrn:SpotElevation category.

TerrainVoid (Terrain Void) EntityClass

A TerrainSourceFeature capturing an area defined by a closed shape that delineates a region of missing or invalid data that should not be used.

Base Class: Terrain:TerrainSourceFeatureElement

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

TerrainSpotElevations or TerrainBreaklines located within a TerrainVoid area are ignored. That is, no point or break-line data located within the void area is utilized and no triangles are created inside the void areas. The void coordinates are included in the triangulation and void lines, between successive void coordinates, are inserted as drape lines on the surface. Therefore, they do not change the slope or elevations of the surface. A TerrainVoid never overrides a TerrainIsland.

One TerrainVoid typically captures one void feature, but multiple of them could be captured by a single TerrainVoid instance if they do not capture additional data per void feature.

A TerrainVoid stores its geometrical details in its GeometryStream as closed line-strings (i.e. no arcs) encoded into a LineString3d. The first and last point of the LineString3d shall be the same. If a single instance of TerrainVoid is capturing multiple void features, each void feature shall be encoded into a separate LineString3d in the GeometryStream.

Instances of TerrainVoid, by default, shall use the Domain-ranked trrn:Void category.

Mixins

ITerrain Abstract Mixin

Mix-in to be supported by bis:PhysicalElement-subclasses modeling the base terrain of a portion of the earth.

Applies To: PhysicalElement

ITerrain is a common mix-in expected to be implemented by element-classes defining a static context for assets and projects.

There are three terrain types in iModels:

  1. Background Default Terrain (defined in the iModel settings)
  2. TerrainReferences
  3. Terrains

TerrainReference and Terrain implement ITerrain. These three terrain types interact as follows.

The Background Default Terrain comes from a service (typically Cesium World Terrain). This background terrain is typically available world-wide. For the iModel, the Background Default Terrain is used wherever there is no other terrain defined.

TerrainReferences also provide terrain from a service while Terrains fully capture terrain in the iModel itself. The terrain defined by TerrainReferences and Terrains tends to be from data that was captured specifically for the project or asset under consideration and is generally more accurate and/or more current than the terrain provided by the Background Default Terrain. TerrainReferences and Terrains are always used instead of Background Default Terrain where they overlap. In many large projects there will be multiple TerrainReferences and Terrains provided. For example, one TerrainReference may provide a low-resolution terrain for the entire project site and other Terrains may define high-resolution terrain for focused areas where most of the work will occur. Where TerrainReferences' and Terrains' overlap, the Terrain elements will be used.

In Digital Twins, all three types of terrain can provide the context for the infrastructure or the starting (or current) conditions of the site, but it is more typical for Background Default Terrain and TerrainReferences to do so.

Relationship Classes

ITerrainOwnsBoundary RelationshipClass

Base Class: BisCore:ElementOwnsChildElements

Strength: Embedding

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: owns

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is owned by

Multiplicity: (0..*)

Constraint Classes:

TerrainOwnsSourceFeatures RelationshipClass

Base Class: BisCore:ElementOwnsChildElements

Strength: Embedding

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: owns

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is owned by

Multiplicity: (0..*)

Constraint Classes:

Relationship enabling a TerrainReference to refer to the bis:RepositoryLink that captures the location of the service providing its details.

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: refers to

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is referenced by

Multiplicity: (0..1)

Constraint Classes:

Last Updated: 13 February, 2024