在活动文档中获取协调模型文件名和路径

问题描述 投票:0回答:1

大家好,机器人们

我正在尝试获取(但失败了)我的活动文档中的协调模型文件名和路径。

我尝试使用 RevitLinkInstances,但它不是 Revit 链接,因此返回空列表。 我尝试使用 ofCategory(OST_Coordination_Model),但它仍然给我零个元素

我使用collector.OfClass(typeof(DirectShapeType)).ToElements()找到了它。

FilteredElementCollector collectorTwo = new FilteredElementCollector(doc);

ICollection<Element> revitLinksShape = collectorTwo.OfClass(typeof(DirectShapeType)).ToElements();

foreach(var element in revitLinksShape)
{
     DirectShape directShape = fileRef as DirectShape;

     if(directShape != null)
     {
        // why does it become null???
     }
     else
     {
         var directShapeType = fileRef as DirectShapeType;
         if(directShapeType != null)
         {
             DirectShapeTypeOptions directTypeOptions = 
                             directShapeType.GetOptions();

         }
     }
 }

我能够检索到它的名字。但我正在尝试获取文件位置!缺少什么?

我需要制作一些绝地的东西才能使其成为其他文档或文件吗? 我尝试将它转换为 DirectShape,但它变成了 null(我什至不确定它会帮助我找到它的文件路径)

在简历中,我想要活动文档协调模型的名称和路径。

c# autodesk revit-api
1个回答
0
投票

好的,我已经找到方法了。

我可以使用 .get_Parameter(BuiltInParameter.DIRECTCONTEXT3D_SOURCE_ID) 找到它的路径

这就是我最终获得协调模型文件名和位置的方式

        FilteredElementCollector collectorTwo = new FilteredElementCollector(doc);
        ICollection<Element> revitLinksShape = collectorTwo.OfClass(typeof(DirectShapeType)).ToElements();

        // Itera por todas as referências externas para buscar modelos de coordenação
        foreach (var fileRef in revitLinksShape)
        {
                var directShapeType = fileRef as DirectShapeType;

                if(directShapeType != null)
                {
                    Parameter coordModelPathParam = directShapeType.get_Parameter(BuiltInParameter.DIRECTCONTEXT3D_SOURCE_ID);
                    if (coordModelPathParam != null)
                    {
                        // Get the file path from the parameter
                        string filePath = coordModelPathParam.AsString();

                        // Display the file path
                        TaskDialog.Show("Coordination Model Path", $"File 
                                                 Path: {filePath}");
                    }
                }
         }

答案就在那里...我只需要冷静下来分析一下元素即可。

© www.soinside.com 2019 - 2024. All rights reserved.