/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("lines", "lines", "", GH_ParamAccess.list); pManager.AddNumberParameter("tolerance", "tol", "", GH_ParamAccess.item, 1.0e-4); pManager.AddBooleanParameter("allowMulti", "multi", "", GH_ParamAccess.item, false); pManager.AddBooleanParameter("allowLoops", "loops", "", GH_ParamAccess.item, false); }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Line", "L", "Input Line data.", GH_ParamAccess.tree); pManager[0].Optional = true; // avoid "failed to collect data" pManager.AddNumberParameter("Epsilon", "E", "Precision threshold for coordinate comparison", GH_ParamAccess.item, 0.0001); pManager[1].Optional = true; }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Line", "L", "list of lines that will become beams", GH_ParamAccess.list); pManager.AddTextParameter("Name", "Name", "element or group name", GH_ParamAccess.item); pManager.AddTextParameter("Mat", "Mat", "material", GH_ParamAccess.item); pManager.AddTextParameter("Cross-section", "CS", "Cross-section", GH_ParamAccess.item); pManager.AddTextParameter("Type", "Type", "element type", GH_ParamAccess.item); }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddBooleanParameter("Reset", "Reset", "Reset", GH_ParamAccess.item, true); pManager.AddBooleanParameter("Run", "Run", "Run", GH_ParamAccess.item, false); pManager.AddPointParameter("Initial Particles", "Initial Particles", "Initial Particles", GH_ParamAccess.list); pManager.AddLineParameter("Initial Branches", "Initial Branches", "Initial Branches", GH_ParamAccess.list); pManager[3].Optional = true; pManager.AddIntegerParameter("Free Particle Count", "Free Particle Count", "Free Particle Count", GH_ParamAccess.item); pManager.AddIntegerParameter("Subiterations", "Subiterations", "Subiterations", GH_ParamAccess.item, 10); }
protected override void RegisterInputParams(GH_InputParamManager manager) { manager.AddLineParameter("Axis", "A", string.Empty, GH_ParamAccess.item); manager[manager.AddParameter(new Parameters.ElementType(), "Type", "T", string.Empty, GH_ParamAccess.item)].Optional = true; manager[manager.AddParameter(new Parameters.Element(), "Level", "L", string.Empty, GH_ParamAccess.item)].Optional = true; }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Line", "L", "list of lines that will become beams", GH_ParamAccess.list); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_InputParamManager pManager) { IAction action = (IAction)Activator.CreateInstance(ActionType, true); NicknameConverter nC = new NicknameConverter(); IList <PropertyInfo> inputs = ActionBase.ExtractInputParameters(ActionType); foreach (PropertyInfo pInfo in inputs) { Type pType = pInfo.PropertyType; ActionInputAttribute inputAtt = ActionInputAttribute.ExtractFrom(pInfo); if (inputAtt != null && inputAtt.Parametric) { string name = pInfo.Name; string nickname = string.IsNullOrEmpty(inputAtt.ShortName) ? nC.Convert(pInfo.Name) : inputAtt.ShortName; string description = inputAtt.CapitalisedDescription; if (pType == typeof(double)) { pManager.AddNumberParameter(name, nickname, description, GH_ParamAccess.item, (double)pInfo.GetValue(action, null)); } else if (pType == typeof(int)) { pManager.AddIntegerParameter(name, nickname, description, GH_ParamAccess.item, (int)pInfo.GetValue(action, null)); } else if (pType == typeof(string)) { pManager.AddTextParameter(name, nickname, description, GH_ParamAccess.item, (string)pInfo.GetValue(action, null)); } else if (pType == typeof(bool)) { //Special case when the input is a 'Write' toggle - default off! pManager.AddBooleanParameter(name, nickname, description, GH_ParamAccess.item, name == "Write" ? false : (bool)pInfo.GetValue(action, null)); } else if (pType == typeof(Vector)) { pManager.AddPointParameter(name, nickname, description, GH_ParamAccess.item); } else if (typeof(IList <Vector>).IsAssignableFrom(pType)) //Vector list { pManager.AddPointParameter(name, nickname, description, GH_ParamAccess.list); } else if (pType.IsAssignableFrom(typeof(Plane))) { pManager.AddPlaneParameter(name, nickname, description, GH_ParamAccess.item, ToRC.Convert((Plane)pInfo.GetValue(action, null))); } else if (pType == typeof(Line)) { pManager.AddLineParameter(name, nickname, description, GH_ParamAccess.item); } else if (pType == typeof(Angle)) { pManager.AddAngleParameter(name, nickname, description, GH_ParamAccess.item, (Angle)pInfo.GetValue(action, null)); } else if (typeof(Curve).IsAssignableFrom(pType)) { pManager.AddCurveParameter(name, nickname, description, GH_ParamAccess.item); } else if (typeof(CurveCollection).IsAssignableFrom(pType)) { pManager.AddCurveParameter(name, nickname, description, GH_ParamAccess.list); } else if (typeof(LinearElement).IsAssignableFrom(pType)) { IGH_Param param = new LinearElementParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (typeof(PanelElement).IsAssignableFrom(pType)) { IGH_Param param = new PanelElementParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (typeof(Element).IsAssignableFrom(pType)) { IGH_Param param = new ElementParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (typeof(LinearElementCollection).IsAssignableFrom(pType)) { IGH_Param param = new LinearElementParam(); pManager.AddParameter(param, name, nickname, description, ParamAccess(inputAtt)); } else if (typeof(PanelElementCollection).IsAssignableFrom(pType)) { IGH_Param param = new PanelElementParam(); pManager.AddParameter(param, name, nickname, description, ParamAccess(inputAtt)); } else if (typeof(ElementCollection).IsAssignableFrom(pType)) { IGH_Param param = new ElementParam(); pManager.AddParameter(param, name, nickname, description, ParamAccess(inputAtt)); } else if (pType == typeof(Node)) { IGH_Param param = new NodeParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (pType == typeof(NodeCollection)) { IGH_Param param = new NodeParam(); pManager.AddParameter(param, name, nickname, description, ParamAccess(inputAtt)); } else if (typeof(Nucleus.Model.Material).IsAssignableFrom(pType)) { IGH_Param param = new MaterialParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (typeof(MaterialCollection).IsAssignableFrom(pType)) { IGH_Param param = new MaterialParam(); pManager.AddParameter(param, name, nickname, description, ParamAccess(inputAtt)); } else if (typeof(SectionFamily).IsAssignableFrom(pType)) { IGH_Param param = new SectionFamilyParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (pType == typeof(Bool6D)) { IGH_Param param = new Bool6DParam(); pManager.AddParameter(param, name, nickname, description, GH_ParamAccess.item); } else if (pType == typeof(FilePath)) { pManager.AddTextParameter(name, nickname, description, GH_ParamAccess.item); } else if (pType == typeof(VertexGeometry)) { pManager.AddGeometryParameter(name, nickname, description, GH_ParamAccess.item); } else if (pType == typeof(VertexGeometryCollection)) { pManager.AddGeometryParameter(name, nickname, description, ParamAccess(inputAtt)); } else if (pType == typeof(ActionTriggerInput)) { pManager.AddGenericParameter(name, nickname, description, GH_ParamAccess.tree); } else if (pType == typeof(Direction)) { pManager.AddTextParameter(name, nickname, description, GH_ParamAccess.item, pInfo.GetValue(action, null)?.ToString()); } else if (pType == typeof(CoordinateSystemReference)) { pManager.AddTextParameter(name, nickname, description, GH_ParamAccess.item, pInfo.GetValue(action, null)?.ToString()); } else if (pType.IsEnum) { pManager.AddTextParameter(name, nickname, description, GH_ParamAccess.item, pInfo.GetValue(action, null)?.ToString()); } else { pManager.AddGenericParameter(pInfo.Name, nickname, description, GH_ParamAccess.item); } if (inputAtt.Required == false) { pManager[pManager.ParamCount - 1].Optional = true; } //TODO } } }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Line", "Line", "Line", GH_ParamAccess.item); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Lines", "L", "Lines to remove duplicates from. Each branch is de-duplicated individually.", GH_ParamAccess.tree); pManager.AddNumberParameter("Tolerance", "T", "Tolerance within which to remove duplicates", GH_ParamAccess.item, 0.01); pManager.AddIntegerParameter("Granularity", "G", "Size of tasked parallel partition. Only affects computation speed.", GH_ParamAccess.item, 1000); }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Centre Line", "CL", "Centre line of the beam", GH_ParamAccess.item); pManager.AddParameter(new BeamPropertiesParam(), "Properties", "P", "Properties for the beam", GH_ParamAccess.item); pManager.AddVectorParameter("Normal", "N", "Normal of the beam", GH_ParamAccess.item); }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Centre Line", "CL", "Centre line of the beam", GH_ParamAccess.item); pManager.AddParameter(new BeamPropertiesParam(), "Properties", "P", "Properties for the beam", GH_ParamAccess.item); pManager.AddVectorParameter("Normal", "N", "Normal of the beam", GH_ParamAccess.item); }
// :( //// This object MUST be static?? //static Dictionary<Type, Func<GH_InputParamManager, MACHINA_InputParameProps, int>> AddParameterFunctionMap = // new Dictionary<Type, Func<GH_InputParamManager, MACHINA_InputParameProps, int>>() //{ // //{ typeof (), (pm, p) => pm.AddAngleParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Arc), (pm, p) => pm.AddArcParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Boolean), (pm, p) => pm.AddBooleanParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Box), (pm, p) => pm.AddBoxParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Brep), (pm, p) => pm.AddBrepParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Circle), (pm, p) => pm.AddCircleParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Colour), (pm, p) => pm.AddColourParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Complex), (pm, p) => pm.AddComplexNumberParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Culture), (pm, p) => pm.AddCultureParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Curve), (pm, p) => pm.AddCurveParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Field), (pm, p) => pm.AddFieldParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_GenericObject), (pm, p) => pm.AddGenericParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Geometry), (pm, p) => pm.AddGeometryParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Group), (pm, p) => pm.AddGroupParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Integer), (pm, p) => pm.AddIntegerParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Interval2D), (pm, p) => pm.AddInterval2DParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Interval), (pm, p) => pm.AddIntervalParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Line), (pm, p) => pm.AddLineParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Matrix), (pm, p) => pm.AddMatrixParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_MeshFace), (pm, p) => pm.AddMeshFaceParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Mesh), (pm, p) => pm.AddMeshParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Number), (pm, p) => pm.AddNumberParameter(p.name, p.nickname, p.description, p.access) }, // //{ typeof (), (pm, p) => pm.AddParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_FilePath), (pm, p) => pm.AddPathParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Plane), (pm, p) => pm.AddPlaneParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Point), (pm, p) => pm.AddPointParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Rectangle), (pm, p) => pm.AddRectangleParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_ScriptVariable), (pm, p) => pm.AddScriptVariableParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Surface), (pm, p) => pm.AddSurfaceParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_String), (pm, p) => pm.AddTextParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Time), (pm, p) => pm.AddTimeParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Transform), (pm, p) => pm.AddTransformParameter(p.name, p.nickname, p.description, p.access) }, // { typeof (Param_Vector), (pm, p) => pm.AddVectorParameter(p.name, p.nickname, p.description, p.access) } //}; //// Wanted to do this programmatically with a dictionary of delegates, but couldn't really make it work... :( //AddParameterFunctionMap[input.dataType](pManager, input); protected void RegisterTypedParam(GH_InputParamManager pManager, GH_InputParamProps p, int index) { // I am so embarrased about having to do this... urgh X( if (p.defaultValue == null) { try { // Sorted by popularity order, estimated by my guts if (p.dataType == typeof(Param_Number)) { pManager.AddNumberParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Plane)) { pManager.AddPlaneParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Point)) { pManager.AddPointParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Vector)) { pManager.AddVectorParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_String)) { pManager.AddTextParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Boolean)) { pManager.AddBooleanParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_GenericObject)) { pManager.AddGenericParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Integer)) { pManager.AddIntegerParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_FilePath)) { pManager.AddPathParameter(p.name, p.nickname, p.description, p.access); } // I don't think Machina uses any of these so far... else if (p.dataType == typeof(Param_Arc)) { pManager.AddArcParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Box)) { pManager.AddBoxParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Brep)) { pManager.AddBrepParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Circle)) { pManager.AddCircleParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Colour)) { pManager.AddColourParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Complex)) { pManager.AddComplexNumberParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Culture)) { pManager.AddCultureParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Curve)) { pManager.AddCurveParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Field)) { pManager.AddFieldParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Geometry)) { pManager.AddGeometryParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Group)) { pManager.AddGroupParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Interval2D)) { pManager.AddInterval2DParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Interval)) { pManager.AddIntervalParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Line)) { pManager.AddLineParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Matrix)) { pManager.AddMatrixParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_MeshFace)) { pManager.AddMeshFaceParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Mesh)) { pManager.AddMeshParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Rectangle)) { pManager.AddRectangleParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_ScriptVariable)) { pManager.AddScriptVariableParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Surface)) { pManager.AddSurfaceParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Time)) { pManager.AddTimeParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Transform)) { pManager.AddTransformParameter(p.name, p.nickname, p.description, p.access); } else { this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Cannot register parameter of type " + p.dataType); } } catch { this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, $"Something went wrong registering input parameter {p.dataType}"); } } else { try { // Sorted by popularity order, estimated by my guts if (p.dataType == typeof(Param_Number)) { pManager.AddNumberParameter(p.name, p.nickname, p.description, p.access, (double)p.defaultValue); } else if (p.dataType == typeof(Param_Plane)) { pManager.AddPlaneParameter(p.name, p.nickname, p.description, p.access, (Plane)p.defaultValue); } else if (p.dataType == typeof(Param_Point)) { pManager.AddPointParameter(p.name, p.nickname, p.description, p.access, (Point3d)p.defaultValue); } else if (p.dataType == typeof(Param_Vector)) { pManager.AddVectorParameter(p.name, p.nickname, p.description, p.access, (Vector3d)p.defaultValue); } else if (p.dataType == typeof(Param_String)) { pManager.AddTextParameter(p.name, p.nickname, p.description, p.access, (string)p.defaultValue); } else if (p.dataType == typeof(Param_Boolean)) { pManager.AddBooleanParameter(p.name, p.nickname, p.description, p.access, (bool)p.defaultValue); } else if (p.dataType == typeof(Param_GenericObject)) { pManager.AddGenericParameter(p.name, p.nickname, p.description, p.access); // generic objects don't accept default values... } else if (p.dataType == typeof(Param_Integer)) { pManager.AddIntegerParameter(p.name, p.nickname, p.description, p.access, (int)p.defaultValue); } else if (p.dataType == typeof(Param_FilePath)) { pManager.AddPathParameter(p.name, p.nickname, p.description, p.access); // no def value accepted } // I don't think Machina uses any of these so far... else if (p.dataType == typeof(Param_Arc)) { pManager.AddArcParameter(p.name, p.nickname, p.description, p.access, (Arc)p.defaultValue); } else if (p.dataType == typeof(Param_Box)) { pManager.AddBoxParameter(p.name, p.nickname, p.description, p.access, (Box)p.defaultValue); } else if (p.dataType == typeof(Param_Brep)) { pManager.AddBrepParameter(p.name, p.nickname, p.description, p.access); // no def value accepted } else if (p.dataType == typeof(Param_Circle)) { pManager.AddCircleParameter(p.name, p.nickname, p.description, p.access, (Circle)p.defaultValue); } else if (p.dataType == typeof(Param_Colour)) { pManager.AddColourParameter(p.name, p.nickname, p.description, p.access, (Color)p.defaultValue); } else if (p.dataType == typeof(Param_Complex)) { pManager.AddComplexNumberParameter(p.name, p.nickname, p.description, p.access, (GH_ComplexNumber)p.defaultValue); } else if (p.dataType == typeof(Param_Culture)) { pManager.AddCultureParameter(p.name, p.nickname, p.description, p.access, (CultureInfo)p.defaultValue); } else if (p.dataType == typeof(Param_Curve)) { pManager.AddCurveParameter(p.name, p.nickname, p.description, p.access); // no def value } else if (p.dataType == typeof(Param_Field)) { pManager.AddFieldParameter(p.name, p.nickname, p.description, p.access); // no def val } else if (p.dataType == typeof(Param_Geometry)) { pManager.AddGeometryParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Group)) { pManager.AddGroupParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Interval2D)) { pManager.AddInterval2DParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Interval)) { pManager.AddIntervalParameter(p.name, p.nickname, p.description, p.access, (Interval)p.defaultValue); } else if (p.dataType == typeof(Param_Line)) { pManager.AddLineParameter(p.name, p.nickname, p.description, p.access, (Line)p.defaultValue); } else if (p.dataType == typeof(Param_Matrix)) { pManager.AddMatrixParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_MeshFace)) { pManager.AddMeshFaceParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Mesh)) { pManager.AddMeshParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Rectangle)) { pManager.AddRectangleParameter(p.name, p.nickname, p.description, p.access, (Rectangle3d)p.defaultValue); } else if (p.dataType == typeof(Param_ScriptVariable)) { pManager.AddScriptVariableParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Surface)) { pManager.AddSurfaceParameter(p.name, p.nickname, p.description, p.access); } else if (p.dataType == typeof(Param_Time)) { pManager.AddTimeParameter(p.name, p.nickname, p.description, p.access, (DateTime)p.defaultValue); } else if (p.dataType == typeof(Param_Transform)) { pManager.AddTransformParameter(p.name, p.nickname, p.description, p.access); } else { this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Cannot register parameter of type " + p.dataType); } } catch { this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, $"Something went wrong registering input parameter {p.dataType} with value {p.defaultValue}"); } } // If this last input is optional, flag it if (p.optional) { pManager[index].Optional = true; } }
protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddLineParameter("Lines", "L", "Lines for structure", GH_ParamAccess.list); pManager.AddNumberParameter("Tolerance", "e", "Tolerance for merging points", GH_ParamAccess.item); }