我正在尝试使用此处的说明将自定义属性添加到 BIM360 文件夹: https://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-custom-attribute-definitions-POST/
public async Task<long> addFolderCustomAttribute(string projectId, string folderId, string attributeName, string type)
{
var localVarPath = $"bim360/docs/v1/projects/{projectId.Replace("b.", "")}/folders/{System.Web.HttpUtility.UrlEncode(folderId)}/custom-attribute-definitions";
var localVarQueryParams = new Dictionary<String, String>();
Object localVarPostBody = null;
var localVarHeaderParams = new Dictionary<String, String>(Configuration.Default.DefaultHeader);
var localVarFormParams = new Dictionary<String, String>();
var localVarFileParams = new Dictionary<String, FileParameter>();
var localVarPathParams = new Dictionary<String, String>();
String[] localVarHttpContentTypes = new String[] {
"application/vnd.api+json"
};
String localVarHttpContentType = Configuration.Default.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);
if (!String.IsNullOrEmpty(Configuration.Default.AccessToken))
{
localVarHeaderParams["Authorization"] = "Bearer " + Configuration.Default.AccessToken;
}
localVarPostBody = "{\"name\":\"" + attributeName + "\", \"type\":\"" + type + "\"}";
IRestResponse localVarResponse = (IRestResponse)await Configuration.Default.ApiClient.CallApiAsync(localVarPath,
Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
localVarPathParams, localVarHttpContentType);
int localVarStatusCode = (int)localVarResponse.StatusCode;
var response = new ApiResponse</*JsonApiCollection*/dynamic>(localVarStatusCode,
localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
/*(JsonApiCollection)*/ Configuration.Default.ApiClient.Deserialize(localVarResponse, typeof(JsonApiCollection)));
var id = (long)((Autodesk.Forge.Model.DynamicJsonResponse)response.Data).Dictionary["id"];
return id;
}
我收到此错误:CUSTOM_ATTRIBUTE_DUPLICATE_NAME
但是,当我使用以下方法枚举文件夹的自定义属性时: https://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-custom-attribute-definitions-GET/
public async Task<Dictionary<long, Tuple<string, string>>> getFolderCustomAttributeDefinition(string projectId, string folderId)
{
var localVarPath = $"bim360/docs/v1/projects/{projectId.Replace("b.", "")}/folders/{System.Web.HttpUtility.UrlEncode(folderId)}/custom-attribute-definitions";
var localVarQueryParams = new Dictionary<String, String>();
Object localVarPostBody = null;
var localVarHeaderParams = new Dictionary<String, String>(Configuration.Default.DefaultHeader);
var localVarFormParams = new Dictionary<String, String>();
var localVarFileParams = new Dictionary<String, FileParameter>();
var localVarPathParams = new Dictionary<String, String>();
String[] localVarHttpContentTypes = new String[] {
"application/vnd.api+json"
};
String localVarHttpContentType = Configuration.Default.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);
if (!String.IsNullOrEmpty(Configuration.Default.AccessToken))
{
localVarHeaderParams["Authorization"] = "Bearer " + Configuration.Default.AccessToken;
}
IRestResponse localVarResponse = (IRestResponse) await Configuration.Default.ApiClient.CallApiAsync(localVarPath,
Method.GET, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
localVarPathParams, localVarHttpContentType);
int localVarStatusCode = (int)localVarResponse.StatusCode;
var response = new ApiResponse</*JsonApiCollection*/dynamic>(localVarStatusCode,
localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
/*(JsonApiCollection)*/ Configuration.Default.ApiClient.Deserialize(localVarResponse, typeof(JsonApiCollection)));
var sret = ((Autodesk.Forge.Model.DynamicJsonResponse)response.Data).Dictionary["results"];
var resultsDic = ((Autodesk.Forge.Model.DynamicDictionary)sret).Dictionary;
Dictionary<long, Tuple<string, string>> ret = new Dictionary<long, Tuple<string, string>>();
foreach (var att in resultsDic) {
var attrDic = (Autodesk.Forge.Model.DynamicDictionary)att.Value;
ret.Add((long)attrDic.Dictionary["id"], new Tuple<string, string>((string)attrDic.Dictionary["name"], (string)attrDic.Dictionary["type"]));
}
return ret;
}
它没有显示任何具有该名称的属性。
有什么想法吗?