GeometryHelper.TeklaConvert 4.0.0

Suggested Alternatives

GeometryHelper.TeklaConvert.2026

Additional Details

new supported tekla structures 2020, 2025 and 2026.

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package GeometryHelper.TeklaConvert --version 4.0.0
                    
NuGet\Install-Package GeometryHelper.TeklaConvert -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GeometryHelper.TeklaConvert" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GeometryHelper.TeklaConvert" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="GeometryHelper.TeklaConvert" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add GeometryHelper.TeklaConvert --version 4.0.0
                    
#r "nuget: GeometryHelper.TeklaConvert, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package GeometryHelper.TeklaConvert@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=GeometryHelper.TeklaConvert&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=GeometryHelper.TeklaConvert&version=4.0.0
                    
Install as a Cake Tool

GeometryHelper.TeklaConvert

NuGet Version License: MIT

Converts geometry between Tekla Structures and GeometryHelper, both ways: points, vectors, line segments, geometric planes, coordinate systems, bounding boxes, transformation matrices, and the faces and loops of a Tekla solid.

Installation

dotnet add package GeometryHelper.TeklaConvert

You must add two Tekla assemblies yourself

This package does not contain Tekla.Structures.dll or Tekla.Structures.Drawing.dll. They are Trimble's to distribute rather than ours, so the package ships only its own code and leaves those two references to you. Until you add them, code that touches this library fails to compile with CS0012: the type is defined in an assembly that is not referenced.

Take them from either source:

From your Tekla Structures installation — the usual choice, because it guarantees you build against the same version you run:

<Reference Include="Tekla.Structures">
  <HintPath>C:\Program Files\Tekla Structures\2026.0\bin\Tekla.Structures.dll</HintPath>
  <Private>False</Private>
</Reference>
<Reference Include="Tekla.Structures.Drawing">
  <HintPath>C:\Program Files\Tekla Structures\2026.0\bin\Tekla.Structures.Drawing.dll</HintPath>
  <Private>False</Private>
</Reference>

Or from Trimble's own packages on nuget.org (published from 2024 onward):

dotnet add package Tekla.Structures
dotnet add package Tekla.Structures.Drawing

Keep Private/Copy Local false. Tekla loads those assemblies from its own installation at run time, and a copy sitting next to your plugin risks loading a build that does not match the running Tekla.

Which Tekla version

The package is built against the 2020 API, so its assembly references carry Tekla.Structures, Version=2020.0.0.0.

  • A console application or any process you own resolves that through a binding redirect, which AutoGenerateBindingRedirects writes for you, so a newer Tekla works without a rebuild.
  • A plugin loaded inside TeklaStructures.exe cannot: you do not own that process's config. Build this project from source against the Tekla version you target.

The API surface it uses — Point, Vector, LineSegment, Matrix, GeometricPlane, CoordinateSystem, AABB, Solid, Face, Loop — is unchanged from 2020 through 2026, so a rebuild against a newer Tekla needs no source changes.

Usage

using GeometryHelper.CommonGeometry;
using GeometryHelper.SolidGeometry.Geometry;
using GeometryHelper.TeklaConvert;
using TSG = Tekla.Structures.Geometry3d;

var tolerance = new Tolerance(1E-2, 1E-4);

// Tekla to GeometryHelper
GeoPoint3 point = new TSG.Point(1000, 2000, 3000).ToGeoPoint3();
GeoLine3 line = segment.ToGeoLine3();

if (teklaSolid.TryToGeoSolid3(out GeoSolid3 body, tolerance))
{
    double volume = body.Volume;
    body.TrySubtract(otherBody, out GeoSolid3 remainder);
}

// GeometryHelper back to Tekla
TSG.Point back = point.ToTeklaPoint();
TSG.Matrix matrix = transform.ToTeklaMatrix();

What is checked rather than trusted

Tekla hands back what its modeller happens to hold; GeometryHelper.SolidGeometry asks for flatness, a closed boundary, and normals that point out of the body. The conversions do that checking, because a body that only looks right measures wrong later and says nothing about why.

  • A coordinate system whose Y axis is not quite square to its X axis is squared up.
  • Each face is turned to agree with the normal Tekla gives it, and the finished body is turned inside out if its signed volume says the whole surface arrived reversed. Without that, volume still measures the same but every containment query answers backwards.
  • A face that cannot be made sense of is skipped rather than thrown on, which leaves the body no longer closed — so ask IsClosed() before trusting a volume.

Tekla models in millimetres with coordinates that can run to hundreds of thousands, and a face of a twelve metre member is rarely flat to the last decimal. The default EqualPlanar is often too tight for that, so pass a Tolerance suited to the model rather than relying on the default.

Licence

MIT. The Tekla Structures assemblies this library compiles against are covered by Trimble's own licence terms, not by this one.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated

Converts geometry between Tekla Structures and GeometryHelper, both ways: points, vectors, line
     segments, geometric planes, coordinate systems, bounding boxes, transformation matrices, and the
     faces and loops of a Tekla solid.

     REQUIRES TWO ASSEMBLIES YOU MUST SUPPLY
     - Tekla.Structures.dll and Tekla.Structures.Drawing.dll are not redistributed here, because they
       are Trimble's to ship rather than ours. Reference them yourself, either from the bin folder of
       your Tekla Structures installation or from Trimble's own Tekla.Structures and
       Tekla.Structures.Drawing packages on nuget.org. Without them the compiler reports CS0012.
     - This package is built against the 2020 API. The types it touches - Point, Vector, LineSegment,
       Matrix, GeometricPlane, CoordinateSystem, AABB, Solid, Face and Loop - are unchanged through
       2026, so a rebuild against a newer Tekla needs no source changes.

     READING A SOLID
     - Faces are turned to agree with the normal Tekla gives them, and the body is turned inside out
       if its signed volume says the whole surface arrived reversed. A coordinate system whose Y axis
       is not quite square to its X axis is squared up rather than trusted.
     - A face that cannot be made sense of is skipped rather than thrown on, which leaves the body no
       longer closed, so ask IsClosed() before trusting a volume.
     - Tekla models in millimetres with coordinates running to hundreds of thousands, where the
       default EqualPlanar is often too tight. Pass a Tolerance suited to the model.