# Json 文件格式

::: details 目录
[[toc]]
:::

## 整体数据格式

``` json5
{
    Data:[
        {
          
            Elements:{                          // 系统图展示所需数据
                Nodes:[],                       // 图例节点，所有与工程信息化相关的图例（图标类型与区域）
                Markers:[],                     // 与工程信息无关的标识对象（增加文本注释，图上的图片说明）
                Relations:[],                   // 管线对象
            },
            ID: '',                             // 图ID
            Name: '',                           // 名称
            CategoryID: '',                     // 图分类ID
            ProjectID: '',                      // 项目ID
            BuildingID: '',                     // 建筑ID
            FloorID: '',                        // 楼层id
            Note: '',                           // 图说明
            Log: {                              //图操作日志
                  Mark:'',                      //图的存盘标记
                  CommandList:[
                   {
                        Command: '',            //命令
                        Desc: '',               //描述
                        Detail: ''              //详情
                    }
                ]
            }
        }
    ],
    Message: '',
    Result: ''
}
```

## 图例节点

``` json5
    Nodes:[
        {   
            ID: '',                             // ID
            Name: '',                           // 名称
            AttachObjectIds:[],                 // 返回工程信息化对象 ID 列表
            GraphElementType: '',               // 图例类型 None/Line/Zone/Image:非图例/线条/区域类型/图标
            GraphElementId: '',                 // 对应的图元ID
            Num: 1                              //图例数量
            Pos: {X: 0, Y: 0},                  // 位置
            Scale: {X: 1, Y: 1, Z: 1},          // 缩放
            Rolate: {X: 0, Y: 0, Z: 0},         // 旋转
            Size: {Width:0, Height: 0},         // 大小
            AnchorList:[
                    {
                        ID: '',                 // 锚点ID
                        Pos: '',                // 锚点的坐标
                    },
                    ...
                ],
            OutLine: [
                [{X:0,Y:0,Z:0},...],            // 外轮廓 
                ...                             // 内轮廓
            ],                                  // 轮廓线
            Properties: {}                      // 由应用自己定义
        },
        ...
    ]
```

## 标识对象

``` json5
    Markers:[
        {
            ID: '',                             // ID
            Name: '',                           // 名称
            Type: '',                           // 图标（Image），线类型(Line)，文本（Text）
            Pos: {X: 0, y: 0},                  // 位置
            Scale: {X: 1, Y: 1, Z: 1},          // 缩放
            Rolate: {X: 0, Y: 0, Z: 0},         // 旋转
            Size: {Width:0, Height: 0},         // 大小
            Properties: {}                      // 由应用自己定义
        },
        ...
    ]
```

## 对象关系

``` json5
    Relations: [
        {
            ID: '',                             // ID
            Name: '',                           // 名称
            GraphElementId: '',                 // 对应的图例ID
            Node1ID: '',                        // 关联节点1_id
            Node2ID: '',                        // 关联节点2_id
            Anchor1ID: '',                      // 关联锚点1_id
            Anchor2ID: '',                      // 关联锚点2_id
            Dir: 0,                             // 方向（0:无向，1：节点1到节点2，2：节点2到节点1)
            LineType: '',                       // 直线（Line），水平垂直
            PointList: [],                      // 线的顶点坐标
            Style: ''                           // 线的绘图样式
        },
        ...
    ]
```
