Autodesk Navisworks如何获取并跳转到最后创建的SavedViewpoint
你当前的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
相关产品推荐
相关产品推荐

