TellmeRevitPluging/Models/OverviewModels.cs

296 lines
7.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace RevitHttpControl.Models
{
/// <summary>
/// 模型总览响应
/// </summary>
public class ModelOverviewResponse
{
/// <summary>
/// 项目基本信息
/// </summary>
public ProjectInfo Project { get; set; }
/// <summary>
/// 主要构件统计
/// </summary>
public ElementCounts Elements { get; set; }
/// <summary>
/// 模型组织信息
/// </summary>
public ModelStructure Structure { get; set; }
/// <summary>
/// 模型层级信息
/// </summary>
public ModelHierarchy Hierarchy { get; set; }
/// <summary>
/// 链接文件统计
/// </summary>
public LinkFiles Links { get; set; }
/// <summary>
/// 统计生成时间
/// </summary>
public DateTime GeneratedAt { get; set; }
}
/// <summary>
/// 项目基本信息
/// </summary>
public class ProjectInfo
{
/// <summary>
/// 项目名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 文件路径
/// </summary>
public string FilePath { get; set; }
/// <summary>
/// Revit版本
/// </summary>
public string RevitVersion { get; set; }
/// <summary>
/// 是否为中心文件
/// </summary>
public bool IsCentralFile { get; set; }
/// <summary>
/// 项目状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 文件大小(字节)
/// </summary>
[JsonProperty("fileSize")]
public long FileSizeBytes { get; set; }
/// <summary>
/// 文件大小(格式化显示)
/// </summary>
public string FileSizeDisplay { get; set; }
/// <summary>
/// 面片数
/// </summary>
[JsonProperty("polygonCount")]
public long PolygonCount { get; set; }
/// <summary>
/// 模型特征数
/// </summary>
[JsonProperty("featureCount")]
public int FeatureCount { get; set; }
}
/// <summary>
/// 主要构件数量统计
/// </summary>
public class ElementCounts
{
/// <summary>
/// 墙数量
/// </summary>
public int Walls { get; set; }
/// <summary>
/// 门数量
/// </summary>
public int Doors { get; set; }
/// <summary>
/// 窗数量
/// </summary>
public int Windows { get; set; }
/// <summary>
/// 楼板数量
/// </summary>
public int Floors { get; set; }
/// <summary>
/// 天花板数量
/// </summary>
public int Ceilings { get; set; }
/// <summary>
/// 柱数量
/// </summary>
public int Columns { get; set; }
/// <summary>
/// 梁数量
/// </summary>
public int Beams { get; set; }
/// <summary>
/// 房间数量
/// </summary>
public int Rooms { get; set; }
/// <summary>
/// 总构件数
/// </summary>
public int Total => Walls + Doors + Windows + Floors + Ceilings + Columns + Beams + Rooms;
}
/// <summary>
/// 模型组织结构信息
/// </summary>
public class ModelStructure
{
/// <summary>
/// 楼层数量
/// </summary>
public int Levels { get; set; }
/// <summary>
/// 三维视图数量
/// </summary>
public int Views3D { get; set; }
/// <summary>
/// 平面视图数量
/// </summary>
public int FloorPlans { get; set; }
/// <summary>
/// 立面视图数量
/// </summary>
public int Elevations { get; set; }
/// <summary>
/// 剖面视图数量
/// </summary>
public int Sections { get; set; }
/// <summary>
/// 图纸数量
/// </summary>
public int Sheets { get; set; }
}
/// <summary>
/// 模型层级信息
/// </summary>
public class ModelHierarchy
{
/// <summary>
/// 楼层详情列表
/// </summary>
public List<LevelInfo> Levels { get; set; }
/// <summary>
/// 组数量
/// </summary>
public int Groups { get; set; }
/// <summary>
/// 工作集数量
/// </summary>
public int Worksets { get; set; }
/// <summary>
/// 阶段数量
/// </summary>
public int Phases { get; set; }
/// <summary>
/// 设计选项数量
/// </summary>
public int DesignOptions { get; set; }
}
/// <summary>
/// 楼层信息
/// </summary>
public class LevelInfo
{
/// <summary>
/// 楼层名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 标高值(毫米)
/// </summary>
public double Elevation { get; set; }
/// <summary>
/// 标高值(米,显示用)
/// </summary>
public string ElevationDisplay => $"{Elevation / 1000:F1}m";
}
/// <summary>
/// 链接文件统计
/// </summary>
public class LinkFiles
{
/// <summary>
/// Revit链接文件
/// </summary>
public LinkCategory RevitLinks { get; set; }
/// <summary>
/// CAD链接文件
/// </summary>
public LinkCategory CadLinks { get; set; }
/// <summary>
/// 点云链接数量
/// </summary>
public int PointClouds { get; set; }
/// <summary>
/// 图像链接数量
/// </summary>
public int Images { get; set; }
/// <summary>
/// 链接文件总结描述
/// </summary>
public string Summary { get; set; }
}
/// <summary>
/// 链接文件分类统计
/// </summary>
public class LinkCategory
{
/// <summary>
/// 总数
/// </summary>
public int Total { get; set; }
/// <summary>
/// 已加载数量
/// </summary>
public int Loaded { get; set; }
/// <summary>
/// 未加载数量
/// </summary>
public int Unloaded { get; set; }
/// <summary>
/// 未找到数量
/// </summary>
public int NotFound { get; set; }
}
}