在Revit API中转换坐标 [内部、项目、测量]

作者:API传播员 · 2025-12-31 · 阅读时间:3分钟

了解如何在 Revit API 中进行坐标转换,包括内部、项目和测量坐标系的转换方法及其应用。


Revit 中的坐标系

在 Revit 中,坐标系的概念相对复杂,尤其是在使用 Revit API 时。不过,我们可以通过简化的方式来理解这些概念,从而避免在试错中浪费过多时间。以下是 Revit 中的三种主要坐标系:

  • 内部坐标系:Revit 的内部系统,API 默认使用的坐标系。
  • 项目坐标系:基于项目基点的坐标系。
  • 测量坐标系:基于测量点的坐标系。

需要注意的是,在 Revit 中可以设置正北旋转,这会对坐标系的表现产生一定影响:

  • 内部坐标系:不受正北旋转的影响。
  • 项目坐标系:不受正北旋转的影响。
  • 测量坐标系:所有坐标都会受到正北旋转的影响。


创建坐标标签

为了更好地理解坐标的变化,建议为内部、项目和测量坐标创建适当的标签。通过这些标签,您可以随时查看正确的坐标值,并快速将其与代码中的结果进行比较。

💡 提示:Revit 中的坐标显示格式为 北/东/标高,而非传统的 XYZ 格式。


Revit API 中的坐标

在使用 Revit API 时,需要特别注意以下几点:

  • Revit API 使用的是 以英尺为单位的内部坐标系
  • 当获取坐标或在项目中放置元素时,API 使用的是 XYZ 类的内部坐标,单位为英尺。

因此,如果您需要基于项目或测量点的坐标来放置图元,必须先将这些坐标转换为内部坐标系,以确保放置的准确性。


坐标转换器类

为了简化坐标转换过程,以下是一个 PointConverter 类的示例代码。该类可以在不同单位之间进行转换,非常实用:

💡 注意XYZ 的输入值以米为单位,代码会在内部将其转换为英尺。如果需要,可以根据需求对代码进行调整。

示例代码

以下是如何使用 PointConverter 类的代码示例:

class PointConverter:
    def __init__(self):

# 初始化代码
        pass    def convert_to_internal(self, x, y, z):# 转换为内部坐标的逻辑
        pass    def print_coord_in_m(self, x, y, z):# 打印坐标的辅助函数
        pass

💡 提示:在处理 Revit 项目和代码时,请始终注意使用的单位。Revit API 始终以英尺为单位表示所有坐标,因此在导入或导出度量数据时需要特别小心。


结语

通过本文,您可以更好地理解 Revit 中的坐标系及其在 API 中的应用。无论是内部、项目还是测量坐标系,掌握其转换方法将帮助您更高效地完成项目开发。希望本文提供的 PointConverter 类和相关提示能为您的工作带来帮助!

原文链接: https://learnrevitapi.com/blog/convert-coordinate-systems-in-revit-api-draft