ECDbMeta ECSchema

alias: meta

version: 4.0.1

Entity Classes

ECClassDef

typeName: EntityClass

ECClass

displayLabel: ECClass

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
Type ECClassType
Modifier ECClassModifier
CustomAttributeContainerType ECClassType::CustomAttribute: Specifies on which containers the custom attribute ECClass can be applied to. ECCustomAttributeContainerType
RelationshipStrength Applies to ECClassType::Relationship only. ECRelationshipStrength
RelationshipStrengthDirection Applies to ECClassType::Relationship only. ECRelationshipDirection

ECEnumerationDef

typeName: EntityClass

ECEnumeration

displayLabel: ECEnumeration

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
Type PrimitiveType
IsStrict boolean
EnumValues struct array

ECPropertyDef

typeName: EntityClass

ECProperty

displayLabel: ECProperty

modifier: Sealed

Properties

Name Description Type Extended Type
Class navigation
Name string
DisplayLabel string
Description string
IsReadonly boolean
Priority int
Ordinal Position of the ECProperty in its ECClass int
Kind ECPropertyKind
PrimitiveType ECPropertyKind::Primitive: data type. ECPropertyKind::PrimitiveArray: data type of array elements. PrimitiveType
PrimitiveTypeMinLength Minimum length of strings or blobs. int
PrimitiveTypeMaxLength Maximum length of strings or blobs. int
PrimitiveTypeMinValue Minimum value of numeric primitives. double
PrimitiveTypeMaxValue Maximum value of numeric primitives. double
Enumeration ECPropertyKind::Primitive: Id of this property's ECEnumerationDef. navigation
ExtendedTypeName ECPropertyKind::Primitive or ECPropertyKind::PrimitiveArray: Extended type name further describing PrimitiveType. string
StructClass ECPropertyKind::Struct: ECClassId of property's struct type. ECPropertyKind::StructArray: ECClassId of array element struct type. navigation
KindOfQuantity ECPropertyKind::Primitive or ECPropertyKind::PrimitiveArray: Id of this property's KindOfQuantityDef. navigation
Category Id of this property's PropertyCategoryDef. navigation
ArrayMinOccurs ECPropertyKind::PrimitiveArray or ECPropertyKind::StructArray int
ArrayMaxOccurs ECPropertyKind::PrimitiveArray or ECPropertyKind::StructArray int
NavigationRelationshipClass ECPropertyKind::Navigation: ECClassId of property's relationship class. navigation
NavigationDirection ECPropertyKind::Navigation: Direction to follow the relationship defined in NonPrimitiveTypeClassId. ECRelationshipDirection

ECRelationshipConstraintDef

typeName: EntityClass

modifier: Sealed

Properties

Name Description Type Extended Type
RelationshipClass navigation
RelationshipEnd ECRelationshipEnd
MultiplicityLowerLimit int
MultiplicityUpperLimit int
IsPolymorphic boolean
RoleLabel string
AbstractConstraintClass ECClassId of base class for constraint classes of this constraint navigation

ECSchemaDef

typeName: EntityClass

ECSchema

displayLabel: ECSchema

modifier: Sealed

Properties

Name Description Type Extended Type
Name string
DisplayLabel string
Description string
Alias string
VersionMajor int
VersionWrite int
VersionMinor int
OriginalECXmlVersionMajor int
OriginalECXmlVersionMinor int

FormatCompositeUnitDef

typeName: EntityClass

FormatCompositeUnit

displayLabel: FormatCompositeUnit

modifier: Sealed

Properties

Name Description Type Extended Type
Format navigation
Label string
Unit navigation
Ordinal Position of the Composite Unit in its Format int

FormatDef

typeName: EntityClass

Format

displayLabel: Format

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
NumericSpec string JSON
CompositeSpec CompositeSpec without units. Composite units are held by FormatCompositeUnitDef string JSON

KindOfQuantityDef

typeName: EntityClass

KindOfQuantity

displayLabel: KindOfQuantity

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
PersistenceUnit string
RelativeError double
PresentationUnits string array

PhenomenonDef

typeName: EntityClass

Phenomenon

displayLabel: Phenomenon

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
Definition string

PropertyCategoryDef

typeName: EntityClass

PropertyCategory

displayLabel: PropertyCategory

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
Priority int

UnitDef

typeName: EntityClass

Unit

displayLabel: Unit

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string
UnitSystem navigation
Phenomenon navigation
Definition string
Numerator double
Denominator double
Offset double
IsConstant boolean
InvertingUnit If this property is set, this UnitDef is an inverted unit. It inverts the unit specified by this property. navigation

UnitSystemDef

typeName: EntityClass

UnitSystem

displayLabel: UnitSystem

modifier: Sealed

Properties

Name Description Type Extended Type
Schema navigation
Name string
DisplayLabel string
Description string

Relationship Classes

ClassHasAllBaseClasses

typeName: RelationshipClass

Relates a given ECClassId (Source) to all its base classes (recursively) (Target). For optimization reasons this ECRelationshipClass also holds a row for each ECClass that points to itself. Base class id order: class itself, then base classes in breadth first manner.

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is a

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is ancestor of

multiplicity: (0..*)

Constraint Classes

ClassHasBaseClasses

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is subclass of

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is base class of

multiplicity: (0..*)

Constraint Classes

ClassOwnsLocalProperties

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: locally defines

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

CompositeUnitRefersToUnit

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: refers to

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is referred to by

multiplicity: (0..1)

Constraint Classes

FormatOwnsCompositeUnits

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

PhenomenonOwnsUnits

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: has

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is of

multiplicity: (0..*)

Constraint Classes

PropertyHasCategory

typeName: RelationshipClass

Relates the property to its PropertyCategory.

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is in

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is used by

multiplicity: (0..1)

Constraint Classes

PropertyHasEnumeration

typeName: RelationshipClass

ECPropertyKind::Enumeration: relates the property to its ECEnumeration.

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is of type

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is type of

multiplicity: (0..1)

Constraint Classes

PropertyHasKindOfQuantity

typeName: RelationshipClass

ECPropertyKind::Primitive or ECPropertyKind::PrimitiveArray: relates the property to its KindOfQuantity.

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: has

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is used by

multiplicity: (0..1)

Constraint Classes

PropertyHasNavigationRelationshipClassId

typeName: RelationshipClass

ECPropertyKind::Navigation: relates the navigation property to its backing RelationshipECClass.

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is backed by

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is ECRelationshipClass of

multiplicity: (0..1)

Constraint Classes

PropertyHasStructType

typeName: RelationshipClass

ECPropertyKind::Struct: relates the struct property to its struct ECClass. ECPropertyKind::StructArray: relates the struct array property to its array element type.

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is of type

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is type of

multiplicity: (0..1)

Constraint Classes

RelationshipConstraintHasAbstractConstraintClass

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: defines

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is abstract constraint class of

multiplicity: (0..1)

Constraint Classes

RelationshipConstraintHasClasses

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is constraint class of

multiplicity: (0..*)

Constraint Classes

RelationshipHasConstraints

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: defines

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined by

multiplicity: (2..2)

Constraint Classes

SchemaHasSchemaReferences

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: references

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is referenced by

multiplicity: (0..*)

Constraint Classes

SchemaOwnsClasses

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsEnumerations

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsFormats

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsKindOfQuantities

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsPhenomena

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsPropertyCategories

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsUnitSystems

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

SchemaOwnsUnits

typeName: RelationshipClass

modifier: Sealed

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

UnitHasInvertedUnit

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: is inverted by

multiplicity: (0..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: inverts

multiplicity: (0..1)

Constraint Classes

UnitSystemHasUnits

typeName: RelationshipClass

modifier: Sealed

Strength: Referencing

strengthDirection: Forward

Source

isPolymorphic: false

roleLabel: has

multiplicity: (0..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is defined in

multiplicity: (0..*)

Constraint Classes

Enumerations

ECClassModifier

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
None 0
Abstract 1
Sealed 2

ECClassType

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Entity 0
Relationship 1
Struct 2
CustomAttribute 3

ECCustomAttributeContainerType

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Schema 1
EntityClass 2
CustomAttributeClass 4
StructClass 8
RelationshipClass 16
AnyClass 30
PrimitiveProperty 32
StructProperty 64
PrimitiveArrayProperty 128
StructArrayProperty 256
NavigationProperty 512
AnyProperty 992
SourceRelationshipConstraint 1024
TargetRelationshipConstraint 2048
AnyRelationshipConstraint 3072
Any 4095

ECPropertyKind

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Primitive 0
Struct 1
PrimitiveArray 2
StructArray 3
Navigation 4

ECRelationshipDirection

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Forward 1
Backward 2

ECRelationshipEnd

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Source 0
Target 1

ECRelationshipStrength

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Referencing 0
Holding 1
Embedding 2

PrimitiveType

typeName: Enumeration

Backing Type: int

Strict: true

Label Value
Binary 257
Boolean 513
DateTime 769
Double 1025
Integer 1281
Long 1537
Point2d 1793
Point3d 2049
String 2305
IGeometry 2561

ECEnumeratorDef

typeName: StructClass

modifier: Sealed

Properties

Name Description Label Category Read Only Priority
Name false 0
DisplayLabel false 0
Description false 0
IntValue false 0
StringValue false 0

Last Updated: 15 June, 2021