/// <summary> /// /// </summary> /// <param name="zone"></param> public ZoneConnections(Zone zone) { ZoneName = zone.Name; EquipmentList = zone.Name + " Equipment"; InletNode = zone.Name + " Supply Inlet"; AirExhaustNode = ""; AirNodeName = zone.Name + " Air Node"; ReturnAirNodeName = zone.Name + " Return Outlet"; }
/// <summary> /// /// </summary> /// <param name="zone"></param> public EquipmentList(Zone zone) { Name = zone.Name + " Equipment"; EquipmentObject = "ZoneHVAC:IdealLoadsAirSystem"; EquipmentName = zone.Name + " Purchased Air"; }
/// <summary> /// /// </summary> /// <param name="zone"></param> public IdealLoadsAirSystem(Zone zone) { Name = zone.Name + " Purchased Air"; InletNode = zone.Name + " Supply Inlet"; }
public static Zone ByNameOriginAndOrientation(string name, Point origin, double orientation) { var zone = new Zone(name, orientation, origin); return zone; }
public Surface(List<Point> points, Zone zone, string constructionName = "default", string usingType = "external", bool reverseDirection = false) { Name = zone.Name + " - Surface " + zone.SurfaceNumber; ZoneName = zone.Name; ReverseDirection = reverseDirection; FenestrationSurfacesNumber = 1; Points = points; ConstructionName = constructionName; zone.Surfaces.Add(this); zone.SurfaceNumber++; //Defines the properties related to the type of the surface. Perhaps a possibility to change the propertiers should be implemented switch (usingType) { case "inner": Type = "Wall"; if (ConstructionName == "default") { ConstructionName = "000 Interior Wall"; } BoundaryCondition = "Adiabatic"; SunExposed = false; WindExposed = false; break; case "external": Type = "Wall"; if (ConstructionName == "default") { ConstructionName = "001 Exterior Wall"; } BoundaryCondition = "Outdoors"; SunExposed = true; WindExposed = true; break; case "floor": Type = "Floor"; if (ConstructionName == "default") { ConstructionName = "002 Floor"; } BoundaryCondition = "Ground"; SunExposed = false; WindExposed = false; break; case "ceiling": Type = "Ceiling"; if (ConstructionName == "default") { ConstructionName = "002 Floor"; } BoundaryCondition = "Adiabatic"; SunExposed = false; WindExposed = false; break; case "roof": Type = "Roof"; if (ConstructionName == "default") { ConstructionName = "003 Roof"; } BoundaryCondition = "Outdoors"; SunExposed = true; WindExposed = true; break; default: Type = "Wall"; if (ConstructionName == "default") { ConstructionName = "000 Exterior Wall"; } BoundaryCondition = "Outdoors"; SunExposed = true; WindExposed = true; break; } }
/// <summary> /// Adds Surfaces by a list of Revit Surfaces /// </summary> /// <param name="facelist"></param> /// <param name="zone"></param> /// <param name="constructionName"></param> /// <param name="boundaryCondition"></param> /// <returns></returns> public static List<Surface> SurfaceBySurfaceList(List<Face> facelist, Zone zone, string constructionName = "default", string boundaryCondition="identical") { var surfaceList = new List<Surface>(); //ConstructionName = "default"; foreach (Face face in facelist) { var points = new List<Point>(); foreach (var revitVertex in face.Vertices) { //Translate Vertex to Point. Can't find a way to avoid this. Deviding through 1000 because of differents units(Revit->EPlus) //Don't know if this is right var point = Point.ByCoordinates(revitVertex.PointGeometry.X/1000, revitVertex.PointGeometry.Y/1000, revitVertex.PointGeometry.Z/1000); points.Add(point); } surfaceList.Add(new Surface(points, zone, constructionName, boundaryCondition)); } return surfaceList; }