//--------------------------------------------------------------------------------------- //STEP 1 //THIS METHOD TAKES INPUTS FROM UserInput FORM. //DETERMINES IF CURRENT PROJECT IS NWF (LIVE) OR IF NWD (SNAPSHOT) public static void GetSystemProperties(string displayName, string classType) { ReturnProp.Clear(); CurrCategories.Clear(); ReturnCategories.Clear(); catDuplicate.Clear(); ModelItem Root = null; //CHECK IF FILE IS NWF foreach (Model model in DocModel) { if (model.RootItem.DisplayName == displayName) { Root = model.RootItem as ModelItem; ClassTypeCheck(Root, classType); break; } } //ENTERS IF FILE IS NWD (GO NEXT LEVEL TO SEARCH FOR MODEL FILES) if (Root == null) { foreach (Model model in DocModel) { ModelItem root = model.RootItem as ModelItem; foreach (ModelItem item in root.Children) { if (item.DisplayName == displayName) { ClassTypeCheck(item, classType); } } } } }
//STEP 2 //ROUTED HERE FROM UserInput FORM AFTER USER SELECTS CATEGORY TYPE TO ACCESS ASSOCIATED PROPERTIES //SELECTED CATEGORY IS PASSED AS CatNameSelected public static void GetCatProperties(string CatNameSelected) { //CYCLES THROUGH CATEGORY OF CLASS PropertyCategory //TO FIND MATCH THAT USER SELECTED OF TYPE STRING foreach (PropertyCategory category in CurrCategories) { if (category.DisplayName == CatNameSelected) { //WHEN MATCH FOUND TAKES category OF CLASS PropertyCategory //TO RETRIEVE AVAILABLE Properties foreach (DataProperty oDP in category.Properties) { //STORES IN ReturnProp TO BE DISPLAYED IN UserInput FORM IN Prop_ListView ReturnProp.Add(new Property { PropName = oDP.DisplayName, //ISSUES WITH ToDisplayString() IN AUTODESK API. Using Substring() and IndexOf() METHODS //TO REMOVE UNWANTED CHARACTERS IN STRING ValEx = oDP.Value.ToString().Substring(oDP.Value.ToString().IndexOf(':') + 1) }); } } } }