BimCoreApi instance
Change this layer is attached to
Format of layer. Example: "sensors"
Methods to transform layer objects into their DTO counterparts (data transfer object). DTO's are what is actually is stored in the layer.
ReadonlyattachedChange this layer is attached to
Provides access to the layer attachments API (LayerAttachmentsApi) Use methods on it to get, add, update and delete attachments for this layer.
ReadonlylayerFormat of layer. Example: "sensors"
Number of objects in layer not marked with state MergableObjectState.Unchanged.
Number of objects with conflicts in the layer. A conflict occurs if there is a mismatch between the local and the remote representation of the layer. Conflicts can only occur when Layer.saveAndMerge or Layer.loadAndMerge is called.
Conflicts in the layer. A conflict occurs if there is a mismatch between the local and the remote representation of an object in the layer. Conflicts can only occur when Layer.saveAndMerge or Layer.loadAndMerge is called.
The layer definition.
Id of the layer
true if a layer exists and if Layer.saveAndMerge or Layer.loadAndMerge
has been called successfully at least once.
Access to the layer instance that is currently loaded. If no layer is loaded then an exception is thrown. This is the representation of the layer that is stored in the backend. Layer.saveAndMerge or Layer.loadAndMerge will change the instance of the layer so do not store a reference to it and expect it to be valid after a call to these methods.
Get the name of the layer. Returns undefined if no layer has been loaded.
Get the objects currently in the layer
Permissions user has on layer.
Get the version of the currently loaded layer. [-1] if no layer has yet been loaded.
Adds an object. If an object with the same MergableObjectProps.id already exists, no further object will be added. Requires user to have Access.add on layer. permission should therefore be validated before method call to ensure that no exception is generated.
Object to add
true if object was added, otherwise false.
Clear the layer.
Deletes an object. Requires user to have Access.delete on layer. permission should therefore be validated before method call to ensure that no exception is generated.
Id of object to delete
true if object was deleted. Otherwise false
Get a specific object in the layer. Both the local and the remote representation of the object are returned
id of the object to get. Returns undefined if no such object exists.
Loads all existing (remote) objects from the backend and attempts to merge them into objects. This may result in conflicts between the local and the remote objects. A typical example is if the same object has been modified locally but also remotely (in the backend.)
Saves all objects in objects and retrieves any added, modified layer objects made in backend (Remote) at the same time. An attempt is then made to merge the object from the backend (Remote) into the local (browser) objects. Requires that user has Access.view (to add new layer) or Access.edit (to edit existing layer). permission should therefore be validated before method call to ensure that no exception is generated.
If true then latest version is overwritten (if save was successful).
Number of conflicts. If > 0 then the operation was not successful. The conflicts must be resolved before a new attempt is made. If a LayerFailure is returned then it signifies that some unexpected error occured. Inspect the contents to determine the cause.
Updates an existing object. Requires user to have Access.edit on layer. permission should therefore be validated before method call to ensure that no exception is generated.
Id of object to update
function called with MergableObject instance of specified id. Caller should make any required modfifications to the object in this function.
true if object did exist, otherwise false.
A layer is attached to a BimChangeBase instance. A layer can contain any type of object data structure. When objects are added, deleted or modified events on the corresponding objects are raised. Since layer objects are divided into local and remote objects. Remote objects are those that are retrieved from the backend.