CoreCustomAttributes (Core Custom Attributes) Schema

Alias: CoreCA

Version: 1.0.4

Custom attributes to indicate core EC concepts, may include struct classes intended for use in core custom attributes.

Table of contents

SchemaNameAndPurpose Sealed StructClass

Used to define a supplemental schema and its purpose

Properties

Name Description Label Category Read Only Priority
SchemaName Full name of the supplemental schema false 0
Purpose Purpose of the supplemental schema false 0

SchemaReference (Schema Reference) Sealed StructClass

Reference to a schema including name and version

Properties

Name Description Label Category Read Only Priority
SchemaName Name of schema, excluding version Schema Name false 0
MajorVersion [This].[Write].[Minor] Major Version false 0
MinorVersion [Major].[Write].[This] Minor Version false 0
WriteVersion [Major].[This].[Minor] Write Version false 0

Custom Attribute Classes

ClassHasCurrentTimeStampProperty Sealed CustomAttributeClass

Applies to: EntityClass

Properties

Name Description Label Category Read Only Priority
PropertyName false 0

DateTimeInfo Sealed CustomAttributeClass

Optional additional meta data for ECProperties of type DateTime.

Applies to: PrimitiveProperty, ArrayProperty

Properties

Name Description Label Category Read Only Priority
DateTimeKind Either Utc, Local or Unspecified. Default: Unspecified. When specifying a DateTimeKind, it is usually not necessary to specify a DateTimeComponent because a DateTimeKind implies the DateTimeComponent 'DateTime'. false 0
DateTimeComponent Either DateTime or Date. Default: DateTime. Specifying 'Date' usually implies that a DateTimeKind is irrelevant, because dates (without time) don't need any timezone information. false 0

Deprecated Sealed CustomAttributeClass

Identifies a schema or item within a schema as deprecated. Deprecated things should not be used.

Applies to: Any

Properties

Name Description Label Category Read Only Priority
Description Gives advice about avoiding the deprecated item or other helpful information related to the deprecation of the item. false 0

DynamicSchema (Dynamic Schema) Sealed CustomAttributeClass

Identifies a schema as dynamically generated by an application. Like versions of a schema may differ and are not guaranteed to merge without conflicts.

Applies to: Schema

Extension Sealed CustomAttributeClass

Used to indicate that the property this custom attribute is applied to is an extension property.

Applies to: AnyProperty

Properties

Name Description Label Category Read Only Priority
Origin Extension origin. false 0

HiddenClass Sealed CustomAttributeClass

Identifies a class which is designed to be hidden from teh user interface. Hides the class it is applied to and all derived classes

Applies to: AnyClass

Properties

Name Description Label Category Read Only Priority
Show If set to true show the hidden class. Defaults to False. Allows a derived class to be shown even though it's base class is hidden false 0

HiddenProperty Sealed CustomAttributeClass

Identifies a property which is designed to be hidden from the user interface

Applies to: AnyProperty

Properties

Name Description Label Category Read Only Priority
Show If set to true show the hidden property. Defaults to False. Allows a property override to show a hidden property in a derived class false 0

HiddenSchema Sealed CustomAttributeClass

Identifies a schema which is designed to be hidden from the user interface. By default all classes in the schema are hidden as well.

Applies to: Schema

Properties

Name Description Label Category Read Only Priority
ShowClasses If true classe in the schema will be shown. Default is False. If set to true individual classes may be hidden using the HiddenClass custom attribute false 0

IsMixin (Is Mixin) Sealed CustomAttributeClass

Applied to abstract ECEntityClasses which serve as secondary base classes for normal ECEntityClasses.

Applies to: EntityClass

Properties

Name Description Label Category Read Only Priority
AppliesToEntityClass This mixin may only be applied to entity classes which derive from this class. Class Name should be fully specified as 'alias:ClassName' false 0

Localizable (Localizable) Sealed CustomAttributeClass

Applied to a property to indicate that custom attributes using this property can be localized.

Applies to: PrimitiveProperty

NotSubclassableInReferencingSchemas Sealed CustomAttributeClass

Makes a class 'sealed' outside of the schema containing the class

Applies to: AnyClass

Properties

Name Description Label Category Read Only Priority
Exceptions Optionally allows specific classes in other schemas to subclass this class. Use format '[SchemaName]:[ClassName]', e.g. 'Fruit:Banana' false 0

PartialSchema (Partial Schema) Sealed CustomAttributeClass

Identifies a schema file/object that may only contain part of the complete schema. Like versions of a schema may differ but are guaranteed to merge without conflicts.

Applies to: Schema

ProductionStatus Sealed CustomAttributeClass

Declares the suitability of this schema for use in production and other workflows.

Applies to: Schema

When a schema is tagged with ProductionStatus, the iModel technology stack (or other technology stacks in other circumstances) can proactively prevent schemas from being used in unsupported workflows. The two most obvious usages of this CustomAttribute are:

  • Preventing development (NotForProduction) schemas from being released to customers.
  • Preventing FieldTesting schemas from being used in customer's production workflows.

All schemas should be tagged with the ProductionStatus CustomAttribute to enable this error checking.

Properties

Name Description Label Category Read Only Priority
SupportedUse Indicates the suitability of this schema for production or other usage. false 0
Checksum Set when the schema ProductionStatus is set. Used to verify that a validated schema has not been modified after that point. false 0

SupplementalProvenance Sealed CustomAttributeClass

Applies to: Schema

Properties

Name Description Label Category Read Only Priority
SupplementalSchemaNamesAndPurposes false 0

SupplementalSchema (Supplemental Schema) Sealed CustomAttributeClass

Identifies a schema as a supplemental schema and stores extra metadata necessary for supplemental schemas

Applies to: Schema

Properties

Name Description Label Category Read Only Priority
PrimarySchemaReference References the primary schema this supplemental should be applied to Primary Schema Reference false 0
Precedence Positive integer defining the precedence of this supplemental schema. Higher precedences override lower precences. The primary schema is considered to have a precedence between 199 and 200. false 0
Purpose A string representing the function of this supplemental schema. Standard name formatting for a supplemental schema is Supplemental false 0

Enumerations

DateTimeComponent Enumeration

Backing Type: string

Strict: true

Label Value Description
DateTime
Date
TimeOfDay

DateTimeKind Enumeration

Backing Type: string

Strict: true

Label Value Description
Unspecified
Utc
Local

ProductionStatusValue Enumeration

Backing Type: string

Used with ProductionStatus to declare the schema author's intended and supported workflows for the schema.

Strict: true

Label Value Description
NotForProduction This schema is under development and should not be used for production workflows. Data created using this schema is not supported and may not be upgradable.
FieldTesting This schema is suitable for field testing of production workflows. Data created with the schema is not supported long-term and may not be upgradable.
Production This schema is suitable for production workflows. Data created using this schema will be supported long term (possibly through transformation).
Deprecated This schema is no longer recommended for production workflows. Better alternatives exist and should be used instead.

Last Updated: 27 October, 2023