Skip to content

types

BaseGeometry

Bases: BaseType

基础几何类

Source code in dimine_python_sdk\models\types.py
56
57
58
59
60
61
62
63
64
class BaseGeometry(BaseType):
    """基础几何类"""
    model_config = {"arbitrary_types_allowed": True}
    id: Optional[str] = Field(default=None, description="对象id")
    file: Optional[str] = Field(default=None, description="所属文件id")
    layer: Optional[str] = Field(default=None, description="所在图层id")
    feature: Optional[str] = Field(default=None, description="所属要素名")
    color: List[int] = Field(default=[0,0,0], description="颜色")
    properties: List[PropertyValue] = Field(default_factory=list, description="点属性")

BaseType

Bases: BaseModel

基础类型

Source code in dimine_python_sdk\models\types.py
 8
 9
10
class BaseType(BaseModel):
    """基础类型"""
    related: Optional[bool] = Field(default=False, description="表示此python端的对象是否关联到数采端对象,即修改数值后,会自动同步到数采端对象中")

FeatureInfo

Bases: BaseType

要素定义,也是一组属性的定义,比如:巷道要素,包含属性如名称、长度、宽度、高度等

Source code in dimine_python_sdk\models\types.py
49
50
51
52
class FeatureInfo(BaseType):
    """要素定义,也是一组属性的定义,比如:巷道要素,包含属性如名称、长度、宽度、高度等"""
    name: str = Field(description="要素名称", validation_alias="feature_name")
    properties: List[PropertyInfo] = Field(default_factory=list, description="要素属性", validation_alias="feature_define")

FileInfo

Bases: BaseType

数采文件信息

Source code in dimine_python_sdk\models\types.py
14
15
16
17
18
19
20
21
22
23
24
class FileInfo(BaseType):
    """数采文件信息"""
    id: str = Field(description="文件id")
    name: str = Field(description="文件名")


    async def close(self):
        """关闭文件"""
        from dimine_python_sdk.conn import open_client
        with open_client() as conn:
            await conn.close_file(file_id=self.id)

close() async

关闭文件

Source code in dimine_python_sdk\models\types.py
20
21
22
23
24
async def close(self):
    """关闭文件"""
    from dimine_python_sdk.conn import open_client
    with open_client() as conn:
        await conn.close_file(file_id=self.id)

LayerInfo

Bases: BaseType

图层信息

Source code in dimine_python_sdk\models\types.py
28
29
30
31
class LayerInfo(BaseType):
    """图层信息"""
    id: str = Field(description="图层id")
    name: str = Field(description="图层名称")

Line

Bases: BaseGeometry

线:表示一条直线或者多段线

Source code in dimine_python_sdk\models\types.py
82
83
84
85
86
87
88
89
90
91
92
93
class Line(BaseGeometry):
    """线:表示一条直线或者多段线"""
    type: Optional[Literal["line"]] = Field(default="line", description="线类型")
    geometry: np.ndarray = Field(default=np.array([]), description="线坐标, shape=(N,3)")


    @field_validator("geometry", mode="before")
    @classmethod
    def validate_geometry(cls, v):
        if isinstance(v, list): 
            return np.array(v).astype(np.float32)
        return v

Point

Bases: BaseGeometry

Source code in dimine_python_sdk\models\types.py
67
68
69
70
71
72
73
74
75
76
77
78
class Point(BaseGeometry):
    """点"""
    type: Optional[Literal["point"]] = Field(default="point", description="点类型")
    geometry: np.ndarray = Field(default=np.array([]), description="点坐标, shape=(3,)")


    @field_validator("geometry", mode="before")
    @classmethod
    def validate_geometry(cls, v):
        if isinstance(v, list): 
            return np.array(v).astype(np.float32)
        return v

PropertyInfo

Bases: BaseType

属性定义信息:单个属性的定义,比如:属性名称、数据类型

Source code in dimine_python_sdk\models\types.py
34
35
36
37
class PropertyInfo(BaseType):
    """属性定义信息:单个属性的定义,比如:属性名称、数据类型"""
    name: str = Field(description="属性名称")
    type: Literal["long","string","int", "short"] = Field(description="数据类型")

PropertyValue

Bases: PropertyInfo

属性值信息

Source code in dimine_python_sdk\models\types.py
39
40
41
42
43
44
45
46
47
class PropertyValue(PropertyInfo):
    """属性值信息"""
    value: str|int|float|None = Field(default=None, description="属性值")

    def to_dict(self):
        return {
            "name": self.name,
            "value": self.value
        }

SelectedItem

Bases: BaseType

当前选择对象信息

Source code in dimine_python_sdk\models\types.py
128
129
130
131
132
133
134
class SelectedItem(BaseType):
    """当前选择对象信息"""
    id: str = Field(description="实体ID")
    file: str = Field(description="所属文件")
    layer: str = Field(description="所属图层")
    entity_type: Literal["point", "line", "polyline", "shell"] = Field(description="实体类型")
    feature: Optional[str] = Field(default=None, description="关联要素")

SelectedResult

Bases: BaseType

当前选择对象查询结果

Source code in dimine_python_sdk\models\types.py
137
138
139
140
141
142
class SelectedResult(BaseType):
    """当前选择对象查询结果"""
    ids: List[SelectedItem] = Field(default_factory=list, description="选中对象列表")
    page_size: int = Field(default=0, description="每页大小")
    page_num: int = Field(default=0, description="当前页码")
    total_count: int = Field(default=0, description="总数量")

Shell

Bases: BaseGeometry

实体

Source code in dimine_python_sdk\models\types.py
118
119
120
121
class Shell(BaseGeometry):
    """实体"""
    type: Optional[Literal["shell"]] = Field(default="shell", description="体类型")
    geometry: TINGeometry = Field(default=None, description="三角网模型对象(TIN)")

TINGeometry

Bases: BaseType

三角网模型定义,

Source code in dimine_python_sdk\models\types.py
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
class TINGeometry(BaseType):
    """三角网模型定义,"""
    model_config = {"arbitrary_types_allowed": True}
    faces: np.ndarray = Field(default=np.array([]), description="三角面片:每行是三个顶点的索引,三个顶点连接起来形成一个三角面。shape=(N,3)")
    points: np.ndarray = Field(default=np.array([]), description="所有顶点坐标, shape=(N,3)")

    @field_validator("faces", mode="before")
    @classmethod
    def validate_faces(cls, v):
        if isinstance(v, list): 
            return np.array(v).astype(np.int32)
        return v

    @field_validator("points", mode="before")
    @classmethod
    def validate_points(cls, v):
        if isinstance(v, list): 
            return np.array(v).astype(np.float32)
        return v