Autodesk forge Revit输出压缩文件的设计自动化为空
我正在尝试将三维视图从Revit模型导出到IFC。 当我在本地运行我的插件时,它工作得很好,DA4R中的日志也正确,但是导出的结果是22字节(空zip) 我以本文为例: 以下是我的活动:Autodesk forge Revit输出压缩文件的设计自动化为空,autodesk-forge,autodesk-designautomation,Autodesk Forge,Autodesk Designautomation,我正在尝试将三维视图从Revit模型导出到IFC。 当我在本地运行我的插件时,它工作得很好,DA4R中的日志也正确,但是导出的结果是22字节(空zip) 我以本文为例: 以下是我的活动: { "commandLine": [ "$(engine.path)\\\\revitcoreconsole.exe /al \"$(appbundles[ExportIfcFromZippedApp].path)\"" ], "p
{
"commandLine": [
"$(engine.path)\\\\revitcoreconsole.exe /al \"$(appbundles[ExportIfcFromZippedApp].path)\""
],
"parameters": {
"inputFile": {
"zip":true,
"verb": "get",
"description": "Input Revit model(zipped)",
"required": true,
"localName":"input"
},
"inputModelName":{
"verb":"get",
"description": "Additional parameters like : ModelName",
"localName":"additionalParams.json"
},
"inputJson": {
"verb": "get",
"description": "IFC Export Options",
"localName": "params.json"
},
"outputFile": {
"zip": true,
"verb": "put",
"description": "Ouput IFC views",
"required": true,
"localName": "result"
}
},
这是我的出口
if (RuntimeValue.RunOnCloud)
{
try
{
var res = doc.Export(Directory.GetCurrentDirectory() + "\\result", item.Name, exportOptions);
Console.WriteLine($"Log {item.Name} exported:{res}");
successItems++;
}
catch (Exception ex)
{
Console.WriteLine($"Log: Error in exporting {item.Name} view from {modelPath}");
Console.WriteLine($"{ex.Message}, {ex.Source}");
failureItems++;
}
}
控制台输出:
{
"commandLine": [
"$(engine.path)\\\\revitcoreconsole.exe /al \"$(appbundles[ExportIfcFromZippedApp].path)\""
],
"parameters": {
"inputFile": {
"zip":true,
"verb": "get",
"description": "Input Revit model(zipped)",
"required": true,
"localName":"input"
},
"inputModelName":{
"verb":"get",
"description": "Additional parameters like : ModelName",
"localName":"additionalParams.json"
},
"inputJson": {
"verb": "get",
"description": "IFC Export Options",
"localName": "params.json"
},
"outputFile": {
"zip": true,
"verb": "put",
"description": "Ouput IFC views",
"required": true,
"localName": "result"
}
},
[02/05/2021 18:17:21]日志:中三维视图的总量
Autodesk.Revit.DB.FilePath:22
[02/05/2021 18:17:21]日志:3查看到
出口:2
[02/05/2021 18:17:25]导出的日志端口:True
[02/05/2021 18:17:26]导出的日志:正确
[02/05/2021 18:17:26]日志:3要导出的视图:2。成功:2。失败:0
[02/05/2021 18:17:31]进入finishPlayback。。破坏
m_PlaybackState
继续finishPlayback。。销毁调用流()
退出finishPlayback
[02/05/2021 18:17:31]已完成运行。过程将返回:成功
[02/05/2021 18:17:34]压缩目录
T:\Aces\Jobs\18ff2cb40e7944e8a41b4f8c360e493\结果为
T:\Aces\Jobs\18ff2cb40e7944e8a41b4f8c6360e493\result.zip。[02/05/2021
18:17:34]上传
'T:\Aces\Jobs\18ff2cb40e7944e8a41b4f8c6360e493\result.zip':动词-
“放置”,url-
'https://developer.api.autodesk.com/oss/v2/buckets/ifc_export_external/objects/000001-01
测试Autoifc ARK.zip'
“统计数据”:{
“时间排队”:“2021-02-05T18:14:17.0325708Z”,
“timeDownloadStarted”:“2021-02-05T18:14:17.314204Z”,
“timeInstructionsStarted”:“2021-02-05T18:14:21.7983855Z”,
“时间指令结束”:“2021-02-05T18:17:34.7014528Z”,
“timeUploadEnded”:“2021-02-05T18:17:34.9939046Z”,
“bytesDownloaded”:88722885,
“BytesUpload”:22
更新
打开用户的工作集可能会有问题。在本地调试时,导出结果取决于打开工作集的方式。如果打开所有用户工作集,导出效果会很好;如果关闭所有工作集,则会得到非常小的ifc文件,但它们不是空的,如DA4R
我在我的插件中使用这个:
var openOptions = new OpenOptions();
openOptions.DetachFromCentralOption =
DetachFromCentralOption.DetachAndPreserveWorksets;
Console.WriteLine($"Log : DetachAndPreserveWorksets,");
WorksetConfiguration openConfig = new
WorksetConfiguration(WorksetConfigurationOption.OpenAllWorksets);
openOptions.SetOpenWorksetsConfiguration(openConfig);
Document doc = rvtApp.OpenDocumentFile(modelPath, openOptions);
我已尝试获取用户工作集信息
IList<WorksetPreview> worksets = WorksharingUtils.GetUserWorksetInfo(modelPath);
IList worksets=WorksharingUtils.GetUserWorksetInfo(modelPath);
但我收到一个错误:“您应该登录到A360才能这样做。”
此外,我还找到了在文档打开时打开工作集的解决方案:
本例使用:uidoc.ShowElements(ElementId),但uidoc是UI组件的一部分,因此DA4R不支持它
更新
我已经记录了所有工作集,默认情况下,所有工作集都已打开且可见
如何解决问题?在我的例子中,问题是由IFCExportOptions引起的
options.AddOption("ExportSchedulesAsPsets","true")
当我将其设置为“false”时,输出不是空的
顺便说一句,在本地调试中,它同时使用两个选项。在我的例子中,问题是由IFCExportOptions引起的
options.AddOption("ExportSchedulesAsPsets","true")
当我将其设置为“false”时,输出不是空的
顺便说一句,在本地调试中,它可以同时使用这两个选项。据我所知,文件夹中的输出可能是空的。我们无法检查其中的内容,因为作业完成后,作业文件夹总是会被清理。您是否可以尝试在加载项中添加更多日志,以查看是否有文件(例如,文件大小)在我们压缩并上传它之前,导出结果在文件夹中?我试图在结果目录中记录文件,但我有一个错误。您有什么错误?您还可以提供记录错误的工作项Id吗?以下是Id:18ff2cb40e7944e8a41b4f8c6360e493。这甚至不是一个错误,登录DA时忽略记录。请尝试使用
Trace、 TraceInformation
和Trace.TraceError
而不是Console.WriteLine
(在DA 4 Inventor中,我使用此选项,日志记录工作非常完美)据我所知,文件夹中的输出可能只是空的。我们无法检查其中的内容,因为作业完成后,作业文件夹总是会被清理。能否尝试在加载项中添加更多日志,以查看是否存在文件(例如,文件大小)在我们压缩并上传它之前,导出结果在文件夹中?我试图在结果目录中记录文件,但我有一个错误。您有什么错误?您还可以提供记录错误的工作项Id吗?以下是Id:18ff2cb40e7944e8a41b4f8c6360e493。这甚至不是一个错误,登录DA时忽略记录。请尝试使用Trace、 TraceInformation
和Trace.TraceError
而不是Console.WriteLine
(在DA 4 Inventor中,我使用此选项,日志记录工作非常完美)