NavisworksTransport/doc/introduction/2.4.3_输出格式功能设计说明.md

8.2 KiB
Raw Blame History

2.4.3 输出格式功能设计说明

2.4.3.1. 模块描述

输出格式模块是交互式导航功能的关键模块负责支持路径规划结果结构化文件输出XML/JSON/CSV确保结果文件能够导入DELMIA。该模块提供了标准化的数据交换格式使路径规划结果可以在不同的系统和软件之间进行交换和复用。

该模块与ExportPathCommand、PathDataManager和各类导出器XML/JSON/CSV紧密集成实现灵活的数据导出功能。

2.4.3.2. 功能

核心功能

  1. XML格式输出导出为XML格式的结构化数据
  2. JSON格式输出导出为JSON格式的结构化数据
  3. CSV格式输出导出为CSV表格格式
  4. DELMIA兼容确保输出格式兼容DELMIA导入
  5. 数据转换:支持不同格式之间的数据转换

子功能

功能编号 功能名称 功能描述
2.4.3.F1 XML导出 导出路径数据为XML格式
2.4.3.F2 JSON导出 导出路径数据为JSON格式
2.4.3.F3 CSV导出 导出路径数据为CSV格式
2.4.3.F4 DELMIA格式 生成DELMIA兼容的输出
2.4.3.F5 格式验证 验证输出格式正确性
2.4.3.F6 批量导出 批量导出多条路径
2.4.3.F7 字段定制 定制导出的字段内容

2.4.3.3. 性能

性能指标

指标名称 目标值 说明
导出响应时间 < 1秒 导出单条路径的响应时间
批量导出速度 > 100条/秒 批量导出的处理速度
文件大小优化 < 1MB 单条路径的导出文件大小
内存占用 < 100MB 导出过程的内存占用

性能优化策略

  1. 流式写入大文件
  2. 异步导出操作
  3. 数据压缩

2.4.3.4. 输入输出项

1. 字段输入输出

输入字段

字段名 类型 必填 说明
Routes List 要导出的路径列表
Format ExportFormat 导出格式
ExportOptions ExportOptions 导出选项

输出字段

字段名 类型 说明
FilePath string 导出文件路径
ExportedCount int 导出的路径数量
FileSize long 文件大小

2. 界面交互输入输出

界面输入

  • 导出格式选择
  • 字段选择勾选
  • 文件路径选择
  • DELMIA兼容选项

界面输出

  • 导出进度显示
  • 文件大小信息
  • 导出结果提示
  • 文件预览

2.4.3.5. 算法

XML导出算法

算法导出路径为XML格式
输入:路径列表,导出选项
输出XML文件

1. 创建XML文档
2. 添加根元素<TransportPaths>
3. 对于每条路径:
   4. 创建<Path>元素
   5. 添加路径属性ID、名称、长度等
   6. 添加<Points>子元素
   7. 对于每个路径点:
      8. 创建<Point>元素
      9. 添加坐标和属性
10. 保存XML文件

JSON导出算法

算法导出路径为JSON格式
输入:路径列表,导出选项
输出JSON文件

1. 创建路径数据对象列表
2. 对于每条路径:
   3. 序列化路径对象为JSON对象
   4. 添加到列表
5. 序列化整个列表为JSON字符串
6. 保存到文件

CSV导出算法

算法导出路径为CSV格式
输入:路径列表,导出选项
输出CSV文件

1. 写入CSV表头
2. 对于每条路径的每个点:
   3. 创建数据行
   4. 写入坐标、类型等信息
   5. 写入CSV文件

2.4.3.6. 流程逻辑

开始
  │
  ▼
┌─────────────────┐
│  选择要导出的路径 │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  选择导出格式    │
└────────┬────────┘
         │
    ┌────┼────┬────────┐
    ▼    ▼    ▼        ▼
┌──────┐┌──────┐┌──────┐┌──────┐
│ XML  ││ JSON ││ CSV  ││DELMIA│
└──┬───┘└──┬───┘└──┬───┘└──┬───┘
   │       │       │       │
   └───────┼───────┼───────┘
           │       │
           ▼       ▼
   ┌─────────────────────┐
   │ 配置导出字段和选项   │
   └──────────┬──────────┘
              │
              ▼
   ┌─────────────────────┐
   │ 选择保存文件路径     │
   └──────────┬──────────┘
              │
              ▼
   ┌─────────────────────┐
   │ 执行导出操作         │
   └──────────┬──────────┘
              │
              ▼
   ┌─────────────────────┐
   │ 验证导出结果         │
   └──────────┬──────────┘
              │
              ▼
   ┌─────────────────────┐
   │ 显示导出完成信息     │
   └──────────┬──────────┘
              │
              ▼
             结束

2.4.3.7. 接口

公共接口

/// <summary>
/// 导出路径命令
/// </summary>
public class ExportPathCommand
{
    /// <summary>
    /// 执行导出
    /// </summary>
    /// <param name="routes">路径列表</param>
    /// <param name="format">导出格式</param>
    /// <param name="filePath">文件路径</param>
    /// <returns>导出结果</returns>
    public ExportResult Execute(List<PathRoute> routes, ExportFormat format, string filePath);
}

/// <summary>
/// 导出格式枚举
/// </summary>
public enum ExportFormat
{
    XML,
    JSON,
    CSV,
    DELMIA
}

/// <summary>
/// 导出选项
/// </summary>
public class ExportOptions
{
    public bool IncludeCoordinates { get; set; }
    public bool IncludeTiming { get; set; }
    public bool IncludeProperties { get; set; }
    public bool UseMeters { get; set; }
}

2.4.3.8. 注释设计

代码注释规范

/// <summary>
/// DELMIA导出配置
/// 用于生成DELMIA兼容的路径数据
/// </summary>
public class DelmiaExportConfig
{
    /// <summary>
    /// 坐标系类型
    /// DELMIA使用特定的坐标系约定
    /// </summary>
    public CoordinateSystemType CoordinateSystem { get; set; }
    
    /// <summary>
    /// 是否包含速度信息
    /// </summary>
    public bool IncludeVelocity { get; set; }
    
    /// <summary>
    /// 采样间隔(秒)
    /// </summary>
    public double SampleInterval { get; set; }
}

2.4.3.9. 数据结构

ExportFormat 枚举

说明
XML XML格式
JSON JSON格式
CSV CSV格式
DELMIA DELMIA兼容格式

ExportOptions 结构

字段名 类型 说明
IncludeCoordinates bool 包含坐标信息
IncludeTiming bool 包含时间信息
IncludeProperties bool 包含属性信息
UseMeters bool 使用米制单位
Precision int 坐标精度(小数位)

XML格式示例

<?xml version="1.0" encoding="UTF-8"?>
<TransportPaths>
  <Path id="path001" name="主通道路径">
    <Length>125.5</Length>
    <EstimatedTime>156.9</EstimatedTime>
    <Points>
      <Point index="0" type="Start">
        <X>10.0</X>
        <Y>20.0</Y>
        <Z>0.0</Z>
      </Point>
      <!-- 更多点... -->
    </Points>
  </Path>
</TransportPaths>

JSON格式示例

{
  "paths": [
    {
      "id": "path001",
      "name": "主通道路径",
      "length": 125.5,
      "estimatedTime": 156.9,
      "points": [
        {
          "index": 0,
          "type": "Start",
          "x": 10.0,
          "y": 20.0,
          "z": 0.0
        }
      ]
    }
  ]
}

CSV格式示例

PathID,PathName,PointIndex,PointType,X,Y,Z
path001,主通道路径,0,Start,10.0,20.0,0.0
path001,主通道路径,1,WayPoint,15.0,25.0,0.0