API Reference > ecschema-Metadata > Metadata > ECClass ECClass Class Beta A common abstract class for all of the ECClass types. Extends SchemaItem Extended by StructClass CustomAttributeClass EntityClass Mixin RelationshipClass Implements CustomAttributeContainerProps Methods Name Description constructor(schema: Schema, name: string, modifier?: ECClassModifier): ECClass addCustomAttribute(customAttribute: CustomAttribute): void Protected addProperty<T extends Property<T>>(prop: T): T Protected Convenience method for adding an already loaded ECProperty used by create*Property methods. buildPropertyCache(result: Property[], existingValues?: Map<string, number>, resetBaseCaches: boolean = false): Promise<void> Protected buildPropertyCacheSync(result: Property[], existingValues?: Map<string, number>, resetBaseCaches: boolean = false): void Protected createPrimitiveArrayProperty(name: string, primitiveType: PrimitiveType): Promise<PrimitiveArrayProperty> Protected Creates a PrimitiveArrayECProperty. createPrimitiveArrayProperty(name: string, primitiveType: Enumeration): Promise<EnumerationArrayProperty> Protected createPrimitiveArrayPropertySync(name: string, primitiveType: PrimitiveType): PrimitiveArrayProperty Protected Creates a PrimitiveArrayECProperty. createPrimitiveArrayPropertySync(name: string, primitiveType: Enumeration): EnumerationArrayProperty Protected createPrimitiveProperty(name: string, primitiveType: Enumeration): Promise<EnumerationProperty> Protected createPrimitiveProperty(name: string, primitiveType: PrimitiveType): Promise<PrimitiveProperty> Protected Creates a PrimitiveECProperty. createPrimitivePropertySync(name: string, primitiveType: Enumeration): EnumerationProperty Protected createPrimitivePropertySync(name: string, primitiveType: PrimitiveType): PrimitiveProperty Protected Creates a PrimitiveECProperty. createStructArrayProperty(name: string, structType: string | StructClass): Promise<StructArrayProperty> Protected createStructArrayPropertySync(name: string, structType: string | StructClass): StructArrayProperty Protected createStructProperty(name: string, structType: string | StructClass): Promise<StructProperty> Protected createStructPropertySync(name: string, structType: string | StructClass): StructProperty Protected fromJSON(classProps: ClassProps): Promise<void> fromJSONSync(classProps: ClassProps): void getAllBaseClasses(): AsyncIterableIterator<ECClass> Iterates (recursively) over all base classes and mixins, in "property override" order. getAllBaseClassesSync(): Iterable<AnyClass> getBaseClassSync(): undefined | ECClass getCustomAttributes(): Promise<CustomAttributeSet> Retrieve all custom attributes in the current class and its bases getCustomAttributesSync(): CustomAttributeSet Retrieve all custom attributes in the current class and its bases. getInheritedProperty(name: string): Promise<undefined | Property> Searches the base class, if one exists, for the property with the name provided. getInheritedPropertySync(name: string): undefined | Property Searches the base class, if one exists, for the property with the name provided. getProperties(resetCache: boolean = false): Promise<Property[]> Iterates all properties, including the ones merged from base classes and mixins. getPropertiesSync(resetCache: boolean = false): Property[] Iterates all properties, including the ones merged from base classes and mixins. getProperty(name: string, includeInherited: boolean = false): Promise<undefined | Property> Searches, case-insensitive, for a local ECProperty with the name provided. getPropertySync(name: string, includeInherited: boolean = false): undefined | Property Searches, case-insensitive, for a local ECProperty with the name provided. is(targetClass: ECClass): Promise<boolean> is(targetClass: string, schemaName: string): Promise<boolean> Indicates if the targetClass is of this type. isSync(targetClass: ECClass): boolean A synchronous version of the ECClass.is, indicating if the targetClass is of this type. loadPrimitiveType(primitiveType: undefined | string | PrimitiveType | Enumeration, schema: Schema): Promise<PrimitiveType | Enumeration> Protected loadPrimitiveTypeSync(primitiveType: undefined | string | PrimitiveType | Enumeration, schema: Schema): PrimitiveType | Enumeration Protected loadStructType(structType: undefined | string | StructClass, schema: Schema): Promise<StructClass> Protected loadStructTypeSync(structType: undefined | string | StructClass, schema: Schema): StructClass Protected toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): ClassProps Save this Classes properties to an object for serializing to JSON. traverseBaseClasses(callback: (ecClass: ECClass, arg?: any) => boolean, arg?: any): Promise<boolean> Asynchronously traverses through the inheritance tree, using depth-first traversal, calling the given callback traverseBaseClassesSync(callback: (ecClass: ECClass, arg?: any) => boolean, arg?: any): boolean Synchronously traverses through the inheritance tree, using depth-first traversal, calling the given callback mergeProperties(target: Property[], existingValues: Map<string, number>, propertiesToMerge: Property[], overwriteExisting: boolean): void ProtectedStatic Inherited methods Name Inherited from Description equalByKey(thisSchemaItem: SchemaItem, thatSchemaItemOrKey?: SchemaItem | SchemaItemKey): boolean Static SchemaItem Indicates if the two SchemaItem objects are equal by comparing their respective SchemaItem.key properties. parseFullName(fullName: string): [string, string] Static SchemaItem Parses the given full name, {schemaName}.{schemaItemName} or {schemaName}:{schemaItemName}, into two separate strings. Properties Name Type Description _baseClass Protected undefined | LazyLoadedECClass _modifier Protected ECClassModifier _properties Protected undefined | Map<string, Property> baseClass Accessor undefined | LazyLoadedECClass customAttributes Accessor ReadOnly undefined | CustomAttributeSet modifier Accessor ReadOnly ECClassModifier properties Accessor ReadOnly undefined | IterableIterator<Property> Inherited properties Name Type Inherited from Description _description Protected undefined | string SchemaItem _key Protected SchemaItemKey SchemaItem _label Protected undefined | string SchemaItem description Accessor ReadOnly undefined | string SchemaItem fullName Accessor ReadOnly string SchemaItem key Accessor ReadOnly SchemaItemKey SchemaItem label Accessor ReadOnly undefined | string SchemaItem name Accessor ReadOnly string SchemaItem schema Readonly Schema SchemaItem schemaItemType Readonly SchemaItemType SchemaItem Defined in core/ecschema-metadata/src/Metadata/Class.ts Line 29 Last Updated: 12 June, 2024