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