为了升级到当前版本的Revit,我们必须将文件从BIM360团队迁移到BIM360文档。由于我们有数百个文档,所以我希望尽可能地自动化这个过程。
download允许我从BIM360团队下载所有Revit文件。我还可以使用Revit或第三方应用程序(如此大容量文件升级器)将它们升级到Revit2019。
使用Forge BIM360 API,我能够以编程方式创建新项目,并从Team上传文件和文件夹。我很难以自动化的方式完成的步骤是启动升级的Revit2019文件的协作。是否有一种方法可以用Revit或Forge来实现?或者有另外一种方法可以让我自动完成这两个Autodesk云协作解决方案之间的迁移?
我遇到了本教程介绍发布模型,这意味着需要通过Revit为每个Revit文件手动启动协作。我希望能为这项建议找到另一种解决办法。
谢谢!
发布于 2019-11-01 14:40:20
我的同事Eason康益昇证实,您可以使用我上一个答复中提供的步骤来实现以下目标:
Revit 2019.2和未来的版本包括对“单用户工作流”(非工作共享云模型)的支持。同时,它们公开API以启动非工作共享云模型,并将非工作共享云模型转换为工作共享云模型(C4R)。
您可以使用单个用户API来解决您提到的情况,如下所示:
Document.SaveAsCloudModel的API调用,启动非工作共享云模型。Document.EnableCloudWorksharing将其转换为Document.EnableCloudWorksharing模型。这是他的报告,包括正在处理的全权证书问题的解决办法:
问题:我希望使用Revit2020 API将本地RVT保存到我的BIM360帐户中--使用的是设计协作服务,但是总是抛出一个异常,说明我没有访问权限。我有一个有效的C4R许可证,并且能够使用C4R UI从传递给API的文件夹id中打开C4R模型。少了什么?
代码:
doc.SaveAsCloudModel(
"urn:adsk.wipprod:fs.folder:co.8rtX03jDQXKnssA1FfrEXw",
doc.Title);例外:
答:您需要在manage.autodesk.com中设置“云模型for Revit”的权限。
答复:谢谢你的澄清。我把‘云模型的版本’和C4R混淆了,而且在我的manage.autodesk.com中没有设置‘云模型的版本’权限。
回答: 'Cloud‘是自2019.2版本以来提供的一项新服务。它是Revit和Revit订阅的一部分。
顺便说一句,C4R模型的主要区别是thaT一次只有一个用户可以处理该方法创建的模型。
回复:很棒!
我按要求设置了Revit订阅,遵循杰里米在上面共享的步骤,并确认它有效!
您可以使用以下步骤通过Revit实现该目标:
Document.SaveAsCloudModel的API调用,启动一个非工作共享云模型。Document.EnableCloudWorksharing将其转换为Document.EnableCloudWorksharing模型。下面是实现以下功能的测试代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
namespace adsk.c4r
{
[Transaction(TransactionMode.Manual)]
public class Command : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
string template = app.DefaultProjectTemplate;
string filename = @"D:\DevZone\ADN\t5021\revit_api_c4r_test_6.rvt";
string name = System.IO.Path.GetFileName(filename);
Document doc = app.NewProjectDocument(template);
doc.SaveAs(filename);
try
{
doc.SaveAsCloudModel(
"urn:adsk.wipprod:fs.folder:co.aCd1tMmrTxucmJcmtYTLBQ",
name);
var cloudPath = doc.GetCloudModelPath();
if(doc.CanEnableCloudWorksharing())
{
doc.EnableCloudWorksharing();
}
TaskDialog.Show("Revit",
string.Format("{0} is a C4R model now", name));
doc.Close();
uiapp.OpenAndActivateDocument(cloudPath, new OpenOptions(), false);
}
catch(Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
return Result.Cancelled;
}
return Result.Succeeded;
}
}
}发布于 2019-01-07 06:53:54
很抱歉没有及时回复。
此问题听起来类似于Revit讨论论坛中提出的问题,并升级到14906646 旧话题将改变链接路径带回到云路径的ADN。
我们已经向Revit、C4R、Forge和Desktop连接器开发团队提出了这个问题,引起了热烈的讨论,目前还没有明确的答案。
我们正在尽可能努力和快速地进行研究,并将尽快提供一个更确切的答案。
发布于 2019-01-14 06:25:40
开发团队仍在讨论这个问题。同时,他们还说:
这一要求记录在发展问题-修订-140793中。
也许有一个解决办法来达到你所需要的。
Revit 2019.2和未来的版本包括对“单用户工作流”的支持--即非工作共享云模型。同时,它们公开API以启动非工作共享云模型,并将非工作共享云模型转换为工作共享云模型(C4R)。
因此,我认为您可以使用单个用户API来解决您提到的以下情况:
Document.SaveAsCloudModel的API调用,启动非工作共享云模型。Document.EnableCloudWorksharing将其转换为Document.EnableCloudWorksharing模型。https://stackoverflow.com/questions/53892870
复制相似问题