首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从AutoCad访问Autocad元素/获取xyz坐标

如何从AutoCad访问Autocad元素/获取xyz坐标
EN

Stack Overflow用户
提问于 2020-01-29 09:27:41
回答 1查看 688关注 0票数 0

我正在寻找一种使用Revit API访问链接Autocad文件的方法。我已经安装了SnoopDB,这是一个很大的帮助。

我找到了this,这也是前进了一步,但是我不能得到文件的点或线。

我已经探索了一点,发现我能够访问文件名,然后获得cadlink的哈希码,但在那之后,我想知道如何获得内部的goemetry。

任何和所有的帮助都是感激的。

这是我到目前为止所知道的:

代码语言:javascript
复制
 UIApplication uiapp = commandData.Application;
 UIDocument uidoc = uiapp.ActiveUIDocument;
 Application app = uiapp.Application;
 Document doc = uidoc.Document;

Selection sel = uidoc.Selection;

            using (Transaction tx = new Transaction(doc))
            {
                try
                {
                    tx.Start("Tracing Cad");


                    Reference refer = sel.PickObject(ObjectType.Element, "Select a CAD Link");



                    Element elem = doc.GetElement(refer);
                    GeometryElement geoElem = elem.get_Geometry(new Options());

                    Debug.WriteLine("elem.Category.Name: " + elem.Category.Name); // can grab title of CAD


                    foreach (GeometryObject geoObj in geoElem)
                        {
                            GeometryInstance instance = geoObj as GeometryInstance;


                            foreach (GeometryObject instObj in instance.SymbolGeometry)
                            {

                                Debug.WriteLine("geoObj.GraphicsStyleId: " + geoObj.GraphicsStyleId);
                                Debug.WriteLine("geoObj.GetHashCode(): " + geoObj.GetHashCode()); // gets hashcode of selected cad link

                                if (instObj.GetType().Name == "PolyLine")
                                // if (instObj.GetType().Name == "GeometryInstance")
                                {


                                }
                                else
                                {
                                    Debug.WriteLine("there are no blocks found in this CAD File");
                                }
                            }
                        }

                    tx.Commit();
                } catch (Exception e )
                {

                    Debug.WriteLine(e.StackTrace);
                }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-29 14:29:39

Revit API不提供对链接CAD文件内部结构的任何访问。

如果您有访问DWG的权限并且安装了AutoCAD,那么您所能做的就是实现一些AutoCAD.NET代码来读取DWG文件本身。

Building Coder分享了一些示例,展示了如何使用launch AutoCAD within a Revit add-in

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

https://stackoverflow.com/questions/59959399

复制
相关文章

相似问题

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