Example #1
0
        private static void SetValues(ModelItem m, string CategoryName, string PropertyName, string value)
        {
            state = ComApiBridge.State;
            InwOaPath oPath = ComApiBridge.ToInwOaPath(m);

            // get properties collection of the path

            InwGUIPropertyNode2 propertyNode = state.GetGUIPropertyNode(oPath, true) as InwGUIPropertyNode2;

            // creating tab (Category), property null variables as placeholders
            InwGUIAttribute2 existingCategory = null;

            //Index of userDefined Tab
            int index = 1;

            //Case 1: Look for an existing category with the same CategoryName

            foreach (Autodesk.Navisworks.Api.Interop.ComApi.InwGUIAttribute2 attribute in propertyNode.GUIAttributes())
            {
                if (attribute.UserDefined)
                {
                    if (attribute.ClassUserName == CategoryName)
                    {
                        existingCategory = attribute;
                        NavisProperties properties = new NavisProperties(PropertyName, value, existingCategory);
                        setProperty(properties, index, propertyNode);
                        return;
                    }

                    index++;
                }
            }


            //Case 2: Category doesn´t exist, create category and property
            if (existingCategory == null)
            {
                NavisProperties properties = new NavisProperties(PropertyName, value, CategoryName);
                setCategoryAndProperty(properties, propertyNode);
                return;
            }
        }
Example #2
0
 private static void setProperty(NavisProperties properties, int index, InwGUIPropertyNode2 propertyNode)
 {
     propertyNode.SetUserDefined(index, properties.CategoryName, properties.CategoryName, properties.PropertyVec);
 }
Example #3
0
 private static void setCategoryAndProperty(NavisProperties properties, InwGUIPropertyNode2 propertyNode)
 {
     try { propertyNode.SetUserDefined(0, properties.CategoryName, properties.CategoryName, properties.PropertyVec); }
     catch (Exception exception) { MessageBox.Show(exception.Message); }
 }