发布自定义属性定义时出现“CUSTOM_ATTRIBUTE_DUPLICATE_NAME”错误

问题描述

我正在尝试使用此处的说明将自定义属性添加到 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.",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,localVarHttpContentType);

        int localVarStatusCode = (int)localVarResponse.StatusCode;

        var response =  new ApiResponse</*JsonApiCollection*/dynamic>(localVarStatusCode,typeof(JsonApiCollection)));
        
        var sret = ((Autodesk.Forge.Model.DynamicJsonResponse)response.Data).Dictionary["results"];
        var resultsDic = ((Autodesk.Forge.Model.DynamicDictionary)sret).Dictionary;
        Dictionary<long,string>> ret = new Dictionary<long,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;
    }

它没有显示任何具有该名称属性

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)