Project_Digital_Twin / app /core /schema_definition.py
Mhdeusi's picture
Create core/schema_definition.py
1459680 verified
Raw
History Blame Contribute Delete
746 Bytes
# app/core/schema_definition.py
from pydantic import BaseModel, Field
from typing import List, Dict, Optional, Union
class ProjectMetadata(BaseModel):
name: str
level: str
unit: str = "meter"
class ElementPosition(BaseModel):
x: float
y: float
z: float
class ElementDimensions(BaseModel):
length: Optional[float] = None
width: Optional[float] = None
height: Optional[float] = None
class BIMElement(BaseModel):
id: str
element_type: str # Column, Beam, Wall-Structural, etc.
position: ElementPosition
dimensions: ElementDimensions
material: str
description: Optional[str] = None
class BIMProjectJSON(BaseModel):
project_metadata: ProjectMetadata
elements: List[BIMElement]