首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Revit从Cad获取点(X,Y,Z)

Revit从Cad获取点(X,Y,Z)
EN

Stack Overflow用户
提问于 2018-12-29 21:14:36
回答 2查看 504关注 0票数 0

我正在尝试从Revit中导入的CAD获取一些(XY)坐标点和旋转,但只有在CAD文件从未移动/旋转过的情况下才能正常工作,这意味着无论CAD在Revit中的位置如何,Revit API都会获取CAD的内部坐标。

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

那么怎么做才是正确的呢?

代码语言:javascript
复制
        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

                    }
                }
            }
        }
EN

回答 2

Stack Overflow用户

发布于 2018-12-30 16:48:59

可能Dynamo会自动调整Revit项目的位置、向北旋转和其他全局坐标变换设置。

在对Real-World Concrete Corner Coordinates的讨论中,包含了对Transforming Revit Model Coordinates to the Real World的描述,您或许可以应用它。

查看生成的Structural Concrete Setout Point Add-in,它现在在SetoutPoints repository中的GitHub上处于活动状态。

票数 0
EN

Stack Overflow用户

发布于 2019-01-07 17:16:05

您可能应该首先浏览与导入实例相关联的ProjectLocation。您可以使用RevitLookup来完成此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53969892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档