#autodesk-forge #autodesk-viewer #autodesk-model-derivative
Вопрос:
Я следую инструкциям на веб-сайте autodesk https://forge.autodesk.com/developer/idea/viewer-app
а также
и я могу пройти аутентификацию, создать корзину, и, похоже, я также могу загрузить свой файл.
Я загружаю файл .rvt, но проблема возникает при проверке состояния конечной точки, чтобы проверить состояние преобразования файла в формат .svf, чтобы я мог использовать файл в программе просмотра.
Ошибка, которую он возвращает, такова
имя : Пузырь LMV прогресс : завершен Сообщения : Tr-работнику не удалось загрузить. TranslationWorker-InternalFailure Тип вывода : svf статус : сбой
Затем это приводит к коду ошибки в библиотеке просмотра, поскольку, похоже, файла onDocumentLoadFailure () нет — код ошибки:9
Я несколько раз следовал учебным пособиям до буквы, и все, кроме этой части, выглядит как процесс.
Я пробовал использовать различные файлы rvt, zip-файлы, но, похоже, ничего не работает.
<cffunction name="convertFile" access="public" returntype="any" description="I convert a file for autodesk">
<cfargument name="token" type="string" required="true">
<cfargument name="urn" type="string" required="false" default="">
<cfargument name="filename" type="string" required="true">
<cfoutput>
<cfsavecontent variable="jsonstring">
{
"input": {
"urn": "#toBase64(arguments.urn)#",
"rootFilename": "#arguments.filename#",
"compressedUrn": true
},"output": {
"destination": {
"region": "us"
},"formats": [
{"type": "svf",
"views": [
"2d",
"3d"]}]}}
</cfsavecontent>
</cfoutput>
<cfhttp url="https://developer.api.autodesk.com/modelderivative/v2/designdata/job" method="post">
<cfhttpparam type="header" name="Authorization" value="Bearer #arguments.token#">
<cfhttpparam type="header" name="Content-Type" value="application/json">
<cfhttpparam type="body" value="#trim(jsonstring)#">
</cfhttp>
<cfset var returnObj = {}>
<cfif isJSON(cfhttp.filecontent)>
<cfset returnObj = deserializeJSON(cfhttp.filecontent)>
</cfif>
<cfreturn returnObj>
</cffunction>
Комментарии:
1. Не могли бы вы поделиться своим телом запроса forge.autodesk.com/en/docs/model-derivative/v2/tutorials/… ?
2. А пока не могли бы вы попробовать мои сценарии почтальона здесь: github.com/yiskang/forge.api.postman
3. мы просто публикуем данные с помощью lucee. — пожалуйста, смотрите фрагмент кода в оригинальном сообщении
4. Извините, я не знаком с Люси. Но если вы загружаете один файл RVT для перевода, значение
compressedUrn
должно бытьfalse
. В противном случае перевод завершится ошибкой. Кстати, чтобы переопределить результаты неудачного перевода, вам нужно добавить дополнительный заголовок запросаx-ads-force: true
, если урна не изменится.5. Большое вам спасибо, замена compressUrn на false и x-ads-force = true решила проблему, и теперь я могу отображать файлы.
Ответ №1:
Для одного перевода RVT значение compressedUrn
должно быть ложным. В противном случае перевод завершится ошибкой.
curl --location --request POST 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job'
--header 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}'
--header 'Content-Type: application/json'
--data'{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6WU9VUl9CVUNLRVRfS0VZL3JtZV9hZHZhbmNlZF9zYW1wbGVfcHJvamVjdC5ydnQ" //!<<< e.g., base64 encoded URN: urn:adsk.objects:os.object:YOUR_BUCKET_KEY/rme_advanced_sample_project.rvt
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}'
Вместо этого для составной модели RVT (ZIP-файл, содержащий RVT хоста и связанные RVT) значение compressedUrn
должно быть равно true, и rootFilename
оно должно быть указано в имени файла RVT хоста. Например, у вас есть составная модель RVT с именем as sample-buidling.zip
. Он содержит хост RVT ( sample-arch.rvt
) и связанный RVT ( sample-str.rvt
)
curl --location --request POST 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job'
--header 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}'
--header 'Content-Type: application/json'
--data'{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6WU9VUl9CVUNLRVRfS0VZL3NhbXBsZS1idWlkbGluZy56aXA" //!<<< e.g., base64 encoded URN: urn:adsk.objects:os.object:YOUR_BUCKET_KEY/sample-buidling.zip,
"rootFilename": "sample-arch.rvt",
"compressedUrn": true
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}'
Если перевод не удался или вы хотите переопределить существующий переведенный результат, загрузив обновленный файл без изменения урны, нам необходимо загрузить файл с областью действия OAuth data:write
, добавив дополнительный заголовок запроса x-ads-force: true
при вызове задания POST следующим образом:
curl --location --request POST 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job'
--header 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}'
--header 'Content-Type: application/json'
--header 'x-ads-force: true'
--data'{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6WU9VUl9CVUNLRVRfS0VZL3JtZV9hZHZhbmNlZF9zYW1wbGVfcHJvamVjdC5ydnQ" //!<<< e.g., base64 encoded URN: urn:adsk.objects:os.object:YOUR_BUCKET_KEY/rme_advanced_sample_project.rvt
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}'