#.net #autodesk-forge #autodesk-viewer #autodesk #autodesk-model-derivative
Вопрос:
Я использую библиотеку Forge Autodesk .NET(версия 1.9.0) для получения метаданных переведенного файла. Я использую приведенный ниже метод, так как свойства metadata_properties велики для файла.
DynamicJsonResponse propertiesResponse = await derivativeApiInstance.GetModelviewPropertiesAsync
(ForgeFileURN, viewGUID,
"gzip",
null,
false,
true);
но я получаю ошибку — элемент с тем же ключом уже добавлен. Ключ: forceget. Может ли кто-нибудь, пожалуйста, помочь мне понять, чего мне здесь не хватает. Как я могу получить большие метаданные свойств переведенного файла?
Ответ №1:
Ваш вызов функции выглядит странно. последние два аргумента должны быть true/false, а не ключ-значение. т. е.,
GetModelviewPropertiesAsync(
ForgeFileURN,
viewGUID,
"gzip",
null,
false,
true
);
Вот удаление функции:
/// <summary>
///
/// </summary>
/// <remarks>
/// Returns a list of properties for each object in an object tree. Properties are returned according to object ID and do not follow a hierarchical structure. The following image displays a typical list of properties for a Revit object: ![](https://developer.doc.autodesk.com/bPlouYTd/7/_images/Properties.png) To call this endpoint you need to first call the [GET {urn}/metadata](https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-metadata-GET) endpoint, which returns a list of model view (metadata) IDs for a design input model. Select a model view (metadata) ID to use when calling the Get Properties endpoint. Note that you can only get properties from a design input file that was previously translated into an SVF file.
/// </remarks>
/// <exception cref="Autodesk.Forge.Client.ApiException">Thrown when fails to make API call</exception>
/// <param name="urn">The Base64 (URL Safe) encoded design URN </param>
/// <param name="guid">Unique model view ID. Call [GET {urn}/metadata](https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-metadata-GET) to get the ID </param>
/// <param name="acceptEncoding">If specified with amp;#x60;gzipamp;#x60; or amp;#x60;*amp;#x60;, content will be compressed and returned in a GZIP format. (optional)</param>
/// <param name="objectid">Object id which you want to query properties for.</param>
/// <param name="xAdsForce">If true - force retrieve the object tree even though it failed to be retrieved or got timeout (got 404 with error message) previously.</param>
/// <param name="forceget">If true - To force get the large resource even if it exceeded the expected maximum length (20 MB).</param>
/// <returns>Task of Metadata</returns>
System.Threading.Tasks.Task</*Metadata*/dynamic> GetModelviewPropertiesAsync(string urn, string guid, string acceptEncoding = null, List<int> objectIds = null, bool xAdsForce = false, bool forceget = false);
Комментарии:
1. Мои последние аргументы ложны и верны. Я просто упомянул имя переменной для лучшего понимания. это так же, как вы упомянули GetModelviewPropertiesAsync( ForgeFileURN, viewGUID, «gzip», null, false, true ); все равно получается та же ошибка.
2. Понял, пожалуйста, см. PR№91
forge-api-dotnet-client
. Прежде чем он будет объединен, пожалуйста, подумайте о компиляции обновленной версии здесь .