【发布时间】:2023-03-29 09:15:01
【问题描述】:
我可以使用 RVT 和 Json 附加的输入文件成功编译设计自动化 Web 应用程序。 但我只需要传递一个 Json 文件作为 workItem 的输入。在 ForgeDesignAutomation.js 中,我将其编写如下。但看起来 inputfile 需要被字符串化。请帮我更正下面的语法。
这里的 'inputFile' 是一个 Json 文件,我没有上传任何 rvt 文件,因为我的插件只接受一个 json 文件作为输入,它是字符串数组并返回一个 rfa 文件作为输出。
当 'inputFile' 只是一个 .json 文件时,如何对它进行字符串化?
function startWorkitem()
{
var inputFileField = document.getElementById('inputFile');
if (inputFileField.files.length === 0) { alert('Please select an input file'); return; }
if ($('#activity').val() === null) { alert('Please select an activity'); return };
var file = inputFileField.files[0];
let activityId = $('#activity').val();
if (activityId == null)
{
alert('Please select an activity'); return
};
if (activityId.toLowerCase() === "myfirst_da4ractivity+dev")
{
startConnection(function () {
var formData = new FormData();
formData.append('inputFile', file);
//file is not uploading-------I think I could not pass the Json file.
//I need to pass connection ID here too.
writeLog('Uploading input file...');
$.ajax({
url: 'api/forge/designautomation/workitems',
dataType: 'json',
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function (res)
{
writeLog('Workitem started: ' + res.workItemId);
}
});
});
}
}
【问题讨论】:
-
很遗憾,您的原始帖子中没有足够的信息来回答这个问题。如果您正在修改现有代码示例并且您的修改不起作用,提及原始代码和您的更改可能会帮助我们回答。至于能够将输入 json 发送到设计自动化工作项,请参考 SketchIt 示例:这是服务器端代码:github.com/Autodesk-Forge/forge-sketchit-revit/blob/…github.com/Autodesk-Forge/forge-sketchit-revit
-
是的,没错,我没有正确写出问题。谢谢回复。我正在使用 dotnet 核心。服务器端的控制器和客户端的 JavaScript/ajax。在网络表单中,我只传递一个 Json 文件。我正在关注两个示例代码,它们都使用 revit 文件,它们都没有只使用 Json 文件作为输入,作为 formdata。我广泛进行插件开发,但这是第一次前端/后端通信。所以犯了一些愚蠢的错误。很快就会克服。会带着一个更好的问题回来:) 试图理解示例代码,以及发生了什么:)
-
嗨@nayran,看看stackoverflow.com/questions/62286622/…我想你的问题是一样的,查尔斯·多德森在那里回答得很好。
标签: javascript json ajax autodesk-forge autodesk-designautomation