Autodesk Navisworks API
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
How to get category Index to update category to model item
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi, Everyone,
In my in-house NW Plug-in, I need add user defined properties to a specify category,
After first time, I need get category index to update it (code as below), If somebody can
help , I am very appreciated.
Lee, Wenhan
Code as below :
Navisworks.ModelItemCollection mic = new Navisworks.ModelItemCollection();
mic.Add(model);
ComApi.InwOpSelection comSels = ComApiBridge.ComApiBridge.ToInwOpSelection(mic);
ComApi.InwSelectionPathsColl oPaths = comSels.Paths();
ComApi.InwOaPath3 oPath = oPaths.Last() as ComApi.InwOaPath3;
ComApi.InwGUIPropertyNode2 pNode = (ComApi.InwGUIPropertyNode2)state.
GetGUIPropertyNode(oPath, true);
ComApi.InwOaPropertyVec newPvec = state.ObjectFactory
(ComApi.nwEObjectType.eObjectType_nwOaPropertyVec, null, null) as ComApi.InwOaPropertyVec;
ComApi.InwOaProperty newP;
foreach (DataRow dr in prps)
{
newP = state.ObjectFactory(ComApi.nwEObjectType.eObjectTy
as ComApi.InwOaProperty;
newP.name = dr["PName"] as string;
newP.UserName = dr["PName"] as string;
newP.value = dr["PValue"] as string;
newPvec.Properties().Add(newP);
//MessageBox.Show(dr["PName"] + " " + dr["PValue"], strModel);
}
int idx = getIndexCategory(model, catName);
pNode.SetUserDefined(idx, catName, catName, newPvec); // idx 0: Append, othesr is replace
Re: How to get category Index to update category to model item
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
int idx = getIndexCategory(pNode, catName);
private int getIndexCategory(ComApi.InwGUIPropertyNode2 pNode, string catName)
{
int idx = 0, rst = 0;
foreach (ComApi.InwGUIAttribute2 attribute in pNode.GUIAttributes())
{
if (attribute.UserDefined)
{
idx++;
if (attribute.ClassUserName == catName)
{
rst = idx;
break;
}
}
}
return rst;
}
Re: How to get category Index to update category to model item
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi ctci20299 ,
yes, what you are doing is the only way. The API does not provide the index for the catergory or property. You will need to iterate the collection and calculate the index. I would suggest storing the information.thus you can re-use them next time.
Xiaodong Liang
Developer Technical Services
Autodesk Developer Network

