Tekla Open API

Detailed and full API reference helps you master Tekla Open API

This is the most recent version of Tekla Open API.
For older versions, please visit Tekla Warehouse.

Tekla.Structures.Geometry3d Namespace

[This is preliminary documentation and is subject to change.]

The Tekla.Structures.Geometry3d namespace contains the required basic 3D geometric classes that are used by Tekla Structures. Additionally, some helper functionality to ease the usage of these classes is provided.
Classes
  Class Description
Public classCode example AABB
The AABB class represents an axis-aligned 3d bounding box.
Public class Arc
Represents an arc geometry
Public classCode example CoordinateSystem
The CoordinateSystem class defines a coordinate system in space. The system is defined by an origin, an X-axis and a Y-axis. The Z-axis is the cross product of the X-axis and the Y-axis.
Public class Distance
The Distance class contains methods for calculating the distance between geometric objects.
Public classCode example FacetedBrep
The FacetedBrep class defines a faceted BREP.
Public classCode example FacetedBrepFace
The FacetedBrepFace class defines a face of a faceted BREP. A FacetedBrepFace cannot be instantiated directly. They are managed internally by a FacetedBrep.
Public classCode example FacetedBrepFaceHole
The FacetedBrepFaceHole class defines a hole on a faceted BREP face. A FacetedBrepFaceHole cannot be instantiated directly. They are managed internally by a FacetedBrepFace. You can look also at the code example for the class FacetedBrepFace to see more examples.
Public classCode example FacetedBrepWithNormals
The FacetedBRepWithNormals class defines a faceted BREP that has also vertex normal vectors.
Public class GeometricPlane
The GeometricPlane class represents a 3d geometric plane.
Public class GeometryConstants
The Constants class of Geometry3d holds certain constant values that are used internally by the other geometry classes.
Public classCode example IndirectPolymeshEdge
The IndirectEdge class represents a single global edge in a solid using integer indexes to reference to vertices instead of directly using geometric (coordinate) values.
Public class Intersection
The Intersection class contains methods for calculating intersections between geometric objects.
Public class Line
The Line class represents a single infinite line in 3D space. See LineSegment for the implementation of a segment of a line.
Public class LineSegment
The LineSegment class represents a single finite segment of a line in 3D space. See Line for the implementation of a straight line.
Public class Matrix
The Matrix class represents a 4x3 matrix.
Public classCode example MatrixFactory
The MatrixFactory class provides a convenient way to generate different kinds of transformation matrices.
Public classCode example OBB
The OBB class represents an oriented 3d bounding box.
Public class Parallel
The Parallel class contains methods for testing the parallelism of geometric objects.
Public class Point
The Point class represents a single position in 3D space.
Public class Polycurve
Represents 3D polycurve geometry, which itself is composed of one or more connected curves. The class offers facilities for iteration through the polycurve, and implements the ICurve interface. Once this class is constructed, it represents an immutable polycurve. The curves that can be obtained during iteration are mere copies of the curves in the polycurve, and mutating them won't affect the polycurve. Please use the PolycurveGeometryBuilder class to build and manipulate this objects of this class. Since it implements IEnumerable, the curves can be iterated using foreach loops, and it supports all of the LINQ operations, and it is possible to build arbitrarily complex queries over the curves of this class.
Public class PolycurveGeometryBuilder
The polycurve geometry builder class is in charge of building the geometry list of a polycurve. All the geometries that the builder connects must be connected on the correct end points. The builder has a fluent interface, and can be used as follows:
using Tekla.Structures.Geometry3d;
using Tekla.Structures.Model;

public class Example
{
    static void Main(string[] args)
    {
        var segment = new LineSegment(new Point(0, 0, 0), new Point(1000, 0, 0));
        var arc = new Arc(new Point(1000, 0, 0), new Point(2000, 1000, 0), new Point(1707.1, 292.89, 0));

        var geometryList = new PolycurveGeometrySolver().Append(arc).Append(segment).GetPolycurve();

        var polycurve = new ControlPolycurve();
        polycurve.Geometry = geometryList;
        polycurve.Insert();
    }
}
Public class PolyLine
The PolyLine class represents a line that consists of one or more line segments. To create a polyline, you have to give a list of the points that will form the polyline. The first point in the list will be connected with the second point in the list, the second point in the list will be connected with the third point in the list, etc.
Public class Projection
The Projection class contains methods for calculating the projection of geometric objects on other geometric objects.
Public class Vector
The Vector class defines a direction and magnitude from the current origin.
Interfaces
  Interface Description
Public interface IBoundingVolume
The BoundingVolume interface represents any generic 3D bounding volume.
Public interface ICurve
Interface that represents an abstract curved geometry defined by a set of points. This interface is intended to be the base class of 3D curves.
Enumerations
  Enumeration Description
Public enumeration PolymeshEdgeTypeEnum
The type of the polymesh edge. This should always correspond 1:1 with geometry::IndirectEdge_s::EdgeType_e on the Tekla Structures Core side