Skip to content

types

BaseType

Bases: BaseModel

基础类型

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

FeatureInfo

Bases: BaseType

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

Source code in dimine_python_sdk\models\types.py
79
80
81
82
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
44
45
46
47
48
49
50
51
52
53
54
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
50
51
52
53
54
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
58
59
60
61
class LayerInfo(BaseType):
    """图层信息"""
    id: str = Field(description="图层id")
    name: str = Field(description="图层名称")

PropertyInfo

Bases: BaseType

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

Source code in dimine_python_sdk\models\types.py
64
65
66
67
class PropertyInfo(BaseType):
    """属性定义信息:单个属性的定义,比如:属性名称、数据类型"""
    name: str = Field(description="属性名称")
    type: Literal["byte", "string", "short", "int", "long", "float", "double", "char", "color", "date", "binary"] = Field(description="数据类型")

PropertyValue

Bases: PropertyInfo

属性值信息

Source code in dimine_python_sdk\models\types.py
69
70
71
72
73
74
75
76
77
class PropertyValue(PropertyInfo):
    """属性值信息"""
    value: str|int|float|None = Field(default=None, description="属性值")

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

SceneSearchHit

Bases: BaseType

全文检索命中项

命中的内容由 type 区分,不同命中类型填充的字段不同:

type 命中内容 填充字段
file 文件名 file / name
layer 图层名 file / layer / name
feature 要素名 file / layer / feature / name
entity 实体名称或其属性 file / layer / feature / id / name / matched

文字标注属于实体的一部分(命中文字内容时同样返回 type="entity", 此时 id 为文字标注句柄、matched 为命中的文字内容)。

Source code in dimine_python_sdk\models\types.py
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
class SceneSearchHit(BaseType):
    """全文检索命中项

    命中的内容由 ``type`` 区分,不同命中类型填充的字段不同:

    | type | 命中内容 | 填充字段 |
    |------|----------|----------|
    | file | 文件名 | file / name |
    | layer | 图层名 | file / layer / name |
    | feature | 要素名 | file / layer / feature / name |
    | entity | 实体名称或其属性 | file / layer / feature / id / name / matched |

    文字标注属于实体的一部分(命中文字内容时同样返回 ``type="entity"``,
    此时 ``id`` 为文字标注句柄、``matched`` 为命中的文字内容)。
    """
    type: Literal["file", "layer", "feature", "entity"] = Field(description="命中类型")
    file: Optional[str] = Field(default=None, description="所属文件id")
    layer: Optional[str] = Field(default=None, description="所属图层id")
    feature: Optional[str] = Field(default=None, description="所属要素名")
    id: Optional[str] = Field(default=None, description="实体句柄id, 可用于 geometry.select / geometry.get")
    name: Optional[str] = Field(default=None, description="命中对象的名称")
    matched: Optional[Any] = Field(default=None, description="实际命中的内容: 实体命中为命中的属性字段名/值, 文字命中为命中的文字内容")

SceneSearchResult

Bases: BaseType

全文检索结果

Source code in dimine_python_sdk\models\types.py
140
141
142
143
class SceneSearchResult(BaseType):
    """全文检索结果"""
    results: List[SceneSearchHit] = Field(default_factory=list, description="命中结果,按 文件 → 图层 → 要素 → 实体 顺序排列")
    total_count: int = Field(default=0, description="命中总数")

SelectedItem

Bases: BaseType

当前选择对象信息

Source code in dimine_python_sdk\models\types.py
 99
100
101
102
103
104
105
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
108
109
110
111
112
113
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="总数量")

TextInfo

Bases: BaseType

文字标注信息

Source code in dimine_python_sdk\models\types.py
85
86
87
88
89
90
91
92
93
94
95
96
class TextInfo(BaseType):
    """文字标注信息"""
    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="所属要素名")
    text: str = Field(description="文字内容")
    position: List[float] = Field(description="文字位置 [x, y, z]")
    color: List[int] = Field(default=[255, 255, 255], description="颜色 [r, g, b]")
    size: float = Field(default=20, description="文字大小")
    normal: List[float] = Field(default=[0, 0, 1], description="法向量 [x, y, z]")
    rotate: float = Field(default=0, description="旋转角度")

__getattr__(name)

PEP 562:按需转发几何类型到 models.geometry。

Source code in dimine_python_sdk\models\types.py
29
30
31
32
33
34
35
def __getattr__(name: str):
    """PEP 562:按需转发几何类型到 models.geometry。"""
    if name in _GEOMETRY_NAMES:
        from dimine_python_sdk.models import geometry as _geometry

        return getattr(_geometry, name)
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")