289 lines
7.0 KiB
C#
289 lines
7.0 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
|
||
namespace RevitHttpControl.Models
|
||
{
|
||
/// <summary>
|
||
/// IFC导出请求参数
|
||
/// </summary>
|
||
public class ExportIfcRequest
|
||
{
|
||
/// <summary>
|
||
/// 输出文件路径(可选,如果不指定则自动生成)
|
||
/// </summary>
|
||
public string OutputPath { get; set; }
|
||
|
||
/// <summary>
|
||
/// IFC版本(默认IFC2x3)
|
||
/// </summary>
|
||
public IfcVersion Version { get; set; } = IfcVersion.IFC2x3;
|
||
|
||
/// <summary>
|
||
/// 导出范围
|
||
/// </summary>
|
||
public ExportRange Range { get; set; } = ExportRange.VisibleElements;
|
||
|
||
/// <summary>
|
||
/// 是否包含空间边界
|
||
/// </summary>
|
||
public bool IncludeSpaceBoundaries { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 是否分割墙和柱
|
||
/// </summary>
|
||
public bool SplitWallsAndColumns { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 要导出的楼层列表(可选,为空则导出所有楼层)
|
||
/// </summary>
|
||
public List<string> LevelNames { get; set; } = new List<string>();
|
||
|
||
/// <summary>
|
||
/// 要导出的类别列表(可选,为空则导出所有类别)
|
||
/// </summary>
|
||
public List<string> Categories { get; set; } = new List<string>();
|
||
|
||
/// <summary>
|
||
/// 是否包含2D元素
|
||
/// </summary>
|
||
public bool Include2DElements { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 文件名前缀(当OutputPath为空时使用)
|
||
/// </summary>
|
||
public string FileNamePrefix { get; set; } = "Export";
|
||
}
|
||
|
||
/// <summary>
|
||
/// IFC导出响应
|
||
/// </summary>
|
||
public class ExportIfcResponse
|
||
{
|
||
/// <summary>
|
||
/// 导出文件路径
|
||
/// </summary>
|
||
public string FilePath { get; set; }
|
||
|
||
/// <summary>
|
||
/// 文件名
|
||
/// </summary>
|
||
public string FileName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 文件大小(字节)
|
||
/// </summary>
|
||
public long FileSizeBytes { get; set; }
|
||
|
||
/// <summary>
|
||
/// 文件大小显示
|
||
/// </summary>
|
||
public string FileSizeDisplay { get; set; }
|
||
|
||
/// <summary>
|
||
/// 导出的元素数量
|
||
/// </summary>
|
||
public int ExportedElementsCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 处理时间(秒)
|
||
/// </summary>
|
||
public double ProcessingTimeSeconds { get; set; }
|
||
|
||
/// <summary>
|
||
/// IFC版本
|
||
/// </summary>
|
||
public string IfcVersion { get; set; }
|
||
|
||
/// <summary>
|
||
/// 导出统计信息
|
||
/// </summary>
|
||
public ExportStatistics Statistics { get; set; }
|
||
|
||
/// <summary>
|
||
/// 导出时间
|
||
/// </summary>
|
||
public DateTime ExportedAt { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出统计信息
|
||
/// </summary>
|
||
public class ExportStatistics
|
||
{
|
||
/// <summary>
|
||
/// 按类别统计的元素数量
|
||
/// </summary>
|
||
public Dictionary<string, int> ElementsByCategory { get; set; } = new Dictionary<string, int>();
|
||
|
||
/// <summary>
|
||
/// 按楼层统计的元素数量
|
||
/// </summary>
|
||
public Dictionary<string, int> ElementsByLevel { get; set; } = new Dictionary<string, int>();
|
||
|
||
/// <summary>
|
||
/// 导出的楼层数量
|
||
/// </summary>
|
||
public int LevelsCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 导出的类别数量
|
||
/// </summary>
|
||
public int CategoriesCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否包含几何信息
|
||
/// </summary>
|
||
public bool HasGeometry { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否包含属性信息
|
||
/// </summary>
|
||
public bool HasProperties { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// IFC版本枚举
|
||
/// </summary>
|
||
public enum IfcVersion
|
||
{
|
||
/// <summary>
|
||
/// IFC 2x3 Coordination View 2.0
|
||
/// </summary>
|
||
IFC2x3,
|
||
|
||
/// <summary>
|
||
/// IFC 4 标准版本
|
||
/// </summary>
|
||
IFC4,
|
||
|
||
/// <summary>
|
||
/// IFC 4 Reference View
|
||
/// </summary>
|
||
IFC4RV,
|
||
|
||
/// <summary>
|
||
/// IFC 4 Design Transfer View
|
||
/// </summary>
|
||
IFC4DTV
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出范围枚举
|
||
/// </summary>
|
||
public enum ExportRange
|
||
{
|
||
/// <summary>
|
||
/// 仅可见元素
|
||
/// </summary>
|
||
VisibleElements,
|
||
|
||
/// <summary>
|
||
/// 当前视图
|
||
/// </summary>
|
||
CurrentView,
|
||
|
||
/// <summary>
|
||
/// 整个项目
|
||
/// </summary>
|
||
EntireProject,
|
||
|
||
/// <summary>
|
||
/// 选中的元素
|
||
/// </summary>
|
||
SelectedElements
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出格式信息
|
||
/// </summary>
|
||
public class ExportFormat
|
||
{
|
||
/// <summary>
|
||
/// 格式代码
|
||
/// </summary>
|
||
public string Format { get; set; }
|
||
|
||
/// <summary>
|
||
/// 格式名称
|
||
/// </summary>
|
||
public string Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 格式描述
|
||
/// </summary>
|
||
public string Description { get; set; }
|
||
|
||
/// <summary>
|
||
/// 支持的文件扩展名
|
||
/// </summary>
|
||
public List<string> Extensions { get; set; } = new List<string>();
|
||
|
||
/// <summary>
|
||
/// 是否支持异步导出
|
||
/// </summary>
|
||
public bool SupportsAsync { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否为实验性功能
|
||
/// </summary>
|
||
public bool IsExperimental { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出进度信息
|
||
/// </summary>
|
||
public class ExportProgress
|
||
{
|
||
/// <summary>
|
||
/// 当前步骤
|
||
/// </summary>
|
||
public string CurrentStep { get; set; }
|
||
|
||
/// <summary>
|
||
/// 进度百分比(0-100)
|
||
/// </summary>
|
||
public int ProgressPercentage { get; set; }
|
||
|
||
/// <summary>
|
||
/// 已处理的元素数量
|
||
/// </summary>
|
||
public int ProcessedElements { get; set; }
|
||
|
||
/// <summary>
|
||
/// 总元素数量
|
||
/// </summary>
|
||
public int TotalElements { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预计剩余时间(秒)
|
||
/// </summary>
|
||
public double EstimatedRemainingSeconds { get; set; }
|
||
|
||
/// <summary>
|
||
/// 开始时间
|
||
/// </summary>
|
||
public DateTime StartTime { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 异步导出响应
|
||
/// </summary>
|
||
public class AsyncExportResponse
|
||
{
|
||
/// <summary>
|
||
/// 任务ID
|
||
/// </summary>
|
||
public string TaskId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 状态查询URL
|
||
/// </summary>
|
||
public string StatusUrl { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预计完成时间
|
||
/// </summary>
|
||
public DateTime EstimatedCompletionTime { get; set; }
|
||
}
|
||
}
|