API Reference > imodeljs-backend > Elements > Element Element Class Elements are the smallest individually identifiable building blocks 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. See: Element Fundamentals Working with schemas and elements in TypeScript Creating elements Extends Entity Extended by GeometricElement InformationContentElement RoleElement Implements ElementProps Methods Name Description buildConcurrencyControlRequest(opcode: DbOpcode): void Add a request for locks, code reservations, and anything else that would be needed to carry out the specified operation. collectPredecessorIds(predecessorIds: Id64Set): void Protected Collect the Ids of this element's predecessors at this level of the class hierarchy. Beta 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 predecessors. Beta getToolTipMessage(): string[] 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. update(): void Update this Element in the iModel. onAllInputsHandled(_id: string, _iModel: IModelDb): void ProtectedStatic Called on an element in a graph after all of its inputs have been processed and before its outputs are processed. Beta onBeforeOutputsHandled(_id: string, _iModel: IModelDb): void ProtectedStatic Called when a root element in a subgraph is changed and before its outputs are processed. Beta onChildAdd(_arg: OnChildElementPropsArg): void ProtectedStatic Called when an existing element is about to be updated so that an instance of this class will become its new parent. Beta onChildAdded(_arg: OnChildElementIdArg): void ProtectedStatic Called after an existing element has been updated so that an instance of this class is its new parent. Beta onChildDelete(_arg: OnChildElementIdArg): void ProtectedStatic Called when an element with an instance of this class as its parent is about to be deleted. Beta onChildDeleted(_arg: OnChildElementIdArg): void ProtectedStatic Called after an element with an instance of this class as its parent was successfully deleted. Beta onChildDrop(_arg: OnChildElementIdArg): void ProtectedStatic Called when an element with an instance of this class as its parent is about to be updated change to a different parent. Beta onChildDropped(_arg: OnChildElementIdArg): void ProtectedStatic Called after an element with an instance of this class as its previous parent was updated to have a new parent. Beta onChildInsert(_arg: OnChildElementPropsArg): void ProtectedStatic Called when a new element with an instance of this class as its parent is about to be inserted. Beta onChildInserted(_arg: OnChildElementIdArg): void ProtectedStatic Called after a new element with an instance of this class as its parent was inserted. Beta onChildUpdate(_arg: OnChildElementPropsArg): void ProtectedStatic Called when an element with an instance of this class as its parent is about to be updated. Beta onChildUpdated(_arg: OnChildElementIdArg): void ProtectedStatic Called after an element with an instance of this the class as its parent was updated. Beta onCloned(_context: IModelCloneContext, _sourceProps: ElementProps, _targetProps: ElementProps): void ProtectedStatic Called during the iModel transformation process after an Element from the source iModel was cloned for the target iModel. Beta onDelete(arg: OnElementIdArg): void ProtectedStatic Called before an Element is deleted. Beta onDeleted(_arg: OnElementIdArg): void ProtectedStatic Called after an Element was deleted. Beta onInsert(arg: OnElementPropsArg): void ProtectedStatic Called before a new Element is inserted. Beta onInserted(arg: OnElementIdArg): void ProtectedStatic Called after a new Element was inserted. Beta onSubModelDelete(_arg: OnSubModelIdArg): void ProtectedStatic Called when a sub-model of an instance of this class is being deleted. Beta onSubModelDeleted(_arg: OnSubModelIdArg): void ProtectedStatic Called after a sub-model of an instance of this class was deleted. Beta onSubModelInsert(_arg: OnSubModelPropsArg): void ProtectedStatic Called when an instance of this class is being sub-modeled by a new Model. Beta onSubModelInserted(_arg: OnSubModelIdArg): void ProtectedStatic Called after an instance of this class was sub-modeled by a new Model. Beta onUpdate(arg: OnElementPropsArg): void ProtectedStatic Called before an Element is updated. Beta onUpdated(arg: OnElementIdArg): void ProtectedStatic Called after an Element was updated. Beta populateRequest(req: ConcurrencyControl.Request, props: ElementProps, iModel: IModelDb, opcode: DbOpcode, original: undefined | ElementProps): void Static Disclose the codes and locks needed to perform the specified operation on this element Beta Inherited methods Name Inherited from Description forEachProperty(func: PropertyCallback, includeCustom: boolean = true): void Entity Call a function for each property of this Entity. is(otherClass: undefined): boolean Static Entity return whether this Entity class is a subclass of another Entity class Properties Name Type Description code Code The Code for this element federationGuid undefined | string A FederationGuid assigned to this element by some other federated database jsonProperties Readonly { T } Optional json properties of this element. model Readonly string The ModelId of the Model containing this element parent undefined | RelatedElement The parent element, if present, of this element. userLabel undefined | string 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 StaticReadOnly 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 schema Static undefined 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 108 Last Updated: 12 June, 2024