50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
from typing import List, Optional
|
|
|
|
from specklepy.objects.base import Base
|
|
|
|
STRUCTURAL_ANALYSIS = "Objects.Structural.Analysis."
|
|
|
|
|
|
class ModelUnits(Base, speckle_type=STRUCTURAL_ANALYSIS + "ModelUnits"):
|
|
length: Optional[str] = None
|
|
sections: Optional[str] = None
|
|
displacements: Optional[str] = None
|
|
stress: Optional[str] = None
|
|
force: Optional[str] = None
|
|
mass: Optional[str] = None
|
|
time: Optional[str] = None
|
|
temperature: Optional[str] = None
|
|
velocity: Optional[str] = None
|
|
acceleration: Optional[str] = None
|
|
energy: Optional[str] = None
|
|
angle: Optional[str] = None
|
|
strain: Optional[str] = None
|
|
|
|
|
|
class ModelSettings(Base, speckle_type=STRUCTURAL_ANALYSIS + "ModelSettings"):
|
|
modelUnits: Optional[ModelUnits] = None
|
|
steelCode: Optional[str] = None
|
|
concreteCode: Optional[str] = None
|
|
coincidenceTolerance: float = 0.0
|
|
|
|
|
|
class ModelInfo(Base, speckle_type=STRUCTURAL_ANALYSIS + "ModelInfo"):
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
projectNumber: Optional[str] = None
|
|
projectName: Optional[str] = None
|
|
settings: Optional[ModelSettings] = None
|
|
initials: Optional[str] = None
|
|
application: Optional[str] = None
|
|
|
|
|
|
class Model(Base, speckle_type=STRUCTURAL_ANALYSIS + "Model"):
|
|
specs: Optional[ModelInfo] = None
|
|
nodes: Optional[List] = None
|
|
elements: Optional[List] = None
|
|
loads: Optional[List] = None
|
|
restraints: Optional[List] = None
|
|
properties: Optional[List] = None
|
|
materials: Optional[List] = None
|
|
layerDescription: Optional[str] = None
|