Element Class
The smallest individually identifiable building block for modeling the real world in an iModel. Each element represents an Entity in the real world. Sets of Elements (contained in Models) are used to model other Elements that represent larger scale real world entities. Using this recursive modeling strategy, Elements can represent entities at any scale. Elements can represent physical things or abstract concepts or simply be information records.
Every Element has a 64-bit id (inherited from Entity) that uniquely identifies it within an iModel. Every Element also has a code that identifies its meaning in the real world. Additionally, Elements may have a federationGuid to hold a GUID, if the element was assigned that GUID by some other federated database. The iModel database enforces uniqueness of id, code, and federationGuid.
The Element class provides static
methods like onInsert, onUpdated, onCloned, and onChildAdded that enable
it to customize persistence operations. For example, the base implementations of onInsert, onUpdate, and onDelete
validate that the appropriate locks, codes,
and channel permissions are obtained before a change to the element is written to the iModel.
A subclass of Element that overrides any of these methods must call the super
method as well. An application that supplies its
own Element subclasses should register them at startup via registerModule or register.
See:
Extends
Extended by
Methods
Name | Description | |
---|---|---|
constructor(props: ElementProps, iModel: IModelDb): Element Protected | ||
collectPredecessorIds(predecessorIds: EntityReferenceSet): void Protected | Collect the Ids of this element's references at this level of the class hierarchy. | Deprecated |
collectReferenceIds(referenceIds: EntityReferenceSet): void Protected | Collect the Ids of this entity's references at this level of the class hierarchy. | |
delete(): void | Delete this Element from the iModel. | |
getClassMetaData(): undefined | EntityMetaData | Get the class metadata for this element. | |
getDisplayLabel(): string | Get a display label for this Element. | |
getJsonProperty(nameSpace: string): any | Get a JSON property of this element, by namespace | |
getPredecessorIds(): Id64Set | Get the Ids of this element's references. | Deprecated |
Get a list of HTML strings that describe this Element for the tooltip. | ||
getUserProperties(namespace: string): any | Get a set of JSON user properties by namespace | |
insert(): string | Insert this Element into the iModel. | |
removeUserProperties(nameSpace: string): void | Remove a set of JSON user properties, specified by namespace, from this Element | |
setJsonProperty(nameSpace: string, value: any): void | ||
setUserProperties(nameSpace: string, value: any): void | Change a set of user JSON properties of this Element by namespace. | |
toJSON(): ElementProps | Obtain the JSON representation of this Entity. | |
update(): void | Update this Element in the iModel. | |
onAllInputsHandled(_id: string, _iModel: IModelDb): void Protected Static | Called on an element in a graph after all of its inputs have been processed and before its outputs are processed. | |
onBeforeOutputsHandled(_id: string, _iModel: IModelDb): void Protected Static | Called when a root element in a subgraph is changed and before its outputs are processed. | |
onChildAdd(_arg: OnChildElementPropsArg): void Protected Static | Called when an existing element is about to be updated so that an instance of this class will become its new parent. | |
onChildAdded(_arg: OnChildElementIdArg): void Protected Static | Called after an existing element has been updated so that an instance of this class is its new parent. | |
onChildDelete(_arg: OnChildElementIdArg): void Protected Static | Called when an element with an instance of this class as its parent is about to be deleted. | |
onChildDeleted(_arg: OnChildElementIdArg): void Protected Static | Called after an element with an instance of this class as its parent was successfully deleted. | |
onChildDrop(_arg: OnChildElementIdArg): void Protected Static | Called when an element with an instance of this class as its parent is about to be updated change to a different parent. | |
onChildDropped(_arg: OnChildElementIdArg): void Protected Static | Called after an element with an instance of this class as its previous parent was updated to have a new parent. | |
onChildInsert(_arg: OnChildElementPropsArg): void Protected Static | Called when a new element with an instance of this class as its parent is about to be inserted. | |
onChildInserted(_arg: OnChildElementIdArg): void Protected Static | Called after a new element with an instance of this class as its parent was inserted. | |
onChildUpdate(_arg: OnChildElementPropsArg): void Protected Static | Called when an element with an instance of this class as its parent is about to be updated. | |
onChildUpdated(_arg: OnChildElementIdArg): void Protected Static | Called after an element with an instance of this the class as its parent was updated. | |
onCloned(_context: IModelElementCloneContext, _sourceProps: ElementProps, _targetProps: ElementProps): void Protected Static | Called during the iModel transformation process after an Element from the source iModel was cloned for the target iModel. | |
onDelete(arg: OnElementIdArg): void Protected Static | Called before an Element is deleted. | |
onDeleted(_arg: OnElementIdArg): void Protected Static | Called after an Element was deleted. | |
onInsert(arg: OnElementPropsArg): void Protected Static | Called before a new Element is inserted. | |
onInserted(arg: OnElementIdArg): void Protected Static | Called after a new Element was inserted. | |
onSubModelDelete(_arg: OnSubModelIdArg): void Protected Static | Called when a sub-model of an instance of this class is being deleted. | |
onSubModelDeleted(_arg: OnSubModelIdArg): void Protected Static | Called after a sub-model of an instance of this class was deleted. | |
onSubModelInsert(_arg: OnSubModelPropsArg): void Protected Static | Called when an instance of this class is being sub-modeled by a new Model. | |
onSubModelInserted(_arg: OnSubModelIdArg): void Protected Static | Called after an instance of this class was sub-modeled by a new Model. | |
onUpdate(arg: OnElementPropsArg): void Protected Static | Called before an Element is updated. | |
onUpdated(_arg: OnElementIdArg): void Protected Static | Called after an Element was updated. |
Inherited methods
Name | Inherited from | Description |
---|---|---|
forEachProperty(func: PropertyCallback, includeCustom: booleantrue): void | Entity | Call a function for each property of this Entity. |
getReferenceIds(): EntityReferenceSet | Entity | Get the set of this entity's entity references, EntityReferenceSet. |
is(otherClass: ): boolean Static | Entity | return whether this Entity class is a subclass of another Entity class |
Properties
Name | Type | Description | |
---|---|---|---|
className Accessor Static ReadOnly | string | The name of the BIS class associated with this class. | |
code | Code | The Code for this element | |
federationGuid | string | undefined | A FederationGuid assigned to this element by some other federated database | |
jsonProperties Readonly | [key: string]: any | Optional json properties of this element. | |
model Readonly | string | The ModelId of the Model containing this element | |
parent | RelatedElement | undefined | The parent element, if present, of this element. | |
requiredReferenceKeys Static Readonly | ReadonlyArray |
A required reference is an element that had to be inserted before this element could have been inserted. | |
userLabel | string | undefined | A user-assigned label for this element. |
Inherited properties
Name | Type | Inherited from | Description |
---|---|---|---|
classFullName Accessor ReadOnly | string | Entity | Get the full BIS class name of this Entity in the form "schema:class". |
classFullName Accessor Static ReadOnly | string | Entity | Get the full BIS class name of this Entity in the form "schema:class" |
className Accessor ReadOnly | string | Entity | The name of the BIS class associated with this class. |
id | string | Entity | The Id of this Entity. |
iModel | IModelDb | Entity | The IModelDb that contains this Entity |
isInstanceOfEntity Readonly | "true" | Entity | An immutable property used to discriminate between Entity and EntityProps, used to inform the TypeScript compiler that these two types |
schema Static | Entity | The Schema that defines this class. | |
schemaName Accessor ReadOnly | string | Entity | The name of the BIS Schema that defines this class |
Defined in
- core/backend/src/Element.ts Line 119
Last Updated: 12 October, 2024