【问题标题】:Revit Get Point(X,Y,Z) from CadRevit 从 Cad 获取点 (X,Y,Z)
【发布时间】:2019-05-26 22:47:37
【问题描述】:

我正在尝试从 Revit 中导入的 CAD 获取一些 (XY) 坐标点和旋转,但它只有在 CAD 文件从未移动/旋转时才能正常工作,这意味着 Revit API 获取内部坐标CAD 与 Revit 中的 CAD 位置无关。

现在,当我尝试相同的练习但使用“Dynamo”时,即使 CAD 被移动/旋转,坐标也是正确的

那么如何做到这一点呢?

        GeometryElement geoElement = cad.get_Geometry(new Options());

        foreach (GeometryObject geoObject in geoElement)
        {
            GeometryInstance instance = geoObject as GeometryInstance;
            if (null != instance)
            {
                foreach (GeometryObject instObj in instance.SymbolGeometry)
                {
                    if (instObj is GeometryInstance) 
                    {
                        GeometryInstance gi_block = instObj as GeometryInstance;
                        Transform transform = gi_block.Transform;

                        XYZ origin =  transform.Origin; // coordinates
                        TaskDialog.Show("xx", origin.ToString());

                        XYZ vectorTran = transform.OfVector(transform.BasisX.Normalize());
                        double rot = transform.BasisX.AngleOnPlaneTo(vectorTran, transform.BasisZ.Normalize()); // angle in radians

                    }
                }
            }
        }

【问题讨论】:

    标签: c# api coordinates cad revit


    【解决方案1】:

    也许 Dynamo 正在自动调整 Revit 项目位置、向北旋转和其他全局坐标转换设置。

    Real-World Concrete Corner Coordinates 的讨论包括对Transforming Revit Model Coordinates to the Real World 的描述,您可能可以申请。

    查看生成的 Structural Concrete Setout Point Add-in,现在在 GitHub 上的 SetoutPoints repository 中还活着。

    【讨论】:

      【解决方案2】:

      您可能首先应该探索与您的导入实例关联的ProjectLocation。您可以使用RevitLookup 来执行此操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 2014-12-02
        • 1970-01-01
        相关资源
        最近更新 更多