Autodesk forge Revit输出压缩文件的设计自动化为空

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

我正在尝试将三维视图从Revit模型导出到IFC。 当我在本地运行我的插件时,它工作得很好,DA4R中的日志也正确,但是导出的结果是22字节(空zip)

我以本文为例:

以下是我的活动:

{
"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中,我使用此选项,日志记录工作非常完美)