Storage of models and their data
Storage of models and their data
Models and their versions
The basic entities for storing data are models and their versions.
Each model has its own name and GUID, as well as associated properties such as original file format, etc. The GUID is assigned to a model when it first appears in the repository.
The model name, as well as its GUID is unique, because when updating a model, the platform searches for an existing similar model by name and creates a new version if it exists.
Models have versioning. A model version is described by a separate entity, which also has a unique GUID, as well as a number and other properties such as author, number of elements, creation date, etc.
All basic information and contents of model versions are stored already in the bucket.
Buckets
Buckets are information containers containing data about model versions and more.
Buckets are stored on S3 cold storage in packed form using the LZMA algorithm. At any time you can download a bucket and use its data.
The bucket is divided into types. Each type contains a different piece of information:
- glb - geometry of the model elements.
- meta - information properties of elements.
- geomdata - additional technical information about the geometry of the elements. For example, their dimensions and dependencies on other elements.
Each bucket also has its own GUID.
The model version contains references to identifiers of each type of bucket. At the same time references to each type of bucket can be several within one model version.
The platform provides for the expansion of the buckets system and their types for functionality to be implemented in the future.
Loading models
To load models in the Tangl viewer, you need to know their version identifiers, because it is the versions that are loaded into the scene.
The viewer itself determines the identifiers of bins that should be loaded for a particular model version.
See the process of getting models, their versions, and information from the model in the example in Postman Workspace:
https://www.postman.com/tangl-services/workspace/tangl-services-apis/flow/64b7eb228640c20039913f24