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), "不存在该内建类别"); } /// /// 获取轨道交通标识 /// /// /// 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() .Cast() .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; } /// /// 获取建筑标识 /// /// /// /// 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; } } }