使用 Revit api 获取链接的 Revit 文档中的选定元素

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

我试图从链接文档中进行选择,但没有结果:

Document linkedDoc = testLinkedElement.GetLinkDocument();
UIDocument linkedUIDoc = new UIDocument(linkedDoc);
// Get the selection object from the UIDocument
Selection selection = linkedUIDoc.Selection;

// Get the selected elements
ICollection<ElementId> selectedElementIds = selection.GetElementIds();

当我尝试从链接的文档对象实例化 UIDocument 时收到错误 如果我使用活动 UIDocument,我将无法访问链接文档中的元素。

有什么建议吗?

我正在尝试从链接文档中进行选择,但没有结果 我假设 selectedElementIds 将填充选定的元素

c# revit-api
2个回答
0
投票

这里是从链接元素获取元素id的示例,您可以尝试根据您的需要修改它并从元素中获取您想要的数据。

public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
 {
     try
     {
         Reference selectedObj;
         UIDocument uidoc = commandData.Application.ActiveUIDocument;
         Document doc = uidoc.Document;
         Selection sel = uidoc.Selection;
         selectedObj = sel.PickObject(ObjectType.LinkedElement, "Select Linked Element");
         RevitLinkInstance linkInstance = doc.GetElement(selectedObj) as RevitLinkInstance;
         Document linkedDoc = linkInstance.GetLinkDocument();
         ElementId xx = linkedDoc.GetElement(selectedObj.LinkedElementId).Id;
     }
     catch (Exception)
     {
        return Result.Failed;
     }
     return Result.Succeeded;
 }

0
投票

如果我希望用户在运行命令之前进行选择怎么办?仅使用选择而不是拾取对象

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