API Mô hình Digital Twin

API Mô hình Digital Twin cho phép bạn quản lý và tương tác với các mô hình 3D của công trình và các thành phần của chúng trong SmartTwin. Bạn có thể tải lên, cập nhật và truy vấn thông tin về các mô hình.

Cấu trúc dữ liệu mô hình

Mỗi mô hình hoặc thành phần mô hình có thể có cấu trúc sau:

{
  "modelId": "string",
  "name": "string",
  "description": "string (optional)",
  "type": "building | floor | room | asset",
  "parentId": "string (optional)",
  "fileUrl": "URL to GLB/GLTF file (optional)",
  "metadata": {
    "key": "value" (optional)
  },
  "linkedSensors": ["sensorId1", "sensorId2"] (optional)
}

Điểm cuối API

1. Tải lên mô hình mới

Tải lên một file mô hình 3D (ví dụ: GLB, GLTF) và đăng ký nó với một thành phần trong Digital Twin.

POST /api/models/upload

Body yêu cầu (multipart/form-data):

  • file (bắt buộc): File mô hình 3D.
  • modelId (bắt buộc): ID duy nhất cho mô hình.
  • name (bắt buộc): Tên của mô hình.
  • type (bắt buộc): Loại mô hình (building, floor, room, asset).
  • parentId (tùy chọn): ID của mô hình cha (nếu có).

Ví dụ phản hồi:

{
  "message": "Model uploaded and registered successfully.",
  "modelId": "building-a-3d",
  "fileUrl": "https://your-storage.com/models/building-a-3d.glb"
}

2. Lấy thông tin mô hình

Lấy thông tin chi tiết về một mô hình hoặc thành phần cụ thể.

GET /api/models/$building-a-3d

Ví dụ phản hồi:

{
  "modelId": "building-a-3d",
  "name": "Mô hình tòa nhà Alpha",
  "type": "building",
  "fileUrl": "https://your-storage.com/models/building-a-3d.glb",
  "metadata": {
    "constructionDate": "2020-01-15"
  },
  "linkedSensors": ["temp-sensor-001", "light-sensor-002"]
}

3. Cập nhật thông tin mô hình

Cập nhật các thuộc tính của một mô hình hoặc thành phần.

PUT /api/models/$building-a-3d

Body yêu cầu (JSON):

{
  "name": "Mô hình tòa nhà Alpha (Phiên bản mới)",
  "description": "Mô hình cập nhật với chi tiết nội thất."
}

Ví dụ phản hồi:

{
  "message": "Model information updated successfully."
}

4. Xóa mô hình

Xóa một mô hình và tất cả các thành phần con của nó.

DELETE /api/models/$building-a-3d

Ví dụ phản hồi:

{
  "message": "Model and its components deleted successfully."
}

5. Liên kết cảm biến với mô hình

Liên kết một hoặc nhiều cảm biến với một thành phần mô hình cụ thể.

POST /api/models/$building-a-3d/link-sensors

Body yêu cầu (JSON):

{
  "sensorIds": ["sensor-id-1", "sensor-id-2"]
}

Ví dụ phản hồi:

{
  "message": "Sensors linked to model successfully."
}

6. Hủy liên kết cảm biến khỏi mô hình

Hủy liên kết một hoặc nhiều cảm biến khỏi một thành phần mô hình cụ thể.

POST /api/models/$building-a-3d/unlink-sensors

Body yêu cầu (JSON):

{
  "sensorIds": ["sensor-id-1"]
}

Ví dụ phản hồi:

{
  "message": "Sensors unlinked from model successfully."
}