BisCore

alias: bis

version: 1.0.9

The BIS core schema contains classes that all other domain schemas extend.

displayLabel: BIS Core

BisCore contains the core classes that define the fundamental building-blocks of BIS (e.g. Models, Elements, and ElementAspects) and which specialize them to establish domain-neutral base-classes for modeling the real world from multiple Modeling Perspectives.

BisCore also contains some less-fundamental classes related to infrastructure engineering visualization and documentation in general, such as drawings, views, etc.

The core classes are decorated by ECCustomAttributes that effectively define the database schema mapping for an iModel, but which can be ignored for other kinds of BIS Repositories. Other schemas cannot alter the underlying database schema mapping without explicit permission from BisCore.

The classes of BisCore are used as base classes for all classes in other BIS Domain schemas.

See Base Infrastructure Schemas

Entity Classes

AnnotationElement2d (2D Annotation Element) EntityClass

description: bis:AnnotationElement2d is a bis:GraphicalElement2d used to annotate drawings and sheets.

baseClass: BisCore:GraphicalElement2d

AnnotationFrameStyle (Annotation Frame Style) Sealed EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description Description of the style string
Data Encoded style properties binary

AnnotationLeaderStyle (Annotation Leader Style) Sealed EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description Description of the style string
Data Encoded style properties binary

AnnotationTextStyle (Annotation Text Style) Sealed EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description Description of the style string
Data Encoded style properties binary

AuxCoordSystem (Auxiliary Coordinate System) Abstract EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Type See the ACSType enum. None = 0; Rectangular = 1; Cylindrical = 2; Spherical = 3. int
Description A human-readable description of the Auxiliary Coordinate System string

AuxCoordSystem2d (2D Auxiliary Coordinate System) EntityClass

description: A 2D coordinate system.

baseClass: BisCore:AuxCoordSystem

Properties

Name Description Type Extended Type
Origin Defines the real location of the 0, 0 coordinate of the ACS. point2d
Angle The angle (in degrees) of the Coordinate System double

AuxCoordSystem3d (3D Auxiliary Coordinate System) EntityClass

description: A 3D coordinate system.

baseClass: BisCore:AuxCoordSystem

Properties

Name Description Type Extended Type
Origin Defines the plane of the ACS and the real location of the 0, 0, 0 coordinate of the ACS. point3d
Yaw The Yaw angle (in degrees) of the orientation of this Coordinate System double
Pitch The Pitch angle (in degrees) of the orientation of this Coordinate System double
Roll The Roll angle (in degrees) of the orientation of this Coordinate System double

AuxCoordSystemSpatial (Spatial Auxiliary Coordinate System) EntityClass

description: A spatial coordinate system.

baseClass: BisCore:AuxCoordSystem3d

Category Abstract EntityClass

description: A bis:Category categorizes a bis:GeometricElement and its geometry. Every bis:GeometricElement is in one and only one bis:Category. The visibility (on/off) of a bis:Category may be controlled per-view. Categories are similar to levels in DGN, layers in DWG, and categories in RVT.

baseClass: BisCore:DefinitionElement

Categories should be standardized by domain groups where possible. They generally correlate with groups of BIS Element classes, or a single base class.

See Categories Introduction.

Also see the ClassificationSystems domain schema. In retrospect, the complexity added by introducing a distinct 'Spatial Location' perspective may have not been worth the benefit. Our current recommendation is to not instantiate a SpatialLocationPartition, but instead to organize spatial locations in the context of the PhysicalModel hierarchy.

Properties

Name Description Type Extended Type
Description A human-readable description of the Category string
Rank The Rank of a category indicates how it was created and where it can be used. 0=System; 1=Domain; 2=Application; 3=User. int

CategorySelector (Category Selector) EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

CodeSpec (Code Specification) Sealed EntityClass

description: A bis:CodeSpec (code specification) captures the rules for encoding and decoding significant business information into and from a Code (string). This specification is used to generate and validate Codes.

Properties

Name Description Type Extended Type
Name The unique name of the bis:CodeSpec. A best practice is to incorporate the schema alias or domain name into the bis:CodeSpec name to ensure uniqueness. string
JsonProperties A JSON string containing scope and fragment specifications used to generate and validate code values string Json

ColorBook (Color Book) Sealed EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Individual colors are stored in JsonProperties

Properties

Name Description Type Extended Type
Description A human-readable description of the ColorBook string

DefinitionElement (Definition Element) Abstract EntityClass

description: A bis:DefinitionElement holds configuration-related information that is meant to be referenced/shared.

baseClass: BisCore:InformationContentElement

Properties

Name Description Type Extended Type
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean

DefinitionModel (Definition Model) EntityClass

description: A container for persisting bis:DefinitionElement instances.

baseClass: BisCore:InformationModel

DefinitionPartition (Definition Partition) Sealed EntityClass

description: A bis:DefinitionPartition element establishes a 'Definition' Modeling Perspective for its parent bis:Subject. A bis:DefinitionPartition is always sub-modeled by a bis:DefinitionModel.

baseClass: BisCore:InformationPartitionElement

The 'Definition' Modeling Perspective is for modeling definitions of things that are shared by multiple particular Entities.

DictionaryModel (Dictionary Model) Sealed EntityClass

description: The singleton container for repository-global bis:DefinitionElement instances.

baseClass: BisCore:DefinitionModel

DisplayStyle (Display Style) Abstract EntityClass

description: A bis:DisplayStyle defines the 'styling' parameters for rendering the contents of a view. It determines how graphics are rendered, not which elements are rendered. A bis:DisplayStyle can be shared by many Views.

baseClass: BisCore:DefinitionElement

DisplayStyle2d (2D Display Style) EntityClass

description: A bis:DisplayStyle2d defines the 'styling' parameters for rendering the contents of a 2D View.

baseClass: BisCore:DisplayStyle

DisplayStyle3d (3D Display Style) EntityClass

description: A bis:DisplayStyle3d defines the 'styling' parameters for rendering the contents of a 3D View.

baseClass: BisCore:DisplayStyle

Document (Document) Abstract EntityClass

description: A bis:Document is a social artifact designed with the distinct purpose to convey information in a manner that maximizes reach and lifespan and minimize dependency on other artifacts. Although there is often a one-to-one relationship between a bis:Document and an electronic file, this does not imply that a document is a file; instead, a document can be realized in many different media (such as paper) or have more than one file supporting it.

baseClass: BisCore:InformationContentElement

DocumentCarrier (Document Carrier) Abstract EntityClass Deprecated

description: DEPRECATED: A Document Carrier is an Information Carrier that carries a Document. An electronic file is a good example.

baseClass: BisCore:InformationCarrierElement

DocumentListModel (Document List) EntityClass

description: A container for persisting bis:Document elements.

baseClass: BisCore:InformationModel

DocumentPartition (Document Partition) Sealed EntityClass

description: A bis:DocumentPartition element establishes a 'Document' Modeling Perspective for its parent bis:Subject. A bis:DocumentPartition is always sub-modeled by a bis:DocumentListModel.

baseClass: BisCore:InformationPartitionElement

The 'Document' Modeling Perspective is a subset of the 'Information' Modeling Perspective. It holds Elements which describes Entities using Documents and is used to create primary documents such as Drawings.

Drawing EntityClass

description: A bis:Drawing is a bis:Document of a 2D drawing.

baseClass: BisCore:Document

DrawingCategory (Drawing Category) Sealed EntityClass

description: A bis:DrawingCategory is used for classifying bis:GeometricElement2d elements via the bis:GeometricElement2dIsInCategory (concrete and sealed) relationship.

baseClass: BisCore:Category

DrawingGraphic (Drawing Graphic) EntityClass

description: bis:DrawingGraphic is a bis:GraphicalElement2d used to persist graphics for use in drawings.

baseClass: BisCore:GraphicalElement2d

DrawingModel (Drawing Model) EntityClass

description: A container for persisting bis:DrawingGraphic elements.

baseClass: BisCore:GraphicalModel2d

DrawingViewDefinition (Drawing View Definition) EntityClass

description: A bis:DrawingViewDefinition specifies parameters for a view of a bis:DrawingModel.

baseClass: BisCore:ViewDefinition2d

DriverBundleElement (Driver Bundle Element) Abstract EntityClass

description: A bis:DriverBundleElement is used in conjunction with bis:ElementDrivesElement relationships to bundle multiple inputs before driving the output bis:Element.

baseClass: BisCore:InformationContentElement

Used when multiple inputs for a "driving" relationship cannot be considered in isolation.

See ElementDrivesElement.

Element Abstract EntityClass

description: A bis:Element is the smallest individually identifiable building block for modeling the real world. Each bis:Element represents an Entity in the real world. Sets of bis:Elements (contained in bis:Models) are used to sub-model other bis:Elements that represent larger scale real world Entities. Using this recursive modeling strategy, bis:Elements can represent Entities at any scale. Elements can represent physical things, abstract concepts or simply be information records.

See Element Fundamentals.

Properties

Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores the formal name (business key) for a bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json

ElementAspect (Element Aspect) Abstract EntityClass

description: A bis:ElementAspect is a class that defines a set of properties that are related to (and owned by) a single bis:Element. Semantically, a bis:ElementAspect can be considered part of the bis:Element. Thus, a bis:ElementAspect is deleted if its owning bis:Element is deleted.

ElementMultiAspect (Element Multi-Aspect) Abstract EntityClass

description: A bis:ElementMultiAspect is a bis:ElementAspect where there can be N instances of the bis:ElementAspect class per bis:Element.

baseClass: BisCore:ElementAspect

Properties

Name Description Type Extended Type
Element The bis:Element that owns this bis:ElementMultiAspect. navigation

ElementUniqueAspect (Element Unique Aspect) Abstract EntityClass

description: A bis:ElementUniqueAspect is a bis:ElementAspect where there can be only zero or one instance of the bis:ElementAspect class per bis:Element.

baseClass: BisCore:ElementAspect

Properties

Name Description Type Extended Type
Element The bis:Element that owns this bis:ElementUniqueAspect navigation

description: A bis:EmbeddedFileLink is a bis:LinkElement that links to a file embedded within the iModel.

baseClass: BisCore:LinkElement

Properties

Name Description Type Extended Type
Name A name for looking up the embedded file. Must be unique within the iModel. string
Description A human-readable description of the Embedded File string

ExternalSourceAspect (External Source Aspect) EntityClass

description: A bis:ElementMultiAspect that stores synchronization information for a bis:Element originating from an external source.

baseClass: BisCore:ElementMultiAspect

Properties

Name Description Type Extended Type
Scope The context in which the combination of (Kind, Identifier) identifies the object uniquely within the source repository. Scope is the Id of a bis:Element in the iModel (not the source) that corresponds to the scope or container in the source that owns, contains, or qualifies the idEntity of the source object. navigation
Identifier The identifier of the object in the source repository string
Kind The kind of object within the source repository string
Version An optional value that is typically a version number or a pseudo version number like last modified time. It will be used by the synchronization process to detect that a source object is unchanged so that computing a cryptographic hash can be avoided. If present, this value must be guaranteed to change when any of the source object's content changes. string
Checksum The cryptographic hash (any algorithm) of the source object's content. If defined, it must be guaranteed to change when the source object's content changes. string
JsonProperties A place where additional JSON properties can be stored. For example, provenance information or properties relating to the synchronization process. string Json

GeometricElement (Geometric Element) Abstract EntityClass

description: bis:GeometricElement ia an abstract base class used to model real world Entities that intrinsically have geometry.

baseClass: BisCore:Element

GeometricElement2d (2D Geometric Element) Abstract EntityClass

description: bis:GeometricElement2d is an abstract base class used to model information Entities that intrinsically have 2D geometry.

baseClass: BisCore:GeometricElement

Properties

Name Description Type Extended Type
Category The bis:DrawingCategory used to categorize this bis:GeometricElement2d instance. navigation
Origin The placement origin of this bis:Element. point2d
Rotation The placement rotation (in degrees) of this bis:Element. double
BBoxLow The 'low' point of the element-aligned bounding box of this bis:Element. point2d
BBoxHigh The 'high' point of the element-aligned bounding box of this bis:Element. point2d
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 by instance of this Element. navigation

GeometricElement3d (3D Geometric Element) Abstract EntityClass

description: bis:GeometricElement3d is an abstract base class used to model real world Entities that intrinsically have 3D geometry.

baseClass: BisCore:GeometricElement

Properties

Name Description Type Extended Type
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

GeometricModel (Geometric Model) Abstract EntityClass

description: A container for persisting bis:GeometricElement instances.

baseClass: BisCore:Model

Properties

Name Description Type Extended Type
GeometryGuid A GUID that changes whenever any element in this GeometricModel has a change to its geometry. binary BeGuid

GeometricModel2d (2D Geometric Model) Abstract EntityClass

description: A container for persisting bis:GeometricElement2d instances.

baseClass: BisCore:GeometricModel

Properties

Name Description Type Extended Type
GlobalOrigin The actual coordinates of (0,0) in modeling coordinates. An offset applied to all modeling coordinates. point2d

GeometricModel3d (3D Geometric Model) Abstract EntityClass

description: A container for persisting bis:GeometricElement3d instances, which are considered to be in the iModel's real-world coordinate system unless their InSpatialIndex property has been set to 'false'.

baseClass: BisCore:GeometricModel

Properties

Name Description Type Extended Type
IsNotSpatiallyLocated If IsNotSpatiallyLocated is true, then the elements in this bis:GeometricModel3d are not in real-world coordinates and will not be in the spatial index. boolean
IsPlanProjection If IsPlanProjection is true, then the elements in this bis:GeometricModel3d are expected to be in an XY plane. boolean

GeometryPart (Geometry Part) EntityClass

description: A bis:DefinitionElement that specifies a collection of geometry that is meant to be reused across bis:GeometricElement instances. Leveraging bis:GeometryParts can help reduce file size and improve display performance.

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
GeometryStream The actual geometry of the Geometry Part binary GeometryStream
BBoxLow The low corner of the Geometry Part's bounding box. point3d
BBoxHigh The high corner of the Geometry Part's bounding box point3d

GraphicalElement2d (2D Graphical Element) Abstract EntityClass

description: bis:GraphicalElement2d is an abstract base class for 2D geometric elements that are used to convey information within graphical presentations (like drawings).

baseClass: BisCore:GeometricElement2d

GraphicalElement3d (3D Graphical Element) Abstract EntityClass

description: A bis:GraphicalElement3d element conveys information within 3D graphical presentations.

baseClass: BisCore:GeometricElement3d

GraphicalModel2d (2D Graphical Model) Abstract EntityClass

description: A container for persisting bis:GraphicalElement2d instances.

baseClass: BisCore:GeometricModel2d

GraphicalModel3d (3D Graphical Model) Abstract EntityClass

description: A container for persisting bis:GraphicalElement3d instances.

baseClass: BisCore:GeometricModel3d

GraphicalPartition3d (3D Graphical Partition) Sealed EntityClass

description: A bis:GraphicalPartition3d element establishes a '3D Graphical' Modeling Perspective for its parent bis:Subject. A bis:GraphicalPartition3d is always sub-modeled by a bis:GraphicalModel3d.

baseClass: BisCore:InformationPartitionElement

GraphicalType2d (2D Graphical Type) Abstract EntityClass

description: Defines a shared set of properties (the 'type') that can be associated with a bis:GraphicalElement2d instance.

baseClass: BisCore:TypeDefinitionElement

GroupInformationElement (Group Information) Abstract EntityClass

description: bis:GroupInformationElement is an abstract base class used for modeling Entities whose main purpose is to group related elements.

baseClass: BisCore:InformationReferenceElement

GroupInformationModel (Group Information Model) Abstract EntityClass

description: A container for persisting bis:GroupInformationElement instances.

baseClass: BisCore:InformationModel

GroupInformationPartition (Group Information Partition) Sealed EntityClass

description: A bis:GroupInformationPartition element establishes a 'Group Information' Modeling Perspective for its parent bis:Subject. A bis:GroupInformationPartition is always sub-modeled by a bis:GroupInformationModel.

baseClass: BisCore:InformationPartitionElement

The 'GroupInformation' Modeling Perspective is a subset of the 'Information' Modeling Perspective. It is used primarily to hold generic:Group Elements generated from DgnV8 'Named Groups'.

InformationCarrierElement (Information Carrier) Abstract EntityClass Deprecated

description: DEPRECATED: An Information Carrier carries information, but is not the information itself. For example, the arrangement of ink on paper or the sequence of electronic bits are information carriers.

baseClass: BisCore:Element

InformationContentElement (Information Content Element) Abstract EntityClass

description: bis:InformationContentElement is an abstract base class for modeling pure information Entities. Only the core framework should directly subclass from bis:InformationContentElement. Domain and application developers should start with the most appropriate subclass of bis:InformationContentElement.

baseClass: BisCore:Element

InformationModel (Information Model) Abstract EntityClass

description: A container for persisting bis:InformationContentElement instances.

baseClass: BisCore:Model

InformationPartitionElement (Information Partition) Abstract EntityClass

description: An instance of a specialization of bis:InformationPartitionElement establishes a particular Modeling Perspective for its parent bis:Subject. Instances are always sub-modeled by a specialization of bis:Model of the appropriate Modeling Perspective.

baseClass: BisCore:InformationContentElement

An InformationPartitionElement partitions the information in a BIS Repository into non-overlapping hierarchies of Models and Elements, each with a distinct Modeling Perspective. In some cases it further-partitions information into distinct subsets within a Modeling Perspective, based on a specific domain.

A bis:Subject mentions a real-world Object. BIS sees the Object as one-or-more Entities, where each Entity considers the Object from a particular Modeling Perspective. A specialization of a bis:InformationPartitionElement establishes a Perspective for modeling the Object to which the Subject refers. The top-Model sub-models the Partition. The actual modeling of the Entity with one-or-more Elements of the appropriate Modeling Perspective begins in the top-Model.

See Top of the World

Properties

Name Description Type Extended Type
Description A human-readable string describing the intent behind the partition. string

InformationRecordElement (Information Record Element) Abstract EntityClass

description: bis:InformationRecordElement is an abstract base class for modeling information records. The bis:InformationRecordElement class is the default choice if no other subclass of bis:InformationContentElement makes sense.

baseClass: BisCore:InformationContentElement

InformationRecordModel (Information Record Model) EntityClass

description: A container for persisting bis:InformationRecordElement instances

baseClass: BisCore:InformationModel

InformationRecordPartition (Information Record Partition) Sealed EntityClass

description: A bis:InformationRecordPartition element establishes a 'Information Record' Modeling Perspective for its parent bis:Subject. A bis:InformationRecordPartition is always sub-modeled by a bis:InformationRecordModel.

baseClass: BisCore:InformationPartitionElement

The 'InformationRecord' Modeling Perspective is a subset of the 'Information' Modeling Perspective. It can hold a broad array of information records describing Entities.

InformationReferenceElement (Information Reference) Abstract EntityClass

description: bis:InformationReferenceElement is an abstract base class used for modeling Entities whose main purpose is to reference something else.

baseClass: BisCore:InformationContentElement

LightLocation (Light Location) Sealed EntityClass

description: The spatial location of a light source

baseClass: BisCore:SpatialLocationElement

Properties

Name Description Type Extended Type
Enabled Indicates that the light is on. boolean

LineStyle (Line Style) Sealed EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description Description of the style string
Data Encoded style properties string Json

LinkElement (Link) Abstract EntityClass

description: A bis:LinkElement is a bis:InformationReferenceElement that specifies a link to some resource that is not modeled with BIS.

baseClass: BisCore:InformationReferenceElement

The link is generally to some resource, e.g. the subclass UrlLink points to an external resource while EmbeddedFileLink points to files embedded in an iModel.

LinkModel (Link Model) EntityClass

description: A container for persisting bis:LinkElement instances.

baseClass: BisCore:InformationModel

LinkPartition (Link Partition) Sealed EntityClass

description: A bis:LinkPartition element establishes a 'Link' Modeling Perspective for its parent bis:Subject. A bis:LinkPartition is always sub-modeled by a bis:LinkModel.

baseClass: BisCore:InformationPartitionElement

The 'Link' Modeling Perspective is a subset of the 'Information' Modeling Perspective. It is used to hold links to external repositories, e.g. in the form of bis:RepositoryLink elements.

Model Abstract EntityClass

description: A bis:Model is a container for persisting a collection of related elements.

See Model Fundamentals.

Properties

Name Description Type Extended Type
ParentModel The parent bis:Model contains the bis:Element that this bis:Model is sub-modeling. navigation
ModeledElement The bis:Element that this bis:Model is sub-modeling. This bis:Model models the same Entity as the sub-Modeled bis:Element, but at a finer granularity. navigation
IsPrivate If IsPrivate is true then this bis:Model should not appear in lists shown to the user. boolean
IsTemplate If IsTemplate is true then this bis:Model is used as a template for creating new instances. boolean
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
LastMod The last time any element in this Model was modified. dateTime

ModelSelector (Model Selector) EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

OrthographicViewDefinition (Orthographic Spatial View) EntityClass

description: A spatial view that always shows a parallel projection.

baseClass: BisCore:SpatialViewDefinition

PhysicalElement (Physical Element) Abstract EntityClass

description: A bis:PhysicalElement is spatially located, has mass, and can be 'touched'.

baseClass: BisCore:SpatialElement

PhysicalMaterial (Physical Material) Abstract EntityClass

description: A bis:PhysicalMaterial defines the matter of which physical objects are made. bis:PhysicalMaterials are not used to define rendering characteristics (see bis:RenderMaterial).

baseClass: BisCore:DefinitionElement

PhysicalModel (Physical Model) EntityClass

description: A container for persisting bis:PhysicalElement and bis:SpatialLocationElement instances used to model real physical space. Also allows bis:GraphicalElement3d and bis:InformationContentElement.

baseClass: BisCore:SpatialModel

PhysicalPartition (Physical Partition) Sealed EntityClass

description: A bis:PhysicalPartition element establishes a 'Physical' Modeling Perspective for its parent bis:Subject. A bis:PhysicalPartition is always sub-modeled by a bis:PhysicalModel.

baseClass: BisCore:InformationPartitionElement

The 'Physical' Perspective is for modeling physical Entities (which have mass) and for spatial location Entities (which are generally either defined-by physical Entities or are used-to-define physical Entities).

PhysicalPortion (Physical Portion) Abstract EntityClass Deprecated

description: DEPRECATED: A Physical Portion represents an arbitrary portion of a larger Physical Element that will be sub-modeled by a Physical Model.

baseClass: BisCore:PhysicalElement

PhysicalType (Physical Type) Abstract EntityClass

description: Defines a shared set of properties whose values vary per-type of a bis:PhysicalElement rather than per-instance. Intended for modeling Entities such as catalog entries, that typically define property values that are common among all instances associated with a given catalog entry.

baseClass: BisCore:TypeDefinitionElement

A PhysicalType is particularly useful in cases where a physical item can be ordered from a catalog. Each type of item will have the same set of type-specific properties. For example: manufacturer name, model number, maintenance intervals, etc.

RecipeDefinitionElement (Recipe Definition) Abstract EntityClass

description: Defines instructions for creating/updating Element instances, e.g. determining their geometry from a template or a parametric script.

baseClass: BisCore:DefinitionElement

RenderMaterial (Render Material) Sealed EntityClass

description: A bis:RenderMaterial defines the rendering properties of materials for display. Not to be confused with a bis:PhysicalMaterial.

baseClass: BisCore:DefinitionElement

Marked as "Sealed" because JsonProperties will be used to persist data. This allows a single instance to "morph" between a DgnV8 render material and a future PBR material.

Properties

Name Description Type Extended Type
PaletteName The palette name that categorizes this RenderMaterial. string
Description A human-readable description of the RenderMaterial string

description: A bis:RepositoryLink is a bis:UrlLink element that links to an external repository. It implements ISubModeledElement only so that a sub-Model could be used to cache information from the external repository.

baseClass: BisCore:UrlLink

Properties

Name Description Type Extended Type
RepositoryGuid A GUID that identifies the external repository. binary BeGuid

RepositoryModel (Repository Model) Sealed EntityClass

description: The singleton Model at the root of a BIS repository. Contains a hierarchy of bis:Subject elements that declare what the repository is modeling and child bis:InformationPartitionElement instances that establish Modeling Perspectives. Serves as a high-level table-of-contents for the BIS repository.

baseClass: BisCore:DefinitionModel

RoleElement (Role Element) Abstract EntityClass

description: A real world Entity is modeled as a bis:RoleElement when a set of external circumstances define an important role (one that is worth tracking) that is not intrinsic to the Entity playing the role. For example, a person can play the role of a teacher or a rock can play the role of a boundary marker.

baseClass: BisCore:Element

RoleModel (Role Model) EntityClass

description: A container for persisting bis:RoleElement instances.

baseClass: BisCore:Model

SectionDrawing (Section Drawing) EntityClass

description: A bis:SectionDrawing is a bis:Document of a 2D section drawing.

baseClass: BisCore:Drawing

SectionDrawingModel (Section Drawing Model) EntityClass

description: A container for persisting section bis:DrawingGraphic elements representing a cross-section of a PhysicalModel. Generally at the same scale as the sectioned geometry to allow it to be display in situ at the location of the sectioning.

baseClass: BisCore:DrawingModel

SectionLocation (Section Location) EntityClass

description: The section location defines how a section drawing should be generated in a 3d view.

baseClass: BisCore:SpatialLocationElement

Properties

Name Description Type Extended Type
SectionType Type of the section: e.g. Section, Plan, Elevation, Detail. SectionType
ClipGeometry Details on how this section was clipped. string Json
ModelSelector Describes the models relevant for this section location display. navigation
CategorySelector Describes the categories relevant for this section location display. navigation
ViewAttachment navigation

Sheet EntityClass

description: A bis:Sheet is a bis:Document of a 2D sheet.

baseClass: BisCore:Document

Properties

Name Description Type Extended Type
Scale The Sheet's drawing scale double
Height Height of the Sheet (in meters) double
Width Width of the Sheet (in meters) double
SheetTemplate navigation

SheetBorder (Sheet Border) EntityClass

description: <No description>

baseClass: BisCore:DrawingGraphic

Properties

Name Description Type Extended Type
BorderTemplate navigation

SheetBorderTemplate (Sheet Border Template) EntityClass

description: <No description>

baseClass: BisCore:Document

Properties

Name Description Type Extended Type
Height Height of the sheet border. double
Width Width of the sheet border. double

SheetModel (Sheet Model) EntityClass

description: A container for persisting sheet views and graphics.

baseClass: BisCore:GraphicalModel2d

SheetTemplate (Sheet Template) EntityClass

description: <No description>

baseClass: BisCore:Document

Properties

Name Description Type Extended Type
Height Height of the sheet. double
Width Width of the sheet. double
Border navigation

SheetViewDefinition (Sheet View Definition) EntityClass

description: A bis:SheetViewDefinition specifies parameters for a view of a bis:SheetModel.

baseClass: BisCore:ViewDefinition2d

SpatialCategory (Spatial Category) Sealed EntityClass

description: A bis:SpatialCategory is used for classifying bis:GeometricElement3d elements via the bis:GeometricElement3dIsInCategory (concrete and sealed) relationship.

baseClass: BisCore:Category

SpatialElement (Spatial Element) Abstract EntityClass

description: A bis:SpatialElement is a bis:GeometricElement3d that occupies real world space.

baseClass: BisCore:GeometricElement3d

SpatialIndex (Spatial Index) Sealed EntityClass

description: The Spatial Index contains information used to optimize spatial queries. Like other database indices, it is automatically maintained by the system.

Properties

Name Description Type Extended Type
MinX Minimum X value of the axis-aligned range box that encloses the spatial element double
MaxX Maximum X value of the axis-aligned range box that encloses the spatial element double
MinY Minimum Y value of the axis-aligned range box that encloses the spatial element double
MaxY Maximum Y value of the axis-aligned range box that encloses the spatial element double
MinZ Minimum Z value of the axis-aligned range box that encloses the spatial element double
MaxZ Maximum Z value of the axis-aligned range box that encloses the spatial element double

SpatialLocationElement (Spatial Location Element) Abstract EntityClass

description: A bis:SpatialLocationElement identifies a 'tracked' real world location but has no mass and cannot be 'touched'.

baseClass: BisCore:SpatialElement

SpatialLocationModel (Spatial Location Model) EntityClass

description: A container for persisting bis:SpatialLocationElement instances. Also allows bis:GraphicalElement3d and bis:InformationContentElement.

baseClass: BisCore:SpatialModel

SpatialLocationPartition (Spatial Location Partition) Sealed EntityClass

description: A bis:SpatialLocationPartition element establishes a 'SpatialLocation' Modeling Perspective for its parent bis:Subject. A bis:SpatialLocationPartition is always sub-modeled by a bis:SpatialLocationModel.

baseClass: BisCore:InformationPartitionElement

The “Spatial Location” perspective is a strict subset of the “Physical” perspective. Spatial locations are massless, but they manifest in the real physical world:

  • They may be defined in relation to physical entities, e.g. the air gap between two conductors, the space around an access panel, the volume occupied by a physical Entity, or a surface demarcating a region on the surface of a physical entity.
  • They may be used to guide positioning of physical Entities, e.g. grid lines that may be manifested physically on a construction site via chalk lines or laser beams.
  • They may be abstractions of physical consequence, like property or political boundaries that are often demarcated in the physical world via markers, signs, or natural boundaries.

The 'Spatial Location' perspective is used by SpatialLocationModel and SpatialLocationElement in order to segregate certain kinds of elements.

In retrospect, the complexity added by introducing a distinct "Spatial Location" perspective may have not been worth the benefit. Our current recommendation is to not instantiate a SpatialLocationPartition, but instead organize spatial locations in the context of the 'physical backbone', i.e. the Physical model hierarchy.

SpatialLocationPortion (Spatial Location Portion) Abstract EntityClass Deprecated

description: DEPRECATED: A Spatial Location Portion represents an arbitrary portion of a larger Spatial Location Element that will be sub-modeled by a Spatial Location Model.

baseClass: BisCore:SpatialLocationElement

SpatialLocationType (Spatial Location Type) Abstract EntityClass

description: Defines a shared set of properties whose values vary per-type of a bis:SpatialLocationElement rather than per-instance.

baseClass: BisCore:TypeDefinitionElement

SpatialModel (Spatial Model) Abstract EntityClass

description: An abstract base class for bis:PhysicalModel and bis:SpatialLocationModel--the only two types of model for real physical space. Other GeometricModel3d specializations use the real-world coordinate system, but are considered as informational or mathematical abstractions.

baseClass: BisCore:GeometricModel3d

SpatialViewDefinition (Spatial View Definition) EntityClass

description: A view of a spatially located volume.

baseClass: BisCore:ViewDefinition3d

Properties

Name Description Type Extended Type
ModelSelector navigation

SubCategory (Sub-Category) Sealed EntityClass

description: A bis:SubCategory is a subdivision of a bis:Category. SubCategories allow GeometricElements to have multiple pieces of Geometry that can be independently visible and styled (color, linesStyle, transparency, etc.). It is important to understand that a bis:SubCategory is not a bis:Category (i.e. Categories do not nest). bis:GeometricElements are always related to a bis:Category, not a bis:SubCategory.

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description A human-readable description of the SubCategory string
Properties Contains the display properties (color, style, weight, etc.) for the SubCategory. It should not be used for the persistence of application-specific information. string Json

Subject Sealed EntityClass

description: A bis:Subject is an information element that references (by name) some real-world Object that will be modeled in this BIS repository.

baseClass: BisCore:InformationReferenceElement

Subject elements only exist in the RepositoryModel singleton at the root of a BIS Repository. There will be one "root" instance of Subject that does not have a parent Subject. Child Subject elements reference "parts" of the real-world Object referenced by their parent Subject element.

The hierarchy of Subjects is not meant to model the root Object's structure, but is a way to express high-level structure that has not been modeled explicitly. Subjects do not "model" or "represent" or "describe" the Object that they reference. All modeling happens using Elements in the other bis:Models in the BIS Repository.

Properties

Name Description Type Extended Type
Description A human-readable description of the real-world Object(s) that will be modeled for this Subject string

TemplateRecipe2d (2D Template Recipe) EntityClass

description: A recipe that uses a 2D template for creating new instances.

baseClass: BisCore:RecipeDefinitionElement

TemplateRecipe3d (3D Template Recipe) EntityClass

description: A recipe that uses a 3D template for creating new instances.

baseClass: BisCore:RecipeDefinitionElement

TemplateViewDefinition2d (2D Template View Definition) EntityClass

description: A bis:ViewDefinition2d used to display a 2D template model.

baseClass: BisCore:ViewDefinition2d

TemplateViewDefinition3d (3D Template View Definition) EntityClass

description: A bis:ViewDefinition3d used to display a 3D template model.

baseClass: BisCore:ViewDefinition3d

TextAnnotation2d (2D Text Annotation) EntityClass

description: <No description>

baseClass: BisCore:AnnotationElement2d

TextAnnotation3d (3D Text Annotation) EntityClass

description: <No description>

baseClass: BisCore:GraphicalElement3d

TextAnnotationData (Text Annotation Data) Sealed EntityClass

description: The aspect used to store text annotation data for bis:TextAnnotation2d an bis:TextAnnotation3d elements.

baseClass: BisCore:ElementUniqueAspect

Properties

Name Description Type Extended Type
TextAnnotation Text in Annotations.fb.h flat buffer format binary

TextAnnotationSeed (Text Annotation Seed) Sealed EntityClass

description: <No description>

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description Description of the style string
Data Encoded style properties binary

Texture Sealed EntityClass

description: A bis:Texture represents a named texture used for rendering purposes. The texture data is stored as a binary blob interpreted according to the specified texture format.

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description A human-readable description of the Texture string
Data Encoded texture data binary
Format Format of the encoded texture data. See the ImageSourceFormat enum in the API. int
Width Image width in pixels. int
Height Image height in pixels. int
Flags Currently unused and always zero. int

TypeDefinitionElement (Type Definition) Abstract EntityClass

description: Defines a shared set of properties (the 'type') that can be associated with a bis:Element.

baseClass: BisCore:DefinitionElement

A TypeDefinitionElement is an implementation of a data normalization strategy and is meant to hold properties that vary per type instead of varying per Element instance. Rather than storing the same set of type-specific properties on every Element instance, each Element instance will have a set of instance-specific properties (as specified by the Element class) and a set of related type-specific properties found by joining to the TypeDefinitionElement instance.

See relationships such as PhysicalElementIsOfType.

Properties

Name Description Type Extended Type
Recipe navigation

description: A bis:UrlLink is a bis:LinkElement that specifies a URL link.

baseClass: BisCore:LinkElement

Properties

Name Description Type Extended Type
Url A URL pointing to an external resource. string
Description A human-readable description of the URL string

ViewAttachment (View Attachment) EntityClass

description: <No description>

baseClass: BisCore:GraphicalElement2d

Properties

Name Description Type Extended Type
View The view that is to be attached navigation

ViewDefinition (View Definition) Abstract EntityClass

description: A bis:ViewDefinition specifies the area/volume that is viewed, and refers to a bis:DisplayStyle and a bis:CategorySelector to be used. Subclasses of bis:ViewDefinition determine which model(s) are viewed.

baseClass: BisCore:DefinitionElement

Properties

Name Description Type Extended Type
Description A human-readable description of the View Definition string
CategorySelector navigation
DisplayStyle navigation

ViewDefinition2d (2D View Definition) Abstract EntityClass

description: A view of a 2D model that has its own local coordinate system.

baseClass: BisCore:ViewDefinition

Properties

Name Description Type Extended Type
BaseModel navigation
Origin Lower left corner of the viewed area. point2d
Extents Size of the view diagonal point2d
RotationAngle Rotation angle in degrees of the viewed area. double

ViewDefinition3d (3D View Definition) Abstract EntityClass

description: A bis:ViewDefinition3d specifies the volume that is viewed on referenced 3D bis:Models. It refers to a bis:DisplayStyle3d and a bis:CategorySelector to be used.

baseClass: BisCore:ViewDefinition

Properties

Name Description Type Extended Type
Origin Origin of the viewed volume on the lower, back, rear point3d
Extents Size of the view diagonal point3d
Yaw Yaw component of the view direction in degrees double
Pitch Pitch component of the view direction in degrees double
Roll Roll component of the view direction in degrees double
IsCameraOn Is the camera actually turned on? boolean
EyePoint Camera eye point point3d
LensAngle Camera lens angle in degrees double
FocusDistance Camera focus distance double

VolumeElement (Volume Element) EntityClass

description: A bis:VolumeElement is a bis:SpatialLocationElement that is restricted to defining a volume.

baseClass: BisCore:SpatialLocationElement

WebMercatorModel (Web Mercator Model) EntityClass Deprecated

description: DEPRECATED. Not used.

baseClass: BisCore:SpatialModel

Relationship Classes

BaseModelForView2d Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See ViewDefinition2d.BaseModel ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: is base model for

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: has base

multiplicity: (0..*)

Constraint Classes:

CategoryOwnsSubCategories RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: is owned by

multiplicity: (0..*)

Constraint Classes:

CategorySelectorRefersToCategories Sealed RelationshipClass

description: <No description>

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: refers to

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..*)

Constraint Classes:

CodeSpecSpecifiesCode Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See Element.CodeSpec ECNavigationProperty.

Source

isPolymorphic: true

roleLabel: specified code for

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: code is specified by

multiplicity: (0..*)

Constraint Classes:

DrawingGraphicRepresentsElement RelationshipClass

description: Relates a bis:DrawingGraphic to the bis:Element that it represents.

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: represents

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is represented by

multiplicity: (0..*)

Constraint Classes:

DrawingModelBreaksDownDrawing (DrawingModel Sub-Models Drawing) RelationshipClass

description: <No description>

baseClass: BisCore:ModelModelsElement

Strength: Embedding

strengthDirection: Backward

A more consistent name for this relationship would have been 'DrawingModelSubModelsDrawing', but the existing name cannot be changed in this generation of BIS. At times, we use "breaks down" as a synonym for "sub-models", but we are standardizing on "sub-models", reserving "breakdown" for use with various engineering breakdown structures.

Source

isPolymorphic: true

roleLabel: sub-models

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is sub-modeled by

multiplicity: (1..1)

Constraint Classes:

ElementDrivesElement RelationshipClass

description: A relationship that indicates that the source Element drives (controls the lifecycle or structure of) a dependent target Element.

Strength: Referencing

strengthDirection: Forward

In iModels, a change-propagation system calls handlers that allow the driven Element to be affected by the driving Element. See DriverBundleElement.

Source

isPolymorphic: true

roleLabel: drives

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is driven by

multiplicity: (0..*)

Constraint Classes:

ElementEncapsulatesElements RelationshipClass

description: A relationship that indicates that child bis:Elements are meant to be hidden.

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: encapsulates

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is encapsulated by

multiplicity: (0..*)

Constraint Classes:

ElementGroupsMembers RelationshipClass

description: A generic relationship used to capture the members of a defined set of bis:Elements.

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: groups

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is grouped by

multiplicity: (0..*)

Constraint Classes:

description: Associates bis:LinkElements to a bis:Element.

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: has

multiplicity: (1..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..*)

Constraint Classes:

ElementOwnsChildElements RelationshipClass

description: Relates a bis:Element to child bis:Elements which represent parts of the Entity modeled by the parent bis:Element.

Strength: Embedding

strengthDirection: Forward

See Element.Parent ECNavigationProperty ECNavigationProperty Should be treated as abstract, but was not made abstract because of legacy usages that were already released.

Source

isPolymorphic: true

roleLabel: owns child

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by parent

multiplicity: (0..*)

Constraint Classes:

ElementOwnsExternalSourceAspects RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsMultiAspects

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by

multiplicity: (0..*)

Constraint Classes:

ElementOwnsMultiAspects RelationshipClass

description: <No description>

Strength: Embedding

strengthDirection: Forward

See ElementMultiAspect.Element ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by

multiplicity: (0..*)

Constraint Classes:

ElementOwnsUniqueAspect RelationshipClass

description: <No description>

Strength: Embedding

strengthDirection: Forward

See ElementUniqueAspect.Element ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by

multiplicity: (0..*)

Constraint Classes:

ElementRefersToDocuments RelationshipClass

description: A general relationship between a bis:Element and a bis:Document. There is no implied owner in this relationship – so it is valid for relationship where the document existed before the referenced element (e.g. design specification) or after (e.g. operational results).

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: refers to

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..*)

Constraint Classes:

ElementRefersToElements Abstract RelationshipClass

description: A general relationship between two bis:Elements. These are typically specialized by derived relationship to give more specific meaning.

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: refers to

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..*)

Constraint Classes:

ElementScopesCode Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See Element.CodeScope ECNavigationProperty.

Source

isPolymorphic: true

roleLabel: scopes code for

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: code is scoped by

multiplicity: (0..*)

Constraint Classes:

ElementScopesExternalSourceIdentifier Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Backward

Source

isPolymorphic: true

roleLabel: scopes

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is scoped by

multiplicity: (0..*)

Constraint Classes:

GeometricElement2dHasTypeDefinition Abstract RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See GeometricElement2d.TypeDefinition ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: classifies

multiplicity: (0..1)

Constraint Classes:

GeometricElement2dIsInCategory Sealed RelationshipClass

description: The relationship that determines the bis:DrawingCategory for a bis:GeometricElement2d.

Strength: Referencing

strengthDirection: Backward

Source

isPolymorphic: true

roleLabel: is in

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: categorizes

multiplicity: (1..1)

Constraint Classes:

GeometricElement3dHasTypeDefinition Abstract RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See GeometricElement3d.TypeDefinition ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: classifies

multiplicity: (0..1)

Constraint Classes:

GeometricElement3dIsInCategory Sealed RelationshipClass

description: The relationship that determines the bis:SpatialCategory for a bis:GeometricElement3d.

Strength: Referencing

strengthDirection: Backward

Source

isPolymorphic: true

roleLabel: is in

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: categorizes

multiplicity: (1..1)

Constraint Classes:

GraphicalElement2dIsOfType RelationshipClass

description: <No description>

baseClass: BisCore:GeometricElement2dHasTypeDefinition

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: is of

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: defines

multiplicity: (0..1)

Constraint Classes:

GraphicalElement3dRepresentsElement RelationshipClass

description: Relates a bis:GraphicalElement3d to the bis:Element that it represents.

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: represents

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is represented by

multiplicity: (0..*)

Constraint Classes:

GraphicalType2dHasTemplateRecipe RelationshipClass

description: <No description>

baseClass: BisCore:TypeDefinitionHasRecipe

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..1)

Constraint Classes:

ModelContainsElements Sealed RelationshipClass

description: The relationship that enforces that each bis:Element belongs to exactly one bis:Model.

Strength: Embedding

strengthDirection: Forward

See Element.Model ECNavigationProperty.

Source

isPolymorphic: true

roleLabel: contains

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is contained by

multiplicity: (0..*)

Constraint Classes:

ModelModelsElement (Model Sub-Models Element) RelationshipClass

description: Relates a bis:Model to the bis:Element that it sub-models. The sub-Model models the same Entity as the sub-modeled Element, but at a finer granularity.

Strength: Embedding

strengthDirection: Backward

See Model.ModeledElement ECNavigationProperty.

A more accurate name for this relationship would have been 'ModelSubModelsElement', but the existing name cannot be changed in this generation of BIS.

Source

isPolymorphic: true

roleLabel: models

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is modeled by

multiplicity: (0..1)

Constraint Classes:

ModelOwnsSubModel Sealed RelationshipClass

description: This relationship is essentially redundant with the combination of bis:ModelModelsElement and bis:ModelContainsElements. This 'shortcut' exists to support a model hierarchy index for performance reasons.

Strength: Embedding

strengthDirection: Forward

See Model.ParentModel ECNavigationProperty.

Source

isPolymorphic: true

roleLabel: owns sub

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by parent

multiplicity: (0..*)

Constraint Classes:

ModelSelectorRefersToModels Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: refers to

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..*)

Constraint Classes:

PartitionOriginatesFromRepository Sealed RelationshipClass Deprecated

description: DEPRECATED: Use ElementHasLinks

baseClass: BisCore:ElementRefersToElements

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: originates from

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is origin of

multiplicity: (0..*)

Constraint Classes:

PhysicalElementAssemblesElements RelationshipClass

description: A relationship that indicates a physical assembly of child bis:PhysicalElements.

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: assembles

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is assembled by

multiplicity: (0..*)

Constraint Classes:

PhysicalElementIsOfType RelationshipClass

description: A type-instance relation; one that indicates that the specific bis:PhysicalElement is an instance of the defined bis:PhysicalType. E.g. a pump with serial number #AR-23 is of type X-Model-Y.

baseClass: BisCore:GeometricElement3dHasTypeDefinition

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: is of

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: classifies

multiplicity: (0..1)

Constraint Classes:

PhysicalModelBreaksDownPhysicalPortion RelationshipClass Deprecated

description: DEPRECATED

baseClass: BisCore:ModelModelsElement

Strength: Embedding

strengthDirection: Backward

Source

isPolymorphic: true

roleLabel: breaks down

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is sub-modeled by

multiplicity: (0..1)

Constraint Classes:

PhysicalTypeHasTemplateRecipe RelationshipClass

description: <No description>

baseClass: BisCore:TypeDefinitionHasRecipe

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..1)

Constraint Classes:

RenderMaterialOwnsRenderMaterials RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: owns child

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: is owned by parent

multiplicity: (0..*)

Constraint Classes:

SectionLocationRefersToViewAttachment Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Backward

Source

isPolymorphic: true

roleLabel: refers to

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..1)

Constraint Classes:

SectionLocationUsesCategorySelector Sealed RelationshipClass

description: Relates a section location to the categories relevant for this section location display.

Strength: Referencing

strengthDirection: Forward

See SectionLocation.CategorySelector ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: uses

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is used by

multiplicity: (1..1)

Constraint Classes:

SectionLocationUsesModelSelector Sealed RelationshipClass

description: Relates a section location to the models relevant for this section location display.

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: uses

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is used by

multiplicity: (1..1)

Constraint Classes:

SheetBorderHasSheetBorderTemplate Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See SheetBorder.BorderTemplate ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: defines

multiplicity: (0..1)

Constraint Classes:

SheetHasSheetTemplate Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See Sheet.SheetTemplate ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: defines

multiplicity: (0..1)

Constraint Classes:

SheetModelBreaksDownSheet (SheetModel Sub-Models Sheet) RelationshipClass

description: <No description>

baseClass: BisCore:ModelModelsElement

Strength: Embedding

strengthDirection: Backward

A more consistent name for this relationship would have been 'SheetModelSubModelsSheet', but the existing name cannot be changed in this generation of BIS. At times, we use "breaks down" as a synonym for "sub-models", but we are standardizing on "sub-models", reserving "breakdown" for use with various engineering breakdown structures.

Source

isPolymorphic: true

roleLabel: sub-models

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is sub-modeled by

multiplicity: (1..1)

Constraint Classes:

SheetTemplateHasSheetBorder Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See SheetTemplate.Border ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..1)

Constraint Classes:

SpatialLocationIsOfType RelationshipClass

description: A type-instance relation; one that indicates that the specific bis:SpatialLocationElement is an instance of the defined bis:SpatialLocationType. E.g. AssemblyArea#5 if of type FloorSpace.

baseClass: BisCore:GeometricElement3dHasTypeDefinition

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: is of

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: classifies

multiplicity: (0..1)

Constraint Classes:

SpatialViewDefinitionUsesModelSelector Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See SpatialViewDefinition.ModelSelector ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: uses

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is used by

multiplicity: (1..1)

Constraint Classes:

SubjectOwnsPartitionElements RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: owns

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by

multiplicity: (0..*)

Constraint Classes:

SubjectOwnsSubjects RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: owns child

multiplicity: (0..1)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: is owned by parent

multiplicity: (0..*)

Constraint Classes:

TextAnnotation2dOwnsTextAnnotationData RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsUniqueAspect

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: is owned by

multiplicity: (0..1)

Constraint Classes:

TextAnnotation3dOwnsTextAnnotationData RelationshipClass

description: <No description>

baseClass: BisCore:ElementOwnsUniqueAspect

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: is owned by

multiplicity: (0..1)

Constraint Classes:

TypeDefinitionHasRecipe Abstract RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See TypeDefinitionElement.Recipe ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: has

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is referenced by

multiplicity: (0..1)

Constraint Classes:

ViewDefinitionUsesCategorySelector Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See ViewDefinition.CategorySelector ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: uses

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: false

roleLabel: is used by

multiplicity: (1..1)

Constraint Classes:

ViewDefinitionUsesDisplayStyle Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See ViewDefinition.DisplayStyle ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: uses

multiplicity: (0..*)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is used by

multiplicity: (1..1)

Constraint Classes:

ViewIsAttached Sealed RelationshipClass

description: <No description>

Strength: Referencing

strengthDirection: Forward

See ViewAttachment.View ECNavigationProperty ECNavigationProperty

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes:

Target

isPolymorphic: true

roleLabel: is owned by

multiplicity: (0..*)

Constraint Classes:

Enumerations

AutoHandledPropertyStatementType Enumeration

Backing Type: int

description: <No description>

Strict: true

Label Value
ReadOnly = Select|Insert 3
All = Select | Insert | Update 7

Restrictions that may be applied to an AutoHandledProperty. Must match the ECSqlClassParams::StatementType enum

CustomHandledPropertyStatementType Enumeration

Backing Type: int

description: Restrictions that may be applied to a CustomHandledProperty. Must match the ECSqlClassParams::StatementType enum

Strict: true

Label Value
None 0
Select 1
Insert 2
ReadOnly = Select|Insert 3
Update 4
InsertUpdate = Insert | Update 6
All = Select | Insert | Update 7

SectionType Enumeration

Backing Type: int

description: <No description>

Strict: false

Label Value
Section 3
Detail 4
Elevation 5
Plan 6

Mixin Classes

IParentElement (Parent Element) Abstract Mixin

description: An interface that can be mixed-into a bis:Element to indicate that it can be a parent (own child Elements). This interface is mutually exclusive with bis:ISubModeledElement.

appliesTo: Element

Only subclasses of bis:Element can implement the IParentElement interface

Parent-child modeling differs from sub-modeling in that the parent Element and child Elements are to be considered together in the context of a single Model, whereas a sub-modeled Element is considered independently of its sub-Model. For example, and application would view a parent Element and its child Elements together, but would either view a sub-modeled Element or exclude that Element and instead view the Elements of its sub-Model.

See also ISubModeledElement.

ISubModeledElement (Sub-Modeled Element) Abstract Mixin

description: An interface that can be mixed-into a bis:Element to indicate that it can be sub-modeled by a finer-grained bis:Model. This interface is mutually exclusive with bis:IParentElement.

appliesTo: Element

Sub-modeling is also sometimes described as "breaking down", i.e. a sub-modeled Element can be "broken down into" a finer-grained (sub) Model.
See also IParentElement.

Custom Attribute Classes

AutoHandledProperty CustomAttributeClass

description: Applied to an element's property to indicate that select, update, and insert of the property's value are handled automatically by the platform.

Applies to: AnyProperty

Properties

Name Description Label Category Read Only Priority
StatementTypes Indicates the statement types that are relevant for a particular auto-handled property. false 0

ClassHasHandler CustomAttributeClass

description: Applied to an ECClass to indicate that a C++ subclass of DgnDomain::Handler will supply behavior for it at run-time. This custom attribute may only be used by BisCore or other core schemas.

Applies to: Any

Applied to an ECClass to indicate that a C++ subclass of DgnDomain::Handler will supply behavior for it at run-time. This custom attribute may only be used by BisCore or other core schemas. Other schemas should use the SchemaHasBehavior instead. It must be applied to any ECClass if the application/domain registers a Handler for that ECClass. It should not be applied to any other ECClass. It is an error to call RegisterHandler() with a handler for an ECClass that lacks this custom attribute.

Properties

Name Description Label Category Read Only Priority
Restrictions List of actions that are not permitted when the associated handler is not available false 0

CustomHandledProperty CustomAttributeClass

description: Applied to an element's property to indicate that the property's value is handled specially by a C++ class. Can only be applied to properties of ECClasses that specify ClassHasHandler.

Applies to: AnyProperty

See CustomHandledPropertyStatementType.

Properties

Name Description Label Category Read Only Priority
StatementTypes Indicates the statement types that are relevant for a particular custom-handled property. false 0

ReservedPropertyNames Sealed CustomAttributeClass

description: Declare a list of properties as reserved. The property name listed would be forbidden from use in the class and classes that inherit from it.

Applies to: EntityClass, RelationshipClass

Properties

Name Description Label Category Read Only Priority
PropertyNames An array of names of properties that should not be used. Case-insensitive comparison will be used. false 0

SchemaHasBehavior CustomAttributeClass

description: Applied to an ECSchema to indicate that there is an associated JavaScript library that will provide run-time behavior.

Applies to: Schema

Properties

Name Description Label Category Read Only Priority
Restrictions List of actions that are not permitted when the associated JavaScript library is not available. false 0

Last Updated: 21 May, 2020