    

 ## On this page

  

 

 # Changelog

 Last update: 16.07.2025 

## Version 2025 R2

### Notes

- For this release and all subsequent releases, Assembly versions will correspond to TD versions (25.2.0.0, etc.). We reconsidered the previous decision to decouple the two versioning schemes.
- For this release, there are two versions of OpenTD dll's: one for use with .NET 4.8 and AutoCAD 2024, and one for very limited use with .NET 8 and AutoCAD 2025.
- The .NET 4 versions of the dll's will have assembly version 25.2.4.x and will be installed to the GAC, as usual.
- The .NET 8 versions of the dll's will have assembly version 25.2.8.y and will be installed in the TD installation directory. .NET 8 does not use the GAC.
- At release, for .NET 8 / AutoCAD 2025 only OpenTD add-ins are supported. Client/server OpenTD programs are not supported. We are working to fix this.

### New Features

- Added ability to override TdConnect settings with end-user config file (see TdConnectUserOverrides)
- Added Domains.\*XREF members to find domains from XREF'd dwgs
- added DomainManager.Rename method
- Added RadiationAnalysisGroupManager.PurgeUnused, .Remove, .Merge, and .Copy methods

### Performance Improvements

- CoSolver communication to Sinda now works on machines using number formats other than "en-US"
- Improved error checking in CaseSetManager.Run
- Fixed bug with Orbit.DiffuseSkyIRArray units
- Fixed user preferences bug

## Assembly version 92.0.0.0

### Notes

- For this release and all subsequent releases, OpenTD assemblies will no longer include the version in their filenames. The filenames will not change with each version.
- Assembly versions will no longer correspond to TD versions (24.2.0.0, etc.).
- The first assembly version chosen for this new scheme is 92.0.0.0.

### New features

- `Comparer` now supports different comparison algorithms for different types of data.
- All methods that used to accept Dataset now accept IDataset for greater flexibility.
- `DatasetFactory.Load` can now be used to load sav, CSR, or savx with path, without knowing type of file.
- `MCH_USED` added to `StandardDataSubtypes`.
- Now handles domain names from XREF dwgs.
- Added `TIMEN2` support to logic objects.

### Performance improvements

- `CaptureGraphicsArea` is more reliable.
- Fixed various Orbit parameters to correctly use flux or temperature conversions.
- Fixed rename behavior for all properties, including stacks. Entities that use the property now reflect the rename.
- User preferences now set correctly from OpenTD.
- `CreateHeatLoad` now works with tets.
- Fixed bug where results in UDFA’s associated with fluid objects returned NaN’s.
- Fixed bug where UDFA results were incorrect.
- One-way conductors now show positive heat flow if flow is in the direction of “from” node to “to” node (was reversed).
- Now reading `BotInsulationNodeSubmodelIdOption` correctly for surfaces.

## Version 2024 R2

### New features

- Added `case set group name` parameter to `TDSF_CoSolver` constructors.
- Added `Message` member to `CompareSuite`; just returns `Log` member.
- Twin lump ids are now automatically sequenced if `lump.TwinId == 0`.
- Added auto start of OpenTD servers on `_SAVEAS` for all versions of OpenTD.

## Version 2024 R1

### Note

This was an administrative release. There is only one new feature: added `Comparer.ToString()` method.

## Version 2023 R2

### Major new features

- Added support for controlling item visibility via the `ThermalDesktop.VisibilityManager`.
- Added `ReadMeshDataFile` method to read various mesh data formats into TD.
- Added support for stack aliases.
- Added `DynamicSindaStatus` class for interacting with messages generated by `Dynamic Sinda`.
- Added limited support for new beta `SaveX` file format.

### Other new features

- Added `MeshDisplayer.BaseTrans` property -- now you can move FEM's.
- Added experimental `CaseSetManager.IsCaseRunning()` method for asynchronous cases.
- Added `Contactor.Comment` property.
- Use lightweight SubmodelNameData's to identify submodels for FloCAD objects.
- Added `GetNumberOfDbObjects(...)` method.
- Implemented `ConvertFDtoFE` method.
- `Matrix3d.SetOrigin` now returns the new matrix instead of `void`.
- `Dataset.Factory.Load` method to load `sav`, `savx`, or `CSR`.
- `Comparer` ctor overload to accept `IDatasets` instead of `Datasets`.
- Added `Close` and `ReOpen` methods to `IDataset`.
- Added `CloseDatasets` and `ReOpenDatasets` methods to `Comparer`.
- Added ability to rename and delete aliases.
- Added `CaseSetManagerOptions.ShowTextScreenDuringRun` member.
- Added `Conductor.UseGlobalAccelm` member.
- Added `RcEntityData.GlobalContactArray` member.
- Added `RcSolidElement.AnalysisGroupsVolumetric` member.
- Added `RcFdSolidData.AnalysisGroupsVolumetric` member.
- Added `FkLocator.Anchor` member.
- Added `Pipe.LengthDivisions` and `RadialDivisions` members.
- Added `Tie.LengthDivisions`, `RadialDivisions`, and `UseGlobalAccelm` members.

### Performance improvements

- `CreateCone` returns correct node names.
- `Polygon.Update()` no longer duplicates vertices.
- `CoSolver.Continue()` returns -1 if `SF` disconnected, instead of an exception.
- New `scr` filename and pipe name conventions to avoid Windows Defender mistaking `scr` files for viruses.
- Avoid issues with duplicate handles in Assembly.
- Fix parsing mixed-case subtypes like "DeltaP."
- Fix `GetMeshFD(s)` so it populates returned object(s) correctly.
- `GetPipe` no longer returns pipes with blank signatures.
- Pipe ties now handle domains correctly.
- `CaseSet.Run` and `CaseSetManager.Run` now handle casesets with drive symbols from Excel.

## Version 6.3

### Major New Features

- added Addin capability
- added support for Measures
- added full support for global dwg preferences
- added support for Post Processing Data Mappers
- added support for legacy TD COM interface via ThermalDesktop.SendLegacyComCommand method
- added SF\_Launcher for running text-based input models in SINDA/FLUINT
- added SF\_CoSolver for running and controlling text-based input models in SINDA/FLUINT
- added access to Logging namespace, allowing client programs to use our rich logging features
- added OpenTDMixedInterface.dll, providing access to some OpenTD features via C/C++/Fortran

### Other New Features

- added GetSymbolValue method to return an evaluated symbol value from TD
- added Show/HideModelBrowser methods
- added support for getting and setting the UCS
- added ProgressBar class to control RadCAD progress bar
- added IUserBreak interface to allow end users to cancel an Addin operation
- added several AutoCAD commands for controlling OpenTD servers
- updated all public methods that accept List to accept IEnumerable instead, for LINQ and general flexibility
- updated LogicObjectRoutineTypes values for clarity
- ThermalDesktop.Quit() now defaults to a gentle quit, but can be forced to kill the acad process
- added DomainManager.GetDomain method for getting the entities in any type of domain
- added DataArray constructor that just accepts a list of doubles
- added Enable/Disable Undo methods -- disabling undo can speed up operations
- added overloaded ThermalDesktop.SetView methods, which wrap the Restore\*View methods
- added ThermalDesktop.ClearSelection method
- added ThermalDesktop.GetMainWindow method to get the AutoCAD window to use as the owner of OpenTD dialogs
- added Notes.HasPassword list to identify notes that are password-protected
- added Comparer.SaveExceedancePlots method
- Comparer now works with registers
- added Comparer.CompareJustFinalRecord member
- added Get/SetInstanceData methods to allow storage of general data with a TD instance

### 6.3 New Features Included in 6.2

- added support for 3d polylines
- added ThermalDesktop.Get- and SetNodeCorrespondenceMap methods
- added GetSelection method to prompt the user to select entities manually in TD
- added SetSelection method to highlight objects in the TD graphics window
- added GetEntityTypes method to get entity types from handles
- test applied to objects for consistency before creating or updating heatload
- added GetXREFpathnames method
- added DomainManager.GetAnysetDomain method for getting the entities in an ANYSET domain
- added SS\_CONSTANT\_TEMP\_APPLIED\_NODES as an allowable value for Heater.SSMethod

### 6.3 Performance Improvements Included in 6.2

- sped up most operations by eliminating calls to CheckIfConnected()
- only allow one node in From list in CreateConductor
- use a single instance of CaseSetManager per ThermalDesktop to avoid confusion
- LocalTrans no longer deletes rotation expressions
- GetSubmodels and GetFluidSubmodels now scan database for submodel names before returning
- WeightedAverageDataArray no longer allows negative weights
- Getter speed improved by handling expression units more efficiently

## Version 6.2

### Major New Features

- added FD Solids
- greater support for FEM's
- OpenTDv62.CoSolver to connect SINDA/FLUINT to other analysis codes
- added support for TD Datasets and contour plotting
- added FloCAD Compartments and Acceleration
- added Trackers
- added Pressure loads
- added logic objects: ArrayInterpolation, PID, UDFA
- added AutoCAD arcs, circles, ellipses, splines, helices, and polylines
- added CaseSetManager class to set Case Set Manager options and run in batch mode
- added UserPreferences class for manipulating some global preferences
- added support for reading PCS files to determine model topology from results
- added Results.Dataset.Browser class to determine heat flows between groups of entities
- added support for reading UDFA results
- overhauled OpenTDv62.Results to emphasize groups of data: submodels, domains, arbitrary groups
- OpenTDv62.Results now outputs NaN for missing data, and uses NaN in plots and DerivedDataArrays
- added support for Text Transient files
- added SpreadsheetDataFile method for reading csv or similar files
- added support for custom DataSubtypes (you're not restricted to T, PL, etc. -- can make your own)
- added FormulaDataArray for combining DataArrays with arbitrary formulae
- added WeightedAverageDataArray class
- added MaxDataArray and MinDataArray types (to return loci of extreme values across input arrays)
- added SumDataArray

### Other New Features

- added CompareSuite and CompareAssertion classes, to compare multiple pairs of Datasets
- added Exceedances member, and PlotExceedances and GetExceedancePlots to Comparer
- added EllipticCylinder class (accidentally left out of 6.1)
- added methods to get all rectangles, cones, etc. (all FD Surface types)
- added TdConnectConfig.ShowAcadSplashScreen and .AdditionalAcadCommandline members
- added CreateIn(ThermalDesktop) methods to all entities
- added UpdateIn(ThermalDesktop) methods to all entities
- added Connection.IsEmpty() method
- added AttachedNodeHandles member to all FD surfaces (already included for FD solids and finite elements)
- added DataArrayCollection.Dimension and DataItemCount members
- added ThermalDesktop.GetOpticalPropDBPathname and .GetThermoPropDBPathname methods
- added RadiationAnalysisGroupManager.GetDefault method
- added DataArrayCollection.GetTranspose method
- superceded SubmodelDataArrayCollection and DomainNodeDataArrayCollection with new methods for specifying groups
- added CreatePipe(DbObject centerline) convenience method
- added convenient Write and WriteLine methods to StandardOutput
- updated Contactor/TEC with new features for 6.2
- added ThermalDesktop.GetViewNames method
- now allow CreatePort to create ports with no connections by passing an empty Connection (Handle == "")
- update Plot2d.AddSeries(DataArrayCollection) to allow using first array as x data
- added DataArray copy constructor
- added DataTypeFamilies enum (thermal, fluid, other) and methods to determine from DataTypes or DataSubtypes
- added ThermalDesktop.GetLayerByName method
- added ThermalDesktop.GetCurrentLayer() and .SetCurrentLayer(string name)
- added SaveFile.Close() method and made SaveFile IDisposable
- added CaseSet.ReplaceFilenames method
- added UnitsData constructor that accepts a units expression string
- added read-only members to Node class to help navigate FD/FEM networks (AttachedObjectHandles, etc.)
- added Matrix3d.ToString method
- ExportNodeInfo now defaults to returning a List with the same strings that would otherwise be written to screen or file
- use RcEntityData.AnalysisGroups dictionary to simplify specifying FD Surface radiation analysis groups
- added ThermalDesktop.CreateNode(Point3d origin) method

### Performance Improvements

- speed increase for DataArrayCollection Dataset.GetData(...)
- initialize RadCAD members in constructors to reduce errors with CreateIn methods
- fixed NodeBreakdownData to default to a blank Boundaries list
- fixed bug where Assembly.AxisSize wasn't scaling with WorkingUnits
- make SaveFile's threadsafe