获取NX一组属性

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 }
作者:快雪
本文版权归作者所有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/kuaixue/p/12753806.html