Files
2025-09-16 16:06:41 +08:00

1835 lines
72 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Mechanical;
using Autodesk.Revit.DB.Structure;
namespace Szmedi.RevitToolkit.Approval.Extensions
{
internal static class ElementExtensions
{
public static BuiltInCategory ToBuiltInCategory(this Category category)
{
var builtInCategory = (BuiltInCategory)category.Id.IntegerValue;
return Enum.IsDefined(typeof(BuiltInCategory), builtInCategory)
? builtInCategory
: throw new ArgumentNullException(nameof(category), "不存在该内建类别");
}
/// <summary>
/// 获取轨道交通标识
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public static string GetMetroCategory(this Element item)
{
Document doc = item.Document;
var categoryName = string.Empty;
switch (item.Category.ToBuiltInCategory())
{
//结构连接
case BuiltInCategory.OST_StructConnections:
{
if (item.Name.Contains("钢") && item.Name.Contains("节点"))
{
categoryName = "钢结构连接节点";
}
if (item.Name.Contains("钢") && item.Name.Contains("附件"))
{
categoryName = "钢结构连接附件";
}
}
break;
//钢筋形状
case BuiltInCategory.OST_RebarShape:
break;
//结构路径钢筋
case BuiltInCategory.OST_PathRein:
break;
//结构区域钢筋
case BuiltInCategory.OST_AreaRein:
break;
//结构钢筋
case BuiltInCategory.OST_Rebar:
break;
//隔热层
case BuiltInCategory.OST_FabricationPipeworkInsulation:
break;
//内衬
case BuiltInCategory.OST_FabricationDuctworkLining:
break;
//MEP 预制保护层
case BuiltInCategory.OST_FabricationContainment:
break;
// MEP 预制管道
case BuiltInCategory.OST_FabricationPipework:
break;
//MEP 预制支架
case BuiltInCategory.OST_FabricationHangers:
break;
//隔热层
case BuiltInCategory.OST_FabricationDuctworkInsulation:
break;
//线管
case BuiltInCategory.OST_Conduit:
break;
//电缆桥架
case BuiltInCategory.OST_CableTray:
break;
//线管配件
case BuiltInCategory.OST_ConduitFitting:
break;
//电缆桥架配件
case BuiltInCategory.OST_CableTrayFitting:
break;
//风管内衬
case BuiltInCategory.OST_DuctLinings:
break;
//风管隔热层
case BuiltInCategory.OST_DuctInsulations:
break;
//管道隔热层
case BuiltInCategory.OST_PipeInsulations:
break;
//HVAC 区
case BuiltInCategory.OST_HVAC_Zones:
break;
//喷头
case BuiltInCategory.OST_Sprinklers:
break;
//灯具
case BuiltInCategory.OST_LightingDevices:
break;
//火警设备
case BuiltInCategory.OST_FireAlarmDevices:
break;
//数据设备
case BuiltInCategory.OST_DataDevices:
break;
//通讯设备
case BuiltInCategory.OST_CommunicationDevices:
break;
//安全设备
case BuiltInCategory.OST_SecurityDevices:
break;
//护理呼叫设备
case BuiltInCategory.OST_NurseCallDevices:
break;
//电话设备
case BuiltInCategory.OST_TelephoneDevices:
break;
//管道附件
case BuiltInCategory.OST_PipeAccessory:
break;
//软管
case BuiltInCategory.OST_FlexPipeCurves:
break;
//管件
case BuiltInCategory.OST_PipeFitting:
break;
//管道
case BuiltInCategory.OST_PipeCurves:
break;
//管道系统
case BuiltInCategory.OST_PipingSystem:
break;
//导线
case BuiltInCategory.OST_Wire:
break;
//软风管
case BuiltInCategory.OST_FlexDuctCurves:
break;
//风管附件
case BuiltInCategory.OST_DuctAccessory:
break;
//风管系统
case BuiltInCategory.OST_DuctSystem:
break;
//风道末端
case BuiltInCategory.OST_DuctTerminal:
break;
//风管管件
case BuiltInCategory.OST_DuctFitting:
break;
//风管
case BuiltInCategory.OST_DuctCurves:
break;
//桥梁支座
case BuiltInCategory.OST_BridgeBearings:
break;
//桥梁大梁
case BuiltInCategory.OST_BridgeGirders:
break;
//桥梁基础
case BuiltInCategory.OST_BridgeFoundations:
break;
//桥面
case BuiltInCategory.OST_BridgeDecks:
break;
//桥拱
case BuiltInCategory.OST_BridgeArches:
break;
//桥梁缆索
case BuiltInCategory.OST_BridgeCables:
break;
//桥塔
case BuiltInCategory.OST_BridgeTowers:
break;
//桥墩
case BuiltInCategory.OST_BridgePiers:
{
categoryName = "混凝土桥墩";
}
break;
//桥台
case BuiltInCategory.OST_BridgeAbutments:
break;
//空间
case BuiltInCategory.OST_MEPSpaces:
break;
//体量洞口
case BuiltInCategory.OST_MassOpening:
break;
//体量天窗
case BuiltInCategory.OST_MassSkylights:
break;
//体量玻璃
case BuiltInCategory.OST_MassGlazing:
break;
//体量屋顶
case BuiltInCategory.OST_MassRoof:
break;
//体量外墙
case BuiltInCategory.OST_MassExteriorWall:
break;
//体量内墙
case BuiltInCategory.OST_MassInteriorWall:
break;
//体量分区
case BuiltInCategory.OST_MassZone:
break;
//体量楼层
case BuiltInCategory.OST_MassFloor:
break;
//体量
case BuiltInCategory.OST_Mass:
break;
//项目信息
case BuiltInCategory.OST_ProjectInformation:
break;
//环境
case BuiltInCategory.OST_Entourage:
break;
//植物
case BuiltInCategory.OST_Planting:
break;
//专用设备
case BuiltInCategory.OST_SpecialityEquipment:
break;
//建筑地坪
case BuiltInCategory.OST_BuildingPad:
break;
//场地
case BuiltInCategory.OST_Site:
break;
//道路
case BuiltInCategory.OST_Roads:
break;
//停车场
case BuiltInCategory.OST_Parking:
break;
//卫浴装置
case BuiltInCategory.OST_PlumbingFixtures:
break;
//机械设备
case BuiltInCategory.OST_MechanicalEquipment:
break;
//照明设备
case BuiltInCategory.OST_LightingFixtures:
break;
//电气装置
case BuiltInCategory.OST_ElectricalFixtures:
break;
//电气设备
case BuiltInCategory.OST_ElectricalEquipment:
break;
//橱柜
case BuiltInCategory.OST_Casework:
break;
//竖井洞口
case BuiltInCategory.OST_ShaftOpening:
break;
//房间
case BuiltInCategory.OST_Rooms:
break;
//结构桁架
case BuiltInCategory.OST_StructuralTruss:
{
categoryName = "钢桁架";
if (item.Name.Contains("网"))
{
categoryName = "钢网架";
}
}
break;
//结构柱
case BuiltInCategory.OST_StructuralColumns:
{
categoryName = "混凝土柱";
if (item.Name.Contains("钢"))
{
categoryName = "钢柱";
}
if (doc.Title.Contains("围护"))
{
categoryName = "围护柱";
if (item.Name.Contains("桩"))
{
categoryName = "围护桩";
}
}
}
break;
//结构框架
case BuiltInCategory.OST_StructuralFraming:
{
categoryName = "混凝土梁";
if (item.Name.Contains("钢") && item.Name.Contains("梁"))
{
categoryName = "钢梁";
}
if (item.Name.Contains("钢") && item.Name.Contains("支撑"))
{
categoryName = "钢支撑";
}
if (doc.Title.Contains("围护"))
{
categoryName = "围护梁";
}
}
break;
//结构基础
case BuiltInCategory.OST_StructuralFoundation:
{
if (item.Name.Contains("桩"))
{
categoryName = "围护桩";
}
if (item.Name.Contains("柱"))
{
categoryName = "围护柱";
}
if (item.Name.Contains("桥墩"))
{
categoryName = "混凝土桥墩";
}
if (item.Name.Contains("桥台"))
{
categoryName = "混凝土桥台";
}
categoryName = item switch
{
Floor => "混凝土板",
WallFoundation => "混凝土墙",
_ => categoryName
};
}
break;
//常规模型
case BuiltInCategory.OST_GenericModel:
{
if (item.Name.Contains("雨篷"))
{
categoryName = "雨篷";
}
if (item.Name.Contains("台阶"))
{
categoryName = "台阶";
}
if (item.Name.Contains("预埋件"))
{
categoryName = "预埋件";
}
}
break;
//终端
case BuiltInCategory.OST_RailingTermination:
//支座
case BuiltInCategory.OST_RailingSupport:
//扶手
case BuiltInCategory.OST_RailingHandRail:
//顶部扶栏
case BuiltInCategory.OST_RailingTopRail:
//栏杆扶手
case BuiltInCategory.OST_StairsRailing:
{
categoryName = "栏杆";
}
break;
//柱
case BuiltInCategory.OST_Columns:
{
categoryName = "建筑柱";
}
break;
//家具
case BuiltInCategory.OST_Furniture:
break;
//结构加强板
case BuiltInCategory.OST_StructuralStiffener:
//楼板边缘
case BuiltInCategory.OST_EdgeSlab:
//楼板
case BuiltInCategory.OST_Floors:
{
categoryName = "楼地板";
if (item is Floor floor)
{
var structural = floor
.get_Parameter(BuiltInParameter.FLOOR_PARAM_IS_STRUCTURAL)
.AsInteger();
if (structural == 1)
{
categoryName = "混凝土板";
}
var levelMax = doc.OfClass<Level>()
.Cast<Level>()
.OrderBy(l => l.Elevation)
.LastOrDefault();
if (levelMax!.Id == floor.LevelId)
{
categoryName = "混凝土屋面";
}
}
}
break;
//平台
case BuiltInCategory.OST_StairsLandings:
//梯段
case BuiltInCategory.OST_StairsRuns:
//楼梯
case BuiltInCategory.OST_Stairs:
//支撑
case BuiltInCategory.OST_StairsStringerCarriage:
{
categoryName = "楼梯";
}
break;
//屋顶
case BuiltInCategory.OST_Roofs:
//檐沟
case BuiltInCategory.OST_Gutter:
//封檐板
case BuiltInCategory.OST_Fascia:
//屋檐底板
case BuiltInCategory.OST_RoofSoffit:
{
categoryName = "屋顶";
}
break;
//坡道
case BuiltInCategory.OST_Ramps:
//门
case BuiltInCategory.OST_Doors:
//窗
case BuiltInCategory.OST_Windows:
//天花板
case BuiltInCategory.OST_Ceilings:
{
categoryName = item.Category.Name;
}
break;
//幕墙系统
case BuiltInCategory.OST_CurtaSystem:
//幕墙竖梃
case BuiltInCategory.OST_CurtainWallMullions:
//幕墙嵌板
case BuiltInCategory.OST_CurtainWallPanels:
{
categoryName = "幕墙";
}
break;
//墙饰条
case BuiltInCategory.OST_Cornices:
//墙
case BuiltInCategory.OST_Walls:
{
categoryName = "建筑墙";
if (item is Wall wall)
{
var structural = wall
.get_Parameter(BuiltInParameter.WALL_STRUCTURAL_SIGNIFICANT)
.AsInteger();
if (structural == 1)
{
categoryName = "混凝土墙";
}
if (wall.StructuralUsage ==
StructuralWallUsage.NonBearing)
{
categoryName = "建筑墙";
}
if (wall.WallType.Kind == WallKind.Curtain)
{
categoryName = "幕墙";
}
if (doc.Title.Contains("围护"))
{
categoryName = "围护墙";
}
}
}
break;
}
return categoryName;
}
/// <summary>
/// 获取建筑标识
/// </summary>
/// <param name="item"></param>
/// <param name="hasWindowDoor"></param>
/// <returns></returns>
public static string GetArchiCategory(this Element item, bool hasWindowDoor)
{
Document doc = item.Document;
var categoryName = string.Empty;
switch (item.Category.ToBuiltInCategory())
{
//结构连接
case BuiltInCategory.OST_StructConnections:
break;
//钢筋形状
case BuiltInCategory.OST_RebarShape:
//结构路径钢筋
case BuiltInCategory.OST_PathRein:
//结构区域钢筋
case BuiltInCategory.OST_AreaRein:
//结构钢筋
case BuiltInCategory.OST_Rebar:
break;
//隔热层
case BuiltInCategory.OST_FabricationDuctworkInsulation:
//隔热层
case BuiltInCategory.OST_FabricationPipeworkInsulation:
//内衬
case BuiltInCategory.OST_FabricationDuctworkLining:
//MEP 预制保护层
case BuiltInCategory.OST_FabricationContainment:
break;
//风管内衬
case BuiltInCategory.OST_DuctLinings:
//风管隔热层
case BuiltInCategory.OST_DuctInsulations:
//管道隔热层
case BuiltInCategory.OST_PipeInsulations:
//HVAC 区
case BuiltInCategory.OST_HVAC_Zones:
break;
//MEP 预制支架
case BuiltInCategory.OST_FabricationHangers:
break;
//线管
case BuiltInCategory.OST_Conduit:
{
categoryName = "弱电线缆";
if (!item.Name.Contains("弱电"))
{
categoryName = "封闭母线及电缆电线";
}
}
break;
//电缆桥架
case BuiltInCategory.OST_CableTray:
{
categoryName = "电缆桥架";
}
break;
//线管配件
case BuiltInCategory.OST_ConduitFitting:
break;
//电缆桥架配件
case BuiltInCategory.OST_CableTrayFitting:
break;
//喷头
case BuiltInCategory.OST_Sprinklers:
{
categoryName = "消防喷头";
if (item.Name.Contains("闭式"))
{
categoryName = "闭式水喷头";
}
if (item.Name.Contains("水幕"))
{
categoryName = "水幕喷头";
}
if (item.Name.Contains("干粉"))
{
categoryName = "干粉喷头";
}
}
break;
//灯具
case BuiltInCategory.OST_LightingDevices:
{
if (item.Name.Contains("应急"))
{
categoryName = "消防应急照明灯具";
if (item.Name.Contains("标志"))
{
categoryName = "消防应急标志灯具";
if (item.Name.Contains("照明"))
{
categoryName = "消防应急照明标志复合灯具";
}
}
}
}
break;
//护理呼叫设备
case BuiltInCategory.OST_NurseCallDevices:
//电话设备
case BuiltInCategory.OST_TelephoneDevices:
//专用设备
case BuiltInCategory.OST_SpecialityEquipment:
//数据设备
case BuiltInCategory.OST_DataDevices:
//通讯设备
case BuiltInCategory.OST_CommunicationDevices:
//安全设备
case BuiltInCategory.OST_SecurityDevices:
//电气设备
case BuiltInCategory.OST_ElectricalEquipment:
{
if (item.Name.Contains("控制台"))
{
categoryName = "消防控制台";
break;
}
if (item.Name.Contains("控制柜"))
{
categoryName = "消防水泵控制柜";
break;
}
if (item.Name.Contains("表"))
{
if (item.Name.Contains("智能"))
{
categoryName = "智能表";
}
if (item.Name.Contains("电能"))
{
if (item.Name.Contains("无功"))
{
categoryName = "无功功电能表";
}
else
{
categoryName = "有功功电能表";
}
}
break;
}
if (item.Name.Contains("传感器"))
{
categoryName = "传感器";
break;
}
if (item.Name.Contains("闸机"))
{
categoryName = "闸机";
break;
}
if (item.Name.Contains("液化石油气"))
{
categoryName = "液化石油气设备";
break;
}
if (item.Name.Contains("梯"))
{
if (item.Name.Contains("货梯"))
{
categoryName = "货梯";
break;
}
if (item.Name.Contains("担架"))
{
categoryName = "担架电梯";
break;
}
if (item.Name.Contains("消防"))
{
categoryName = "消防电梯";
break;
}
if (item.Name.Contains("杂物"))
{
categoryName = "杂物电梯";
}
if (item.Name.Contains("食梯"))
{
categoryName = "食梯";
}
if (item.Name.Contains("电梯门"))
{
categoryName = "电梯门";
}
break;
}
if (item.Name.Contains("升降平台"))
{
categoryName = "轮椅升降平台";
break;
}
if (item.Name.Contains("轿厢"))
{
categoryName = "轿厢";
break;
}
if (item.Name.Contains("人行") && item.Name.Contains("自动"))
{
categoryName = "自动人行道";
break;
}
}
break;
//管道附件
case BuiltInCategory.OST_PipeAccessory:
{
if (item.Name.Contains("计量表"))
{
categoryName = "计量表";
}
if (item.Name.Contains("燃气表"))
{
categoryName = "燃气表";
break;
}
if (item.Name.Contains("热量表"))
{
categoryName = "热量表";
break;
}
if (item.Name.Contains("试水阀"))
{
categoryName = "试水阀";
break;
}
if (item.Name.Contains("地漏"))
{
categoryName = "网框式地漏";
break;
}
if (item.Name.Contains("水嘴"))
{
categoryName = "水嘴";
break;
}
if (item.Name.Contains("水炮"))
{
categoryName = "自动扫描射水高空水炮灭火装置";
if (item.Name.Contains("标准"))
{
categoryName = "标准型自动扫描射水高空水炮灭火装置";
}
break;
}
if (item.Name.Contains("水龙头"))
{
categoryName = "水龙头";
if (categoryName.Contains("医用"))
{
categoryName = "医用水龙头";
}
}
if (item.Name.Contains("雨水口"))
{
categoryName = "雨水口";
if (item.Name.Contains("渗透"))
{
categoryName = "渗透雨水口";
}
break;
}
}
break;
//管件
case BuiltInCategory.OST_PipeFitting:
break;
//软管
case BuiltInCategory.OST_FlexPipeCurves:
// MEP 预制管道
case BuiltInCategory.OST_FabricationPipework:
//管道
case BuiltInCategory.OST_PipeCurves:
{
categoryName = "水管道";
if (item is MEPCurve curve)
{
var mepSystem = doc.GetElement(curve.MEPSystem.GetTypeId()) as MEPSystemType;
if (item.Name.Contains("油") || mepSystem.Name.Contains("油"))
{
categoryName = "特殊液体管道";
}
if (item.Name.Contains("气") || mepSystem.Name.Contains("气"))
{
categoryName = "特殊气体管道";
}
}
if (item is MEPCurveType)
{
if (item.Name.Contains("油"))
{
categoryName = "特殊液体管道";
}
if (item.Name.Contains("气"))
{
categoryName = "特殊气体管道";
}
}
}
break;
//管道系统
case BuiltInCategory.OST_PipingSystem:
break;
//导线
case BuiltInCategory.OST_Wire:
break;
//软风管
case BuiltInCategory.OST_FlexDuctCurves:
break;
//风管附件
case BuiltInCategory.OST_DuctAccessory:
break;
//风管系统
case BuiltInCategory.OST_DuctSystem:
break;
//风道末端
case BuiltInCategory.OST_DuctTerminal:
{
categoryName = "通风口";
if (item.Name.Contains("排气") && item.Name.Contains("卫生间"))
{
categoryName = "卫生间排气道";
}
}
break;
//风管管件
case BuiltInCategory.OST_DuctFitting:
break;
//风管
case BuiltInCategory.OST_DuctCurves:
break;
//空间
case BuiltInCategory.OST_MEPSpaces:
//房间
case BuiltInCategory.OST_Rooms:
break;
//体量洞口
case BuiltInCategory.OST_MassOpening:
break;
//体量玻璃
case BuiltInCategory.OST_MassGlazing:
break;
//体量分区
case BuiltInCategory.OST_MassZone:
break;
//体量楼层
case BuiltInCategory.OST_MassFloor:
break;
//体量
case BuiltInCategory.OST_Mass:
break;
//项目信息
case BuiltInCategory.OST_ProjectInformation:
break;
//植物
case BuiltInCategory.OST_Planting:
break;
//环境
case BuiltInCategory.OST_Entourage:
//建筑地坪
case BuiltInCategory.OST_BuildingPad:
//场地
case BuiltInCategory.OST_Site:
//道路
case BuiltInCategory.OST_Roads:
{
if (item.Name.Contains("盲道"))
{
categoryName = "盲道";
break;
}
if (item.Name.Contains("轮椅通道线"))
{
categoryName = "轮椅通道线";
}
if (item.Name.Contains("停车场路面"))
{
categoryName = "停车场路面";
break;
}
if (item.Name.Contains("停车位"))
{
categoryName = "机动车停车位";
break;
}
}
break;
//停车场
case BuiltInCategory.OST_Parking:
break;
//卫浴装置
case BuiltInCategory.OST_PlumbingFixtures:
{
if (item.Name.Contains("淋浴器"))
{
categoryName = "淋浴器";
if (item.Name.Contains("医用"))
{
categoryName = "医用淋浴器";
}
}
if (item.Name.Contains("蹲便器"))
{
categoryName = "蹲便器";
}
if (item.Name.Contains("淋浴房"))
{
categoryName = "淋浴房";
}
}
break;
//照明设备
case BuiltInCategory.OST_LightingFixtures:
break;
//电气装置
case BuiltInCategory.OST_ElectricalFixtures:
{
categoryName = "插座";
}
break;
//竖井洞口
case BuiltInCategory.OST_ShaftOpening:
break;
case BuiltInCategory.OST_SWallRectOpening:
{
categoryName = "门洞";
}
break;
//结构桁架
case BuiltInCategory.OST_StructuralTruss:
{
if (item.Name.Contains("混凝土"))
{
categoryName = "混凝土桁架";
if (item.Name.Contains("刚"))
{
categoryName = "混凝土刚架";
}
if (item.Name.Contains("屋"))
{
categoryName = "混凝土屋架";
}
}
if (item.Name.Contains("钢"))
{
categoryName = "钢桁架";
if (item.Name.Contains("网"))
{
categoryName = "钢网架";
}
if (item.Name.Contains("刚"))
{
categoryName = "钢刚架";
}
}
if (item.Name.Contains("木"))
{
categoryName = "木桁架";
if (item.Name.Contains("刚"))
{
categoryName = "木刚架";
}
if (item.Name.Contains("屋"))
{
categoryName = "木屋架";
}
}
}
break;
//结构基础
case BuiltInCategory.OST_StructuralFoundation:
{
if (item is Floor)
{
categoryName = "混凝土结构楼板";
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土楼板";
}
if (item.Name.Contains("钢"))
{
categoryName = "钢楼承板";
}
if (item.Name.Contains("地面板"))
{
categoryName = "地面板";
}
if (item.Name.Contains("楼层板"))
{
categoryName = "楼层板";
}
if (item.Name.Contains("挑檐"))
{
categoryName = "挑檐板";
if (item.Name.Contains("防火"))
{
categoryName = "防火挑檐";
if (item.Name.Contains("防护"))
{
categoryName = "防火防护挑檐";
}
}
}
}
else if (item is Wall)
{
categoryName = "混凝土墙";
//var structural = wall
// .get_Parameter(BuiltInParameter.WALL_STRUCTURAL_SIGNIFICANT)
// .AsInteger();
//if (major == Major.Structure || structural == 1)
//{
// categoryName = "混凝土墙";
//}
//else
if (item.Name.Contains("砌体"))
{
categoryName = "砌体墙";
}
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土墙板";
}
if (item.Name.Contains("钢"))
{
categoryName = "钢结构剪力墙";
}
if (item.Name.Contains("木"))
{
categoryName = "木构架墙";
}
}
}
break;
//结构柱
case BuiltInCategory.OST_StructuralColumns:
{
categoryName = "混凝土柱";
if (item.Name.Contains("钢"))
{
categoryName = "钢柱";
if (item.Name.Contains("型钢"))
{
categoryName = "型钢混凝土柱";
}
if (item.Name.Contains("钢管"))
{
categoryName = "钢管混凝土柱";
}
}
if (item.Name.Contains("木"))
{
categoryName = "木柱";
}
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土柱";
}
if (item.Name.Contains("砌体"))
{
categoryName = "砌体柱";
}
if (item.Name.Contains("叠合"))
{
categoryName = "叠合混凝土柱";
}
}
break;
//结构框架
case BuiltInCategory.OST_StructuralFraming:
{
categoryName = "混凝土梁";
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土梁";
}
if (item.Name.Contains("钢"))
{
categoryName = "钢梁";
if (item.Name.Contains("型钢"))
{
categoryName = "型钢混凝土梁";
}
if (item.Name.Contains("钢筋") && item.Name.Contains("预应力"))
{
categoryName = "钢筋混凝土预应力梁";
}
}
if (item.Name.Contains("木"))
{
categoryName = "木梁";
}
}
break;
//终端
case BuiltInCategory.OST_RailingTermination:
//支座
case BuiltInCategory.OST_RailingSupport:
//扶手
case BuiltInCategory.OST_RailingHandRail:
//顶部扶栏
case BuiltInCategory.OST_RailingTopRail:
//栏杆扶手
case BuiltInCategory.OST_StairsRailing:
{
categoryName = "栏杆";
if (item.Name.Contains("标识"))
{
categoryName = "管理标识";
}
if (item.Name.Contains("板"))
{
categoryName = "栏板";
}
}
break;
//柱
case BuiltInCategory.OST_Columns:
{
categoryName = "建筑柱";
}
break;
//火警设备
case BuiltInCategory.OST_FireAlarmDevices:
//机械设备
case BuiltInCategory.OST_MechanicalEquipment:
{
if (item.Name.Contains("给水设备"))
{
categoryName = "成套增压给水设备";
break;
}
if (item.Name.Contains("水箱"))
{
categoryName = "成品水箱";
if (item.Name.Contains("消防"))
{
categoryName = "消防水箱";
}
break;
}
if (item.Name.Contains("污水提升"))
{
categoryName = "污水提升设备";
break;
}
if (item.Name.Contains("泵"))
{
if (item.Name.Contains("给水"))
{
categoryName = "给水泵";
break;
}
if (item.Name.Contains("泳池"))
{
categoryName = "泳池水泵";
break;
}
if (item.Name.Contains("浴室"))
{
categoryName = "公共浴室水泵";
break;
}
if (item.Name.Contains("喷泉"))
{
categoryName = "喷泉水泵";
break;
}
if (item.Name.Contains("污水") || item.Name.Contains("排水") || item.Name.Contains("潜水"))
{
categoryName = "污水泵";
break;
}
if (item.Name.Contains("人防"))
{
categoryName = "人防手摇泵";
if (item.Name.Contains("污水"))
{
categoryName = "人防污水泵";
}
break;
}
}
if (item.Name.Contains("风机"))
{
categoryName = "通风机";
break;
}
if (item.Name.Contains("消火栓"))
{
categoryName = "室内消火栓";
break;
}
if (item.Name.Contains("气瓶") || item.Name.Contains("气体"))
{
categoryName = "驱动气体储瓶";
break;
}
}
break;
//常规模型
case BuiltInCategory.OST_GenericModel:
{
if (item.Name.Contains("检查井"))
{
if (item.Name.Contains("污水"))
{
categoryName = "污水检查井";
break;
}
if (item.Name.Contains("废水"))
{
categoryName = "废水检查井";
break;
}
if (item.Name.Contains("雨水"))
{
categoryName = "雨水检查井";
break;
}
if (item.Name.Contains("渗透"))
{
categoryName = "渗透检查井";
if (item.Name.Contains("集水"))
{
categoryName = "集水渗透检查井";
}
break;
}
}
if (item.Name.Contains("给水井"))
{
categoryName = "给水井";
break;
}
if (item.Name.Contains("排水井"))
{
categoryName = "建筑排水井";
break;
}
if (item.Name.Contains("穿越井"))
{
categoryName = "穿越井";
break;
}
if (item.Name.Contains("跌水井"))
{
categoryName = "跌水井";
break;
}
if (item.Name.Contains("电缆井"))
{
categoryName = "室外电缆井";
break;
}
if (item.Name.Contains("人孔"))
{
categoryName = "电力人孔";
if (item.Name.Contains("弱电"))
{
categoryName = "弱电人孔井";
}
break;
}
if (item.Name.Contains("手孔"))
{
categoryName = "电力手孔";
if (item.Name.Contains("弱电"))
{
categoryName = "弱电手孔井";
}
break;
}
if (item.Name.Contains("阀门井"))
{
categoryName = "水阀门井";
if (item.Name.Contains("燃气"))
{
categoryName = "燃气阀门井";
}
break;
}
if (item.Name.Contains("拱"))
{
if (item.Name.Contains("钢"))
{
categoryName = "钢拱";
}
if (item.Name.Contains("混凝土"))
{
categoryName = "混凝土拱";
}
if (item.Name.Contains("木"))
{
categoryName = "木拱";
}
if (item.Name.Contains("砌体"))
{
categoryName = "砌体拱";
}
}
if (item.Name.Contains("混凝土") && item.Name.Contains("薄壳"))
{
categoryName = "混凝土薄壳";
}
else if (item.Name.Contains("钢支撑"))
{
categoryName = "钢支撑";
}
else if (item.Name.Contains("钢屋架"))
{
categoryName = "钢屋架系统构件";
}
else if (item.Name.Contains("雨蓬"))
{
categoryName = "雨篷制品";
}
else if (item.Name.Contains("拉索"))
{
categoryName = "拉索";
}
else if (item.Name.Contains("壳") && item.Name.Contains("钢"))
{
categoryName = "钢网壳";
}
else if (item.Name.Contains("吊杆"))
{
categoryName = "顶棚吊杆";
}
if (item.Name.Contains("水表井"))
{
categoryName = "水表井";
break;
}
if (item.Name.Contains("入渗井"))
{
categoryName = "入渗井";
break;
}
if (item.Name.Contains("消波井"))
{
categoryName = "人防消波井";
break;
}
if (item.Name.Contains("弃流池"))
{
categoryName = "弃流池";
break;
}
if (item.Name.Contains("台阶"))
{
categoryName = "台阶";
break;
}
if (item.Name.Contains("平台"))
{
categoryName = "平台";
break;
}
if (item.Name.Contains("厕位"))
{
categoryName = "厕位";
break;
}
}
break;
//橱柜
case BuiltInCategory.OST_Casework:
//家具
case BuiltInCategory.OST_Furniture:
{
if (item.Name.Contains("卫生间"))
{
categoryName = "卫生间家具";
break;
}
if (item.Name.Contains("床"))
{
categoryName = "床";
break;
}
if (item.Name.Contains("固定式"))
{
categoryName = "固定式轮椅席位";
break;
}
if (item.Name.Contains("可移动"))
{
categoryName = "可移动轮椅席位";
break;
}
if (item.Name.Contains("可移动") && item.Name.Contains("陪护"))
{
categoryName = "可移动陪护席位";
break;
}
if (item.Name.Contains("防撞扶手"))
{
if (item.Name.Contains("双层"))
{
categoryName = "双层防撞扶手";
}
else
{
categoryName = "单层防撞扶手";
}
break;
}
if (item.Name.Contains("抓杆"))
{
if (item.Name.Contains("单层"))
{
categoryName = "单层水平安全抓杆";
}
if (item.Name.Contains("双层"))
{
categoryName = "双层水平安全抓杆";
}
break;
}
}
break;
//结构加强板
case BuiltInCategory.OST_StructuralStiffener:
//楼板边缘
case BuiltInCategory.OST_EdgeSlab:
//楼板
case BuiltInCategory.OST_Floors:
{
categoryName = "混凝土结构楼板";
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土楼板";
}
if (item.Name.Contains("钢"))
{
categoryName = "钢楼承板";
}
if (item.Name.Contains("地面板"))
{
categoryName = "地面板";
}
if (item.Name.Contains("楼层板"))
{
categoryName = "楼层板";
}
if (item.Name.Contains("挑檐"))
{
categoryName = "挑檐板";
if (item.Name.Contains("防火"))
{
categoryName = "防火挑檐";
if (item.Name.Contains("防护"))
{
categoryName = "防火防护挑檐";
}
}
}
}
break;
//支撑
case BuiltInCategory.OST_StairsStringerCarriage:
break;
//平台
case BuiltInCategory.OST_StairsLandings:
{
categoryName = "楼梯平台";
}
break;
//梯段
case BuiltInCategory.OST_StairsRuns:
{
categoryName = "楼梯梯段";
}
break;
//楼梯
case BuiltInCategory.OST_Stairs:
{
categoryName = "混凝土楼梯";
if (item.Name.Contains("预制"))
{
categoryName = "预制楼梯";
}
if (hasWindowDoor)
{
categoryName = "楼梯";
if (item.Name.Contains("伸缩"))
{
categoryName = "伸缩楼梯";
}
}
}
break;
//体量屋顶
case BuiltInCategory.OST_MassRoof:
//屋顶
case BuiltInCategory.OST_Roofs:
//檐沟
case BuiltInCategory.OST_Gutter:
//封檐板
case BuiltInCategory.OST_Fascia:
//屋檐底板
case BuiltInCategory.OST_RoofSoffit:
{
categoryName = "屋面";
if (item.Name.Contains("采光顶"))
{
categoryName = "采光顶";
}
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土屋面板";
}
if (item.Name.Contains("木"))
{
categoryName = "木屋架";
}
if (item.Name.Contains("木基层"))
{
categoryName = "屋面木基层";
}
}
break;
//坡道
case BuiltInCategory.OST_Ramps:
{
if (item.Name.Contains("坡道"))
{
if (item.Name.Contains("无障碍"))
{
categoryName = "无障碍坡道";
}
if (item.Name.Contains("轮椅"))
{
categoryName = "轮椅坡道";
}
if (item.Name.Contains("缘石"))
{
categoryName = "缘石坡道";
}
if (item.Name.Contains("平台"))
{
categoryName = "坡道平台";
}
}
}
break;
//门
case BuiltInCategory.OST_Doors:
{
categoryName = "建筑门";
if (item.Name.Contains("平开"))
{
categoryName = "平开门";
}
if (item.Name.Contains("防火"))
{
if (item.Name.Contains("推拉"))
{
categoryName = "防火推拉门";
}
if (item.Name.Contains("弹簧"))
{
categoryName = "防火弹簧门";
}
if (item.Name.Contains("卷帘"))
{
categoryName = "防火卷帘门";
}
if (item.Name.Contains("滑升"))
{
categoryName = "防火滑升门";
}
if (item.Name.Contains("吊"))
{
categoryName = "防火吊门";
}
}
if (item.Name.Contains("密闭"))
{
categoryName = "密闭门";
if (item.Name.Contains("防护"))
{
categoryName = "防护密闭门";
}
if (item.Name.Contains("防火"))
{
categoryName = "防火密闭门";
if (item.Name.Contains("防护"))
{
categoryName = "防护防火密闭门";
}
}
}
if (item.Name.Contains("门帘"))
{
categoryName = "门帘";
}
}
break;
//体量天窗
case BuiltInCategory.OST_MassSkylights:
//窗
case BuiltInCategory.OST_Windows:
{
categoryName = "建筑窗";
if (item.Name.Contains("防火"))
{
categoryName = "防火平开窗";
if (item.Name.Contains("固定"))
{
categoryName = "防火固定窗";
}
if (item.Name.Contains("推拉"))
{
categoryName = "防火推拉窗";
}
if (item.Name.Contains("立转"))
{
categoryName = "防火立转窗";
}
if (item.Name.Contains("平推"))
{
categoryName = "防火平推窗";
}
if (item.Name.Contains("上悬"))
{
categoryName = "防火上悬窗";
}
if (item.Name.Contains("中悬"))
{
categoryName = "防火中悬窗";
}
if (item.Name.Contains("下悬"))
{
categoryName = "防火下悬窗";
}
if (item.Name.Contains("上下提升"))
{
categoryName = "防火上下提升窗";
}
if (item.Name.Contains("百叶"))
{
categoryName = "防火百叶窗";
}
if (item.Name.Contains("落地"))
{
categoryName = "防火落地窗";
}
}
else if (item.Name.Contains("门帘"))
{
if (item.Name.Contains("防火"))
{
categoryName = "防火门联窗";
}
}
}
break;
//天花板
case BuiltInCategory.OST_Ceilings:
{
categoryName = "吊顶";
}
break;
//幕墙系统
case BuiltInCategory.OST_CurtaSystem:
//幕墙竖梃
case BuiltInCategory.OST_CurtainWallMullions:
{
categoryName = "装饰格栅";
}
break;
//幕墙嵌板
case BuiltInCategory.OST_CurtainWallPanels:
{
categoryName = "幕墙面板";
}
break;
//体量外墙
case BuiltInCategory.OST_MassExteriorWall:
//体量内墙
case BuiltInCategory.OST_MassInteriorWall:
//墙饰条
case BuiltInCategory.OST_Cornices:
//墙
case BuiltInCategory.OST_Walls:
{
if (item is Wall wall)
{
categoryName = "混凝土墙";
//var structural = wall
// .get_Parameter(BuiltInParameter.WALL_STRUCTURAL_SIGNIFICANT)
// .AsInteger();
if (hasWindowDoor)
{
categoryName = "建筑墙";
if (wall.WallType.Function == WallFunction.Exterior &&
wall.StructuralUsage == StructuralWallUsage.NonBearing)
{
categoryName = "建筑外墙";
}
if (item.Name.Contains("隔墙"))
{
categoryName = "隔墙";
}
if (item.Name.Contains("隔板"))
{
categoryName = "隔板";
}
}
if (wall.WallType.Kind == WallKind.Curtain)
{
categoryName = "幕墙";
}
if (item.Name.Contains("砌体"))
{
categoryName = "砌体墙";
}
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土墙板";
}
if (item.Name.Contains("钢"))
{
categoryName = "钢结构剪力墙";
}
if (item.Name.Contains("木"))
{
categoryName = "木构架墙";
}
if (item.Name.Contains("抗爆"))
{
categoryName = "抗爆隔墙";
}
}
if (item is WallType wallType)
{
categoryName = "混凝土墙";
//var structural = wallType
// .get_Parameter(BuiltInParameter.WALL_STRUCTURAL_SIGNIFICANT)
// .AsInteger();
if (hasWindowDoor)
{
categoryName = "建筑墙";
if (wallType.Function == WallFunction.Exterior)
{
categoryName = "建筑外墙";
}
if (item.Name.Contains("隔墙"))
{
categoryName = "隔墙";
}
if (item.Name.Contains("隔板"))
{
categoryName = "隔板";
}
}
if (wallType.Kind == WallKind.Curtain)
{
categoryName = "幕墙";
}
if (item.Name.Contains("砌体"))
{
categoryName = "砌体墙";
}
if (item.Name.Contains("预制"))
{
categoryName = "预制混凝土墙板";
}
if (item.Name.Contains("钢"))
{
categoryName = "钢结构剪力墙";
}
if (item.Name.Contains("木"))
{
categoryName = "木构架墙";
}
if (item.Name.Contains("抗爆"))
{
categoryName = "抗爆隔墙";
}
}
}
break;
default:
break;
}
return categoryName;
}
}
}