NX中的属性是可以分组的,有时我们想获取某一个组下的所有属性,但是NX封装的接口不够好用,因此在此基础上,我封装了一个,供大家参考:
1 //属性值是字符串类型,obj对象tag,category组名称,attr输出参数 2 void UF_ATTR_get_attributes_by_category(tag_t obj, char* category, map<string,string>& attr) 3 { 4 if ((NULL_TAG == obj) || (NULL == category)) 5 { 6 return ; 7 } 8 9 int num_attributes = 0; 10 logical has_attribute = false; 11 12 UF_ATTR_info_t attr_info = {0}; 13 UF_ATTR_init_user_attribute_info(&attr_info); 14 15 UF_ATTR_iterator_t query; 16 UF_ATTR_init_user_attribute_iterator(&query); 17 query.category = category; 18 query.check_category = true; 19 query.type = UF_ATTR_string; 20 21 UF_ATTR_get_user_attribute(obj,&query,&attr_info,&has_attribute); 22 while (has_attribute) 23 { 24 attr.insert(make_pair(attr_info.title,attr_info.string_value)); 25 UF_ATTR_free_user_attribute_info_strings(&attr_info); 26 UF_ATTR_get_next_user_attribute(obj,&query,&attr_info,&has_attribute); 27 } 28 }