问题描述
我正在尝试使用此处的说明将自定义属性添加到 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 (将#修改为@)