Transform Class


A transformation of the affine 3-space.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 24.0.0.0 (24.0.0.0)

Syntax

C#
public class Transform : APIObject
Visual Basic
Public Class Transform _
	Inherits APIObject
Visual C++
public ref class Transform : public APIObject

Examples

CopyC#
public static XYZ TransformPoint(XYZ point, Transform transform)
{
    double x = point.X;
    double y = point.Y;
    double z = point.Z;

    //transform basis of the old coordinate system in the new coordinate // system
    XYZ b0 = transform.get_Basis(0);
    XYZ b1 = transform.get_Basis(1);
    XYZ b2 = transform.get_Basis(2);
    XYZ origin = transform.Origin;

    //transform the origin of the old coordinate system in the new 
    //coordinate system
    double xTemp = x * b0.X + y * b1.X + z * b2.X + origin.X;
    double yTemp = x * b0.Y + y * b1.Y + z * b2.Y + origin.Y;
    double zTemp = x * b0.Z + y * b1.Z + z * b2.Z + origin.Z;

    return new XYZ(xTemp, yTemp, zTemp);
}
CopyVB.NET
Public Shared Function TransformPoint(point As XYZ, transform As Transform) As XYZ
    Dim x As Double = point.X
    Dim y As Double = point.Y
    Dim z As Double = point.Z

    'transform basis of the old coordinate system in the new coordinate // system
    Dim b0 As XYZ = transform.Basis(0)
    Dim b1 As XYZ = transform.Basis(1)
    Dim b2 As XYZ = transform.Basis(2)
    Dim origin As XYZ = transform.Origin

    'transform the origin of the old coordinate system in the new 
    'coordinate system
    Dim xTemp As Double = x * b0.X + y * b1.X + z * b2.X + origin.X
    Dim yTemp As Double = x * b0.Y + y * b1.Y + z * b2.Y + origin.Y
    Dim zTemp As Double = x * b0.Z + y * b1.Z + z * b2.Z + origin.Z

    Return New XYZ(xTemp, yTemp, zTemp)
End Function

Inheritance Hierarchy

SystemObject
  Autodesk.Revit.DBAPIObject
    Autodesk.Revit.DBTransform

See Also

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →