You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Autodesk Navisworks如何获取并跳转到最后创建的SavedViewpoint

解决Navisworks跳转至最后创建视点的问题

你当前的GoToLastCreatedViewpoint方法没有正确关联到已保存的视点,直接new空Viewpoint的做法完全无效。以下是正确的实现方式,同时解释为什么你尝试SavedViewpoint类型失败的原因:

核心问题分析

SavedViewpoint是Viewpoint的派生类,你可以直接从保存的视点集合中获取它,无需额外类型转换的困扰。之前的错误在于没有从doc.SavedViewpoints集合中读取已创建的视点,而是创建了一个空的实例。

正确代码实现

internal static void GoToLastCreatedViewpoint()
{
    // 先判断是否存在已保存的视点,避免索引越界
    if (doc.SavedViewpoints.Count == 0)
        return;

    // 获取集合中最后一个保存的视点(AddCopy会将新视点追加到集合末尾)
    SavedViewpoint lastSavedViewpoint = doc.SavedViewpoints[doc.SavedViewpoints.Count - 1];
    
    // 将最后保存的视点设置为当前视点
    doc.CurrentViewpoint.CopyFrom(lastSavedViewpoint);
}

进阶:筛选特定名称的视点

如果你只想跳转至你创建的_View命名的视点,可以添加过滤逻辑:

internal static void GoToLastCreatedViewpoint()
{
    // 筛选所有名为"_View"的保存视点,并取最后一个
    var targetViewpoint = doc.SavedViewpoints
        .OfType<SavedViewpoint>()
        .Where(vp => vp.DisplayName == "_View")
        .LastOrDefault();

    if (targetViewpoint != null)
    {
        doc.CurrentViewpoint.CopyFrom(targetViewpoint);
    }
}

内容的提问来源于stack exchange,提问作者xPRYANIKx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:47:03