public static bool TogbXML(this TAS3D.T3DDocument t3DDocument, string path, bool @override, bool fixNormals, bool zonesFromSpaces) { if (t3DDocument == null || string.IsNullOrWhiteSpace(path)) { return(false); } int overrideInt = 0; if (@override) { overrideInt = 1; } int fixNormalsInt = 0; if (fixNormals) { fixNormalsInt = 1; } int zonesFromSpacesInt = 0; if (zonesFromSpaces) { zonesFromSpacesInt = 1; } return(t3DDocument.ImportGBXML(path, overrideInt, fixNormalsInt, zonesFromSpacesInt)); }
/// <summary> /// Closes TAS T3D Document. READ ME ============== /// Option 1 = File will be close when Dynamo is restarted /// if you use Dynamo with Revit you need to restart both /// Option 2 = when script is done and you confirmed it was saved just /// go to TaskManager and End Process for TAS3D.exe /// </summary> /// <param name="T3DDocument">T3D Document</param> /// <returns name="Boolean">Boolean</returns> /// <search> /// TAS, T3DDocument, tas, T3Ddocument, close t3ddocument, closet3ddocument /// </search> public static bool Close(T3DDocument T3DDocument) { T3DDocument.pT3DDocument.Close(); T3DDocument.pT3DDocument = null; T3DDocument = null; return(true); }
private static TAS3D.T3DDocument GetT3DDocument(bool Save) { TAS3D.T3DDocument aT3DDocument = null; try { object aObject = System.Runtime.InteropServices.Marshal.GetActiveObject("TAS3D.T3DDocument"); if (aObject != null && aObject is TAS3D.T3DDocument) { aT3DDocument = aObject as TAS3D.T3DDocument; if (Save && !string.IsNullOrEmpty(aT3DDocument.filePath)) { aT3DDocument.Save(aT3DDocument.filePath); } aT3DDocument.Close(); } } catch { } if (aT3DDocument == null) { aT3DDocument = new TAS3D.T3DDocument(); } return(aT3DDocument); }
/// <summary> /// Opens TAS T3D Document /// </summary> /// <param name="Name">Building Name</param> /// <param name="Description">Building Description</param> /// <returns name="T3DDocument">T3D Document</returns> /// <search> /// TAS, TBDDocument, tas, t3ddocument, new t3ddocument, newt3ddocument /// </search> public static T3DDocument New(string Name, string Description) { TAS3D.T3DDocument aT3DDocument = GetT3DDocument(false); aT3DDocument.Building.name = Name; aT3DDocument.Building.description = Description; return(new T3DDocument(aT3DDocument, false)); }
/// <summary> /// Opens TAS T3D Document /// </summary> /// <param name="Name">Building Name</param> /// <param name="Description">Building Description</param> /// <param name="FilePath">File Path</param> /// <returns name="T3DDocument">T3D Document</returns> /// <search> /// TAS, TBDDocument, tas, tbddocument, new tbddocument, newtbddocument /// </search> public static T3DDocument New(string FilePath, string Name, string Description) { TAS3D.T3DDocument aT3DDocument = GetT3DDocument(true); aT3DDocument.Building.name = Name; aT3DDocument.Building.description = Description; aT3DDocument.filePath = FilePath; return(new T3DDocument(aT3DDocument, true)); }
void IDisposable.Dispose() { if (pT3DDocument != null) { if (pSave && pT3DDocument.filePath != null) { pT3DDocument.Save(pT3DDocument.filePath); } pT3DDocument.Close(); pT3DDocument = null; } }
protected virtual void Dispose(bool disposing) { if (!disposed) { if (disposing) { // TODO: dispose managed state (managed objects). if (t3DDocument != null) { t3DDocument.Close(); Core.Modify.ReleaseCOMObject(t3DDocument); t3DDocument = null; } } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. disposed = true; } }
public static TAS3D.T3DDocument T3DDocument() { TAS3D.T3DDocument t3DDocument = null; try { object @object = Marshal.GetActiveObject("T3D.Document"); if (@object != null) { t3DDocument = @object as TAS3D.T3DDocument; Core.Modify.ReleaseCOMObject(@object); t3DDocument = null; } } catch { } t3DDocument = new TAS3D.T3DDocument(); return(t3DDocument); }
private T3DDocument(TAS3D.T3DDocument T3DDocument, bool Save) { pSave = Save; pT3DDocument = T3DDocument; }
internal T3DDocument(string FilePath, bool Save) { pSave = Save; pT3DDocument = GetT3DDocument(pSave); pT3DDocument.Open(FilePath); }
public static List <Guid> RemoveUnsusedZones(this TAS3D.T3DDocument t3DDocument) { return(RemoveUnsusedZones(t3DDocument?.Building)); }
public static AnalyticalModel RunWorkflow(this AnalyticalModel analyticalModel, string path_TBD, string path_gbXML = null, Weather.WeatherData weatherData = null, List <DesignDay> heatingDesignDays = null, List <DesignDay> coolingDesignDays = null, List <SurfaceOutputSpec> surfaceOutputSpecs = null, bool unmetHours = true) { if (analyticalModel == null || string.IsNullOrWhiteSpace(path_TBD)) { return(null); } string directory = System.IO.Path.GetDirectoryName(path_TBD); string fileName = System.IO.Path.GetFileNameWithoutExtension(path_TBD); string path_TSD = System.IO.Path.Combine(directory, string.Format("{0}.{1}", fileName, "tsd")); if (!string.IsNullOrWhiteSpace(path_gbXML)) { string path_T3D = System.IO.Path.Combine(directory, string.Format("{0}.{1}", fileName, "t3d")); string guid = null; using (SAMT3DDocument sAMT3DDocument = new SAMT3DDocument(path_T3D)) { TAS3D.T3DDocument t3DDocument = sAMT3DDocument.T3DDocument; guid = t3DDocument.Building.GUID; sAMT3DDocument.Save(); } float latitude = float.NaN; float longitude = float.NaN; float timeZone = float.NaN; using (SAMTBDDocument sAMTBDDocument = new SAMTBDDocument(path_TBD)) { TBD.TBDDocument tBDDocument = sAMTBDDocument.TBDDocument; if (weatherData != null) { Weather.Tas.Modify.UpdateWeatherData(tBDDocument, weatherData); } if (!string.IsNullOrWhiteSpace(guid)) { tBDDocument.Building.GUID = guid; } TBD.Calendar calendar = tBDDocument.Building.GetCalendar(); List <TBD.dayType> dayTypes = Query.DayTypes(calendar); if (dayTypes.Find(x => x.name == "HDD") == null) { TBD.dayType dayType = calendar.AddDayType(); dayType.name = "HDD"; } if (dayTypes.Find(x => x.name == "CDD") == null) { TBD.dayType dayType = calendar.AddDayType(); dayType.name = "CDD"; } latitude = tBDDocument.Building.latitude; longitude = tBDDocument.Building.longitude; timeZone = tBDDocument.Building.timeZone; sAMTBDDocument.Save(); } using (SAMT3DDocument sAMT3DDocument = new SAMT3DDocument(path_T3D)) { TAS3D.T3DDocument t3DDocument = sAMT3DDocument.T3DDocument; t3DDocument.TogbXML(path_gbXML, true, true, true); t3DDocument.SetUseBEWidths(false); analyticalModel = Query.UpdateT3D(analyticalModel, t3DDocument); t3DDocument.Building.latitude = float.IsNaN(latitude) ? t3DDocument.Building.latitude : latitude; t3DDocument.Building.longitude = float.IsNaN(longitude) ? t3DDocument.Building.longitude : longitude; t3DDocument.Building.timeZone = float.IsNaN(timeZone) ? t3DDocument.Building.timeZone : timeZone; sAMT3DDocument.Save(); Convert.ToTBD(t3DDocument, path_TBD, 1, 365, 15, true); } } AdjacencyCluster adjacencyCluster = null; bool hasWeatherData = false; using (SAMTBDDocument sAMTBDDocument = new SAMTBDDocument(path_TBD)) { TBD.TBDDocument tBDDocument = sAMTBDDocument.TBDDocument; hasWeatherData = tBDDocument?.Building.GetWeatherYear() != null; analyticalModel = Query.UpdateFacingExternal(analyticalModel, tBDDocument); AssignAdiabaticConstruction(tBDDocument, "Adiabatic", new string[] { "-unzoned", "-internal", "-exposed" }, false, true); UpdateBuildingElements(tBDDocument, analyticalModel); adjacencyCluster = analyticalModel.AdjacencyCluster; UpdateThermalParameters(adjacencyCluster, tBDDocument.Building); analyticalModel = new AnalyticalModel(analyticalModel, adjacencyCluster); UpdateZones(tBDDocument.Building, analyticalModel, true); if (coolingDesignDays != null || heatingDesignDays != null) { AddDesignDays(tBDDocument, coolingDesignDays, heatingDesignDays, 30); } sAMTBDDocument.Save(); } if (!hasWeatherData) { return(new AnalyticalModel(analyticalModel, adjacencyCluster)); } Query.Sizing(path_TBD, analyticalModel, false, true); using (SAMTBDDocument sAMTBDDocument = new SAMTBDDocument(path_TBD)) { TBD.TBDDocument tBDDocument = sAMTBDDocument.TBDDocument; if (surfaceOutputSpecs != null && surfaceOutputSpecs.Count > 0) { Core.Tas.Modify.UpdateSurfaceOutputSpecs(tBDDocument, surfaceOutputSpecs); Core.Tas.Modify.AssignSurfaceOutputSpecs(tBDDocument, surfaceOutputSpecs[0].Name); sAMTBDDocument.Save(); } Simulate(tBDDocument, path_TSD, 1, 1); } adjacencyCluster = analyticalModel.AdjacencyCluster; List <Core.Result> results = AddResults(path_TSD, adjacencyCluster); if (unmetHours) { List <Core.Result> results_UnmetHours = Query.UnmetHours(path_TSD, path_TBD, 0.5); if (results_UnmetHours != null && results_UnmetHours.Count > 0) { foreach (Core.Result result in results_UnmetHours) { if (result is AdjacencyClusterSimulationResult) { adjacencyCluster.AddObject(result); } else if (result is SpaceSimulationResult) { SpaceSimulationResult spaceSimulationResult = (SpaceSimulationResult)result; List <SpaceSimulationResult> spaceSimulationResults = Query.Results(results, spaceSimulationResult); if (spaceSimulationResults == null) { results.Add(spaceSimulationResult); } else { spaceSimulationResults.ForEach(x => Core.Modify.Copy(spaceSimulationResult, x, Analytical.SpaceSimulationResultParameter.UnmetHourFirstIndex, Analytical.SpaceSimulationResultParameter.UnmetHours, Analytical.SpaceSimulationResultParameter.OccupiedUnmetHours)); } } } } } AnalyticalModel analyticalModel_Temp = new AnalyticalModel(analyticalModel, adjacencyCluster); //if (System.IO.File.Exists(path_TSD)) //{ // string path_TPD = System.IO.Path.Combine(directory, string.Format("{0}.{1}", fileName, "tpd")); // CreateTPD(path_TPD, path_TSD, analyticalModel_Temp); //} adjacencyCluster = UpdateDesignLoads(path_TBD, analyticalModel_Temp.AdjacencyCluster); return(new AnalyticalModel(analyticalModel, adjacencyCluster)); }
protected override void Create() { Document = new TAS3D.T3DDocument(); }