protected override void BeforeSolveInstance() { Grasshopper.Kernel.Parameters.Param_Integer myMaterialParam = Params.Input[0] as Grasshopper.Kernel.Parameters.Param_Integer; myMaterialParam.ClearNamedValues(); ////////// Code for automatically loading Materials from XML when intance of class is initiated. IBIS_XML.Load("D:\\Dropbox\\_F13\\6338\\GH Plugin\\Ibis\\Ibis\\IBIS_XML.xml"); List <String> myMaterialNameList = new List <string>(); XmlNodeList myList = IBIS_XML.GetElementsByTagName("Material"); foreach (XmlNode mx in myList) { XmlElement x = mx as XmlElement; string myXMLMaterial = x.GetAttribute("type"); myMaterialNameList.Add(myXMLMaterial); } for (int i = 0; i < myMaterialNameList.Count; i++) { myMaterialParam.AddNamedValue(myMaterialNameList[i], i + 1); } Grasshopper.Kernel.Parameters.Param_Integer myGrainParam = Params.Input[2] as Grasshopper.Kernel.Parameters.Param_Integer; myGrainParam.ClearNamedValues(); Grasshopper.Kernel.Parameters.Param_Integer myThicknessParam = Params.Input[3] as Grasshopper.Kernel.Parameters.Param_Integer; myThicknessParam.ClearNamedValues(); Grasshopper.Kernel.Data.GH_Structure <Grasshopper.Kernel.Types.GH_Integer> myMaterialValue = myMaterialParam.VolatileData as Grasshopper.Kernel.Data.GH_Structure <Grasshopper.Kernel.Types.GH_Integer>; //GH_Structure<GH_Integer> data = param0.VolatileData as GH_Structure<GH_Integer>; }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddIntegerParameter("Material", "Material", "Choose your Material", GH_ParamAccess.item); pManager[0].Optional = true; Grasshopper.Kernel.Parameters.Param_Integer myMaterialParam = Params.Input[0] as Grasshopper.Kernel.Parameters.Param_Integer; myMaterialParam.ClearNamedValues(); ////////// Code for automatically loading Materials from XML when intance of class is initiated. IBIS_XML.Load("D:\\Dropbox\\_F13\\6338\\GH Plugin\\Ibis\\Ibis\\IBIS_XML.xml"); List <String> myMaterialNameList = new List <string>(); XmlNodeList myList = IBIS_XML.GetElementsByTagName("Material2"); foreach (XmlNode mx in myList) { XmlElement x = mx as XmlElement; string myXMLMaterial = x.GetAttribute("type"); myMaterialNameList.Add(myXMLMaterial); } for (int i = 0; i < myMaterialNameList.Count; i++) { myMaterialParam.AddNamedValue(myMaterialNameList[i], i + 1); } pManager.AddSurfaceParameter("Surface", "Surface", "Insert Surface Here", GH_ParamAccess.list); pManager[1].Optional = true; pManager.AddNumberParameter("Thickness", "Thickness", "Insert your Thickness here", GH_ParamAccess.item); pManager[2].Optional = true; }
//Get list of materials and their corresponding gauge values protected override void BeforeSolveInstance() { Grasshopper.Kernel.Parameters.Param_Integer myMaterialParam = Params.Input[0] as Grasshopper.Kernel.Parameters.Param_Integer; myMaterialParam.ClearNamedValues(); Grasshopper.Kernel.Parameters.Param_Integer myGaugeParam = Params.Input[1] as Grasshopper.Kernel.Parameters.Param_Integer; myGaugeParam.ClearNamedValues(); ////////// Code for automatically loading Materials from XML when intance of class is initiated. IBIS_XML.Load("D:\\Dropbox\\_F13\\6338\\GH Plugin\\Ibis\\Ibis\\IBIS_XML.xml"); List <String> myMaterialNameList = new List <string>(); XmlNodeList myList = IBIS_XML.GetElementsByTagName("ThicknessMaterial"); foreach (XmlNode mx in myList) { XmlElement x = mx as XmlElement; string myXMLMaterial = x.GetAttribute("type"); myMaterialNameList.Add(myXMLMaterial); } for (int i = 0; i < myMaterialNameList.Count; i++) { myMaterialParam.AddNamedValue(myMaterialNameList[i], i + 1); } Grasshopper.Kernel.Data.GH_Structure <Grasshopper.Kernel.Types.GH_Integer> myMaterialValue = myMaterialParam.VolatileData as Grasshopper.Kernel.Data.GH_Structure <Grasshopper.Kernel.Types.GH_Integer>; if (myMaterialValue.IsEmpty) { return; } //Code to load the Gauge list depending on user Material input:- List <String> myGaugeList = new List <string>(); IBIS_XML.Load("D:\\Dropbox\\_F13\\6338\\GH Plugin\\Ibis\\Ibis\\IBIS_XML.xml"); foreach (Grasshopper.Kernel.Types.GH_Integer myThis in myMaterialValue.AllData(true)) { switch (myThis.Value) { case 1: //for standard steel //////////Gauge numbers XmlNodeList myNodeList1 = IBIS_XML.SelectNodes("IBIS/ThicknessGauge/ThicknessMaterial[@id=1]/Gauge"); foreach (XmlNode myNode in myNodeList1) { XmlElement myElement = myNode as XmlElement; String myXMLGauge = myElement.GetAttribute("type"); myGaugeList.Add(myXMLGauge); } for (int i = 0; i < myGaugeList.Count; i++) { myGaugeParam.AddNamedValue(myGaugeList[i], i + 1001); } break; } return; } }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddBooleanParameter("Trigger", "T", "Trigger the retrieval of Revit materials", GH_ParamAccess.item, false); pManager.AddIntegerParameter("Category", "C", "1 = Images\n2 = Levels\n3 = Materials\n4 = Phases", GH_ParamAccess.item, 3); Grasshopper.Kernel.Parameters.Param_Integer paramInt = pManager[1] as Grasshopper.Kernel.Parameters.Param_Integer; if (paramInt != null) { //paramInt.AddNamedValue("Design Options", 0); paramInt.AddNamedValue("Images", 1); paramInt.AddNamedValue("Levels", 2); paramInt.AddNamedValue("Materials", 3); paramInt.AddNamedValue("Phases", 4); } }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { //0 pManager.AddTextParameter("Results", "Re", "Data from 'Results' output of 'Read CSV' component", GH_ParamAccess.tree); //1 pManager.AddIntegerParameter("XYZ", "XYZ", "The plane be displayed\r\n 0: X (YZ plane)\r\n 1: Y (XZ plane)\r\n 2: Z (XY plane)", GH_ParamAccess.item, 0); Grasshopper.Kernel.Parameters.Param_Integer plane_list = pManager[1] as Grasshopper.Kernel.Parameters.Param_Integer; plane_list.AddNamedValue("X (YZ plane)", 0); plane_list.AddNamedValue("Y (XZ plane)", 1); plane_list.AddNamedValue("Z (XY plane)", 2); //2 pManager.AddTextParameter("Absolute Value", "AV", "The absolute value of the location", GH_ParamAccess.item, "NA"); //3 pManager.AddNumberParameter("Relative Value", "RV", "The relative value of the location, invalid when AV is used", GH_ParamAccess.item, 0); }
protected override void BeforeSolveInstance() { Grasshopper.Kernel.Parameters.Param_Integer myMaterialParam = Params.Input[0] as Grasshopper.Kernel.Parameters.Param_Integer; myMaterialParam.ClearNamedValues(); ////////// Code for automatically loading Materials from XML when intance of class is initiated. IBIS_XML.Load("D:\\Dropbox\\_F13\\6338\\GH Plugin\\Ibis\\Ibis\\IBIS_XML.xml"); List <String> myMaterialNameList = new List <string>(); XmlNodeList myList = IBIS_XML.GetElementsByTagName("Material"); foreach (XmlNode mx in myList) { XmlElement x = mx as XmlElement; string myXMLMaterial = x.GetAttribute("type"); myMaterialNameList.Add(myXMLMaterial); } for (int i = 0; i < myMaterialNameList.Count; i++) { myMaterialParam.AddNamedValue(myMaterialNameList[i], i + 1); } Grasshopper.Kernel.Parameters.Param_Integer myGrainParam = Params.Input[2] as Grasshopper.Kernel.Parameters.Param_Integer; myGrainParam.ClearNamedValues(); Grasshopper.Kernel.Parameters.Param_Integer myThicknessParam = Params.Input[3] as Grasshopper.Kernel.Parameters.Param_Integer; myThicknessParam.ClearNamedValues(); Grasshopper.Kernel.Data.GH_Structure <Grasshopper.Kernel.Types.GH_Integer> myMaterialValue = myMaterialParam.VolatileData as Grasshopper.Kernel.Data.GH_Structure <Grasshopper.Kernel.Types.GH_Integer>; //GH_Structure<GH_Integer> data = param0.VolatileData as GH_Structure<GH_Integer>; if (myMaterialValue.IsEmpty) { return; } //Code to load the thickness list depending on user Material input:- List <String> myThicknessList = new List <string>(); List <String> myBendList = new List <string>(); IBIS_XML.Load("D:\\Dropbox\\_F13\\6338\\GH Plugin\\Ibis\\Ibis\\IBIS_XML.xml"); foreach (Grasshopper.Kernel.Types.GH_Integer myThis in myMaterialValue.AllData(true)) { switch (myThis.Value) { case 1: //////////for thickness: XmlNodeList myNodeList1 = IBIS_XML.SelectNodes("IBIS/DryBending/Material[@id=1]/BendDirection/Thickness"); foreach (XmlNode myNode in myNodeList1) { XmlElement myElement = myNode as XmlElement; String myXMLThickness = myElement.GetAttribute("type"); myThicknessList.Add(myXMLThickness); } for (int i = 0; i < 6; i++) //This needs to be changed!! { myThicknessParam.AddNamedValue(myThicknessList[i], i + 1001); } //////////for benddirection XmlNodeList myNodeList1b = IBIS_XML.SelectNodes("IBIS/DryBending/Material[@id=1]/BendDirection"); foreach (XmlNode myNode in myNodeList1b) { XmlElement myElement = myNode as XmlElement; String myXMLBend = myElement.GetAttribute("type"); myBendList.Add(myXMLBend); } for (int i = 0; i < myBendList.Count; i++) { myGrainParam.AddNamedValue(myBendList[i], i + 101); } break; case 2: //////////for thickness: XmlNodeList myNodeList2 = IBIS_XML.SelectNodes("IBIS/DryBending/Material[@id=2]/BendDirection/Thickness"); foreach (XmlNode myNode in myNodeList2) { XmlElement myElement = myNode as XmlElement; String myXMLThickness = myElement.GetAttribute("type"); myThicknessList.Add(myXMLThickness); } for (int i = 0; i < myThicknessList.Count; i++) { myThicknessParam.AddNamedValue(myThicknessList[i], i + 1001); } //////////for benddirection XmlNodeList myNodeList2b = IBIS_XML.SelectNodes("IBIS/DryBending/Material[@id=2]/BendDirection"); foreach (XmlNode myNode in myNodeList2b) { XmlElement myElement = myNode as XmlElement; String myXMLBend = myElement.GetAttribute("type"); myBendList.Add(myXMLBend); } for (int i = 0; i < myBendList.Count; i++) { myGrainParam.AddNamedValue(myBendList[i], i + 101); } break; case 3: XmlNodeList myNodeList3 = IBIS_XML.SelectNodes("IBIS/DryBending/Material[@id=3]/BendDirection/Thickness"); foreach (XmlNode myNode in myNodeList3) { XmlElement myElement = myNode as XmlElement; String myXMLThickness = myElement.GetAttribute("type"); myThicknessList.Add(myXMLThickness); } for (int i = 0; i < myThicknessList.Count; i++) { myThicknessParam.AddNamedValue(myThicknessList[i], i + 1001); } break; } return; } }