Autodesk forge 在Forge API中将Revit图元数据作为JSON返回
在使用Forge API的web客户端中,我希望在模型中获得Revit元素的JSON数组。使用Design Automation API,我创建了一个使用Autodesk forge 在Forge API中将Revit图元数据作为JSON返回,autodesk-forge,autodesk-designautomation,Autodesk Forge,Autodesk Designautomation,在使用Forge API的web客户端中,我希望在模型中获得Revit元素的JSON数组。使用Design Automation API,我创建了一个使用FilterDeleteCollector检索元素的活动,但是一旦我拥有了元素,我就不确定在我的web服务中检索这些结果的最佳方法。此活动不需要写回.rvt文件 CountItApp教程将在云存储中创建一个results.txt文件,然后web应用程序将创建该results.txt文件并解析结果。在我的web客户机上,我希望显示这些结果,但文件
FilterDeleteCollector
检索元素的活动,但是一旦我拥有了元素,我就不确定在我的web服务中检索这些结果的最佳方法。此活动不需要写回.rvt文件
CountItApp教程将在云存储中创建一个results.txt文件,然后web应用程序将创建该results.txt文件并解析结果。在我的web客户机上,我希望显示这些结果,但文件I/O似乎不是JSON数据的很好解决方案。我考虑过几个备选方案:
onComplete
回调传递结果。我不知道这是否可能设计自动化允许您使用
post
回调发布带有输出参数的工作项。如果活动生成的输出文件是json文件,则这允许您以application/json
的形式接收输出数据
设计自动化还允许您在输出url中指定变量workitem.id
。当您的工作项完成时,我们将使用该工作项的id调用此url。此动态变量路径允许您确定与该回调关联的工作项id
你可以这样做。首先,使用硬编码的本地名称result.json来定义具有这样一个输出参数(verb:post
)的活动:
“结果”:{
“zip”:假,
“ondemand”:错误,
“动词”:“post”,
“说明”:“结果”,
“必需”:正确,
“localName”:“results.json”
}
在appbundle代码中,使用硬编码名称result.json
将json内容保存到当前工作文件夹中
使用(StreamWriter sw=File.CreateText(“result.json”))
{
WriteLine(JsonConvert.SerializeObject(数据,格式化,缩进));
sw.Close();
}
然后您可以发布这样的工作项:
“结果”:{
“动词”:“post”,
“url”:”https://www.yourserver.com/results/$(工作项id)”
}
在回调的服务器实现中,您将获得json内容作为有效负载。您可以阅读结果,并使用套接字或您与客户的任何其他通信方式,与对应于工作项id的客户进行通信。我在回答中添加了更多详细信息。如果这不起作用并且需要更多帮助,请联系[autodesk[DOT]com上的[code>forge[DOT]帮助。谢谢,Rahul。我想这能满足我的需要。