Beispiel #1
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddTextParameter("d", "data", "data from interface", GH_ParamAccess.list);
     pManager.AddGeometryParameter("C", "Columns", "Columns", GH_ParamAccess.item);
     pManager.AddGeometryParameter("P", "Plinth", "Plinth", GH_ParamAccess.item);
     pManager.AddGeometryParameter("S", "Swing", "Swing", GH_ParamAccess.item);
     pManager.AddPointParameter("A", "Anchors", "Anchors", GH_ParamAccess.list);
 }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("A: Point/Curve", "A", "Root geometry (Point / Curve) of this Elastic Coupling", GH_ParamAccess.list);
     pManager.AddGeometryParameter("B: Reference Point/Curve", "B", "Reference geometry (Point / Curve) of this Elastic Coupling", GH_ParamAccess.list);
     pManager.AddIntegerParameter("Group", "Group", "Group number of this Elastic Coupling", GH_ParamAccess.list, 0);
     pManager.AddNumberParameter("Axial Stiffness", "Ax. Stf.", "Stiffness of this Elastic Coupling in axial direction [kN/m^3]", GH_ParamAccess.list, 0.0);
     pManager.AddNumberParameter("Rotational Stiffness", "Rot. Stf", "Stiffness of this Elastic Coupling in rotational direction [kNm/rad]", GH_ParamAccess.list, 0.0);
     pManager.AddVectorParameter("Explicit Direction", "Dir", "Explicit Direction of this Elastic Coupling. If no direction is given, the Coupling is aligned towards its reference point (default)", GH_ParamAccess.list, new Vector3d());
 }
Beispiel #3
0
    protected override void RegisterInputParams(GH_InputParamManager pManager)
    {
        pManager.AddMeshParameter("Boundary mesh", "B", "Boundary mesh.", GH_ParamAccess.item);
        pManager.AddNumberParameter("Voxel size", "S", "Length of the voxel edges.", GH_ParamAccess.item);
        pManager.AddCurveParameter("Curves for alignment", "A", "Curves for alignment.", GH_ParamAccess.list);
        pManager.AddNumberParameter("Alignment max distance", "Ad", "The weighted average direction of curves within this distance will be used. If no curves are within this distance the voxel is removed. Use 0 for closest curve only.", GH_ParamAccess.item);
        pManager.AddGenericParameter("Attractors for types", "D", "Types are selected based on the distance to this geometry. Only points and curves are supported.", GH_ParamAccess.list);
        pManager.AddNumberParameter("Attractors max distance", "Dd", "Max distance for the last type.", GH_ParamAccess.item);
        pManager.AddGeometryParameter("Face types", "Ft", "Face types. Only one geometry object per type. If a type consists on multiple objects, use a group object.", GH_ParamAccess.list);
        pManager.AddGeometryParameter("Edge types", "Et", "Edge types.", GH_ParamAccess.list);
        pManager.AddGeometryParameter("Corner types", "Ct", "Corner types.", GH_ParamAccess.list);

        pManager[6].Optional = true;
        pManager[7].Optional = true;
        pManager[8].Optional = true;
    }
Beispiel #4
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Geometry", "G", "Geometry to arrange", GH_ParamAccess.list);
     pManager.AddIntegerParameter("Items in Row", "I", "How many items to include in each row",
                                  GH_ParamAccess.item, 10);
     pManager.AddNumberParameter("Spacing", "S", "The minimum spacing between items", GH_ParamAccess.item, 2.0);
 }
 /// <summary>
 /// Registers all the input parameters for this component.
 /// </summary>
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Geometry", "G", "Geometry to voxelate", GH_ParamAccess.list);
     pManager.AddParameter(new Param_ScalarGrid());
     pManager.AddNumberParameter("Exponent", "E", "1 = linear, 2=quadratic, 3=cubic", GH_ParamAccess.list, 1);
     pManager.AddNumberParameter("Mass", "M", "Mass of the voxelated object", GH_ParamAccess.list);
 }
Beispiel #6
0
        protected override void RegisterInputParams(GH_InputParamManager pManager)
        {
            //0
            pManager.AddGeometryParameter("Geometry", "Geom", "Input Surface or Mesh", GH_ParamAccess.item);

            //1
            pManager.AddGenericParameter("TargetLengthFunction", "L", "A function determining local edge length", GH_ParamAccess.item);

            //2
            pManager.AddCurveParameter("FixCurves", "FixC", "Curves which will be kept sharp during remeshing. Can be boundary or internal curves", GH_ParamAccess.list);
            pManager[2].Optional = true;

            //3
            pManager.AddPointParameter("FixVertices", "FixV", "Points to keep fixed during remeshing", GH_ParamAccess.list);
            pManager[3].Optional = true;

            //4
            pManager.AddIntegerParameter("Flip", "Flip", "Criterion used to decide when to flip edges (0 for valence based, 1 for angle based)", GH_ParamAccess.item, 1);

            //5
            pManager.AddNumberParameter("PullStrength", "Pull", "Strength of pull to target geometry (between 0 and 1). Set to 0 for minimal surfaces", GH_ParamAccess.item, 0.8);

            //6
            pManager.AddIntegerParameter("Iterations", "Iter", "Number of steps between outputs", GH_ParamAccess.item, 1);

            //7
            pManager.AddBooleanParameter("Reset", "Reset", "True to initialize, false to run remeshing. Connect a timer for continuous remeshing", GH_ParamAccess.item, true);
        }
Beispiel #7
0
        protected override void RegisterInputParams(GH_InputParamManager pManager)
        {
            //0
            pManager.AddGeometryParameter("Geometry", "Geom", "Input Surface or Mesh", GH_ParamAccess.item);

            //1
            pManager.AddGenericParameter("TargetLengthFunction", "L", "A function determining local edge length", GH_ParamAccess.item);

            //2
            pManager.AddCurveParameter("FixCurves", "FixC", "Curves which will be kept sharp during remeshing. Can be boundary or internal curves", GH_ParamAccess.list);
            pManager[2].Optional = true;

            //3
            pManager.AddPointParameter("FixVertices", "FixV", "Points to keep fixed during remeshing", GH_ParamAccess.list);
            pManager[3].Optional = true;

            //4
            pManager.AddIntegerParameter("Flip", "Flip", "Criterion used to decide when to flip edges (0 for valence based, 1 for angle based)", GH_ParamAccess.item, 1);

            //5
            pManager.AddNumberParameter("PullStrength", "Pull", "Strength of pull to target geometry (between 0 and 1). Set to 0 for minimal surfaces", GH_ParamAccess.item, 0.8);

            //6
            pManager.AddIntegerParameter("Iterations", "Iter", "Number of steps between outputs", GH_ParamAccess.item, 1);

            //7
            pManager.AddBooleanParameter("Reset", "Reset", "True to initialize, false to run remeshing. Connect a timer for continuous remeshing", GH_ParamAccess.item, true);
        }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Geometry", "G", "Geometry to bake into BricsCAD", GH_ParamAccess.item);
     pManager[pManager.AddParameter(new ElementType(), "ElementType", "T", "Element Type", GH_ParamAccess.item)].Optional = true;
     pManager[pManager.AddParameter(new SpatialLocation(), "SpatialLocation", "SL", "Spatial location", GH_ParamAccess.item)].Optional = true;
     pManager[pManager.AddParameter(new Profile(), "Profile", "P", "Assigned profile", GH_ParamAccess.item)].Optional = true;
 }
Beispiel #9
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Geometry", "G", "Geometry.", GH_ParamAccess.item);
     pManager.AddParameter(new Param_OGLShader(), "Shader", "S", "Shader to attach to geometry.", GH_ParamAccess.item);
     pManager.AddTextParameter("Layer", "L", "Layer name.", GH_ParamAccess.item);
     pManager[1].Optional = true;
     pManager[2].Optional = true;
 }
Beispiel #10
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Hosting Curve", "Crv", "Hosting Curve / SOFiSTiK Structural Line", GH_ParamAccess.list);
     pManager.AddIntegerParameter("LoadCase", "LoadCase", "Id of Load Case", GH_ParamAccess.list, 1);
     pManager.AddVectorParameter("Force", "Force", "Acting Force", GH_ParamAccess.list, new Vector3d());
     pManager.AddVectorParameter("Moment", "Moment", "Acting Moment", GH_ParamAccess.list, new Vector3d());
     pManager.AddBooleanParameter("HostLocal", "HostLocal", "Use local coordinate system of host", GH_ParamAccess.list, false);
 }
Beispiel #11
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     //pManager.AddNumberParameter("Intersection tolerance", "TOLG", "Intersection tolerance", GH_ParamAccess.item, 0.01);
     //pManager.AddBooleanParameter("Create mesh", "MESH", "Activates mesh generation", GH_ParamAccess.item, true);
     //pManager.AddNumberParameter("Mesh density", "HMIN", "Allows to set the global mesh density in [m]", GH_ParamAccess.item, 1.0);
     //pManager.AddTextParameter("Additional text input", "TXT", "Additional SOFiMSHC text input", GH_ParamAccess.item, string.Empty);
     pManager.AddGeometryParameter("Loads", "Ld", "Collection of SOFiSTiK Loads", GH_ParamAccess.list);
 }
Beispiel #12
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     //IL_0001: Unknown result type (might be due to invalid IL or missing references)
     //IL_001b: Expected O, but got Unknown
     pManager.AddParameter((IGH_Param)(object)new Param_Guid(), "Rhino Geometry", "R", "Reference Rhino-Object to replace", (GH_ParamAccess)1);
     pManager.AddGeometryParameter(Resources.GeoSub, "G", "Basic geometry to replace with (Brep,Surface,Curve,Point)", (GH_ParamAccess)1);
     pManager.AddGenericParameter("Attributes", "A", "", GH_ParamAccessList)
 }
Beispiel #13
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Point / Curve", "Pt/Crv", "Structural Element (Point/Line) or Geometry Point / Curve", GH_ParamAccess.list);
     pManager.AddIntegerParameter("Group", "Group", "Group number of this spring", GH_ParamAccess.list, 0);
     pManager.AddNumberParameter("Axial Stiffness", "Ax. Stf.", "Stiffness of this spring in axial direction [kN/m^3]", GH_ParamAccess.list, 0.0);
     pManager.AddNumberParameter("Rotational Stiffness", "Rot. Stf", "Stiffness of this spring in rotational direction [kNm/rad]", GH_ParamAccess.list, 0.0);
     pManager.AddVectorParameter("Direction", "Dir", "Explicit Direction of this spring", GH_ParamAccess.list, new Vector3d(0, 0, 1));
 }
Beispiel #14
0
        protected override void RegisterInputParams(GH_InputParamManager pManager)
        {
            pManager.AddGeometryParameter("Ld", "Ld", "Collection of SOFiSTiK Load Items", GH_ParamAccess.list);
            pManager.AddGenericParameter("LoadCase", "Lc", "SOFiSTiK LoadCase Definition", GH_ParamAccess.list);
            pManager.AddTextParameter("User Text", "User Text", "Additional text input being placed after the definition of loads", GH_ParamAccess.item, string.Empty);

            pManager[1].Optional = true;
        }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Region", "R", "Boundary region as either a planar polyline or a mesh.", GH_ParamAccess.item);
     pManager.AddCurveParameter("Polylines", "P", "Polylines to grow.", GH_ParamAccess.list);
     pManager.AddNumberParameter("Radius", "R", "Collision radius.", GH_ParamAccess.item);
     pManager.AddIntegerParameter("Iterations", "I", "Simulation iterations.", GH_ParamAccess.item);
     pManager.AddIntegerParameter("Convergence", "C", "Convergence iterations.", GH_ParamAccess.item);
 }
Beispiel #16
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddPointParameter("Origin", "O", "Distribution origin.", GH_ParamAccess.item, Point3d.Origin);
     pManager.AddGeometryParameter("Geometry", "G", "Geometry to distribute.", GH_ParamAccess.list);
     pManager.AddPlaneParameter("Geometry planes", "P", "Planes for each piece of geometry.", GH_ParamAccess.list);
     pManager.AddNumberParameter("XSpacing", "X", "Spacing in the X-direction.", GH_ParamAccess.item, 2000.0);
     pManager.AddNumberParameter("YSpacing", "Y", "Spacing in the Y-direction.", GH_ParamAccess.item, 1000.0);
     pManager.AddIntegerParameter("NumColumns", "N", "Number of columns in the distribution.", GH_ParamAccess.item, 4);
 }
Beispiel #17
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Structural Elements", "Se", "Collection of SOFiSTiK Structural elements", GH_ParamAccess.list);
     pManager.AddTextParameter("Control Values", "Ctrl", "Additional SOFiMSHC control values", GH_ParamAccess.item, string.Empty);
     pManager.AddNumberParameter("Intersection tolerance", "Tolg", "Geometric intersection tolerance", GH_ParamAccess.item, 0.01);
     pManager.AddBooleanParameter("Create mesh", "Mesh", "Activates mesh generation", GH_ParamAccess.item, true);
     pManager.AddNumberParameter("Mesh density", "Hmin", "Allows to set the global mesh density (called Hmin in SOFiSTiK) in [m]", GH_ParamAccess.item, 1.0);
     pManager.AddTextParameter("Text input", "Text", "Additional input being placed after the definition of structural elements", GH_ParamAccess.item, string.Empty);
 }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Hosting Point / Spt", "Pt / Spt", "Hosting Point / SOFiSTiK Structural Point", GH_ParamAccess.list);
     pManager.AddIntegerParameter("LoadCase", "LoadCase", "Id of Load Case", GH_ParamAccess.list, 1);
     pManager.AddVectorParameter("Force", "Force", "Acting Force [kN]", GH_ParamAccess.list, new Vector3d());
     pManager.AddVectorParameter("Moment", "Moment", "Acting Moment [kNm]", GH_ParamAccess.list, new Vector3d());
     pManager.AddVectorParameter("Displacement", "Disp", "Displacement [mm]", GH_ParamAccess.list, new Vector3d());
     pManager.AddVectorParameter("Rotational Displacement", "RotDisp", "Rotational Displacement [rad]", GH_ParamAccess.list, new Vector3d());
     pManager.AddBooleanParameter("HostLocal", "HostLocal", "Use local coordinate system of host", GH_ParamAccess.list, false);
 }
Beispiel #19
0
        /// <summary>
        /// Registers all the input parameters for this component.
        /// </summary>
        protected override void RegisterInputParams(GH_InputParamManager pManager)
        {
            pManager.AddGeometryParameter("Geoemtry", "G", "Geoemtry", GH_ParamAccess.tree);
            pManager.AddColourParameter("Color", "C", "Color for geometry", GH_ParamAccess.list);
            pManager.AddIntegerParameter("Style", "DS", "Rhino Display Style", GH_ParamAccess.item);
            pManager.AddIntegerParameter("Size", "S", "Size of geometry", GH_ParamAccess.item);

            pManager[2].Optional = true;
            pManager[3].Optional = true;
        }
Beispiel #20
0
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Structural Elements", "Se", "Collection of SOFiSTiK Structural elements", GH_ParamAccess.list);
     pManager.AddBooleanParameter("Init System", "Init System", "Initializes a new SOFiSTiK calculation system. At least one SOFiMSHC component needs this to be true. If true, all existing system data gets deleted", GH_ParamAccess.item, true);
     pManager.AddBooleanParameter("Create mesh", "Create Mesh", "Activates mesh generation", GH_ParamAccess.item, true);
     pManager.AddNumberParameter("Mesh Density", "Mesh Density", "Sets the maximum element size in [m] (parameter HMIN in SOFiMSHC)", GH_ParamAccess.item, 0.0);
     pManager.AddNumberParameter("Intersection tolerance", "Tolerance", "Geometric intersection tolerance in [m]", GH_ParamAccess.item, 0.01);
     pManager.AddIntegerParameter("Start Index", "Start Index", "Start index for automatically assigned element numbers", GH_ParamAccess.item, 10000);
     pManager.AddTextParameter("Control Values", "Add. Ctrl", "Additional SOFiMSHC control values", GH_ParamAccess.item, string.Empty);
     pManager.AddTextParameter("User Text", "User Text", "Additional text input being placed after the definition of structural elements", GH_ParamAccess.item, string.Empty);
 }
Beispiel #21
0
 void Inputs(GH_InputParamManager pManager)
 {
     pManager.AddCurveParameter("Polylines", "P", "Polylines", GH_ParamAccess.list);
     pManager.AddNumberParameter("Variables", "V", "0. Extrusion diameter (mm).\r\n1. Plunge distance (mm).\r\n2. Unsupported nodes vertical offset (mm).\r\n3. Unsupported segments rotation compensation (rad). \r\n4. Distance ahead to stop in upwards segments as a factor of length (0..1).\r\n5. Horizontal displacement before downward segment (mm).", GH_ParamAccess.list);
     pManager.AddParameter(new TargetParameter(), "Target", "T", "Target reference. Will use tool, frame and orientation of this target.", GH_ParamAccess.item);
     pManager.AddNumberParameter("Speeds", "S", "0. Approach speed.\r\n1. Plunge speed.\r\n2. Supported segments\r\n3. Downward segments\r\n4. Unsupported nodes", GH_ParamAccess.list);
     pManager.AddNumberParameter("Wait times", "W", "0. Wait time after extrusion.\r\n1. Wait time ahead stop.\r\n2. Wait on supported node before unsupported segment.\r\n3. Wait on unsupported node.", GH_ParamAccess.list);
     pManager.AddIntegerParameter("Digital outputs", "D", "The indices of the two digital outputs connected to the extruder.", GH_ParamAccess.list);
     pManager.AddGeometryParameter("Environment", "E", "Environment to detect supported nodes and segments. Should be only meshes or polylines.", GH_ParamAccess.list);
     pManager[6].Optional = true;
 }
Beispiel #22
0
        protected override void RegisterInputParams(GH_InputParamManager manager)
        {
            var templatePath = new Grasshopper.Kernel.Parameters.Param_FilePath();

            templatePath.FileFilter = "Family Template Files (*.rft)|*.rft";
            manager[manager.AddParameter(templatePath, "Template", "T", string.Empty, GH_ParamAccess.item)].Optional = true;

            manager.AddBooleanParameter("OverrideFamily", "O", "Override Family", GH_ParamAccess.item, false);
            manager.AddBooleanParameter("OverrideParameters", "O", "Override Parameters", GH_ParamAccess.item, false);

            manager.AddTextParameter("Name", "N", string.Empty, GH_ParamAccess.item);
            manager[manager.AddParameter(new Parameters.Category(), "Category", "C", string.Empty, GH_ParamAccess.item)].Optional = true;
            manager[manager.AddGeometryParameter("Geometry", "G", string.Empty, GH_ParamAccess.list)].Optional = true;
        }
Beispiel #23
0
        /// <summary>
        /// Registers all the input parameters for this component.
        /// </summary>
        protected override void RegisterInputParams(GH_InputParamManager pManager)
        {
            pManager.AddGeometryParameter("Location", "L", "Location to locate the symbol", GH_ParamAccess.list);
            pManager.AddBooleanParameter("Fix X", "FX", "Toogle to fix x translation", GH_ParamAccess.item, constraint_X);
            pManager.AddBooleanParameter("Fix Y", "FY", "Toogle to fix y translation", GH_ParamAccess.item, constraint_Y);
            pManager.AddBooleanParameter("Fix Z", "FZ", "Toogle to fix z translation", GH_ParamAccess.item, constraint_Z);
            pManager.AddBooleanParameter("Fix RX", "RX", "Toogle to fix rotation around x axis", GH_ParamAccess.item, constraint_RX);
            pManager.AddBooleanParameter("Fix RY", "RY", "Toogle to fix rotation around y axis", GH_ParamAccess.item, constraint_RY);
            pManager.AddBooleanParameter("Fix RZ", "RZ", "Toogle to fix rotation around z axis", GH_ParamAccess.item, constraint_RZ);
            pManager.AddNumberParameter("Scale", "S", "Parameter to scale the symbol", GH_ParamAccess.item, scale);

            pManager[1].Optional = true;
            pManager[2].Optional = true;
            pManager[3].Optional = true;
            pManager[4].Optional = true;
            pManager[5].Optional = true;
            pManager[6].Optional = true;
            pManager[7].Optional = true;
        }
        protected override void RegisterInputParams(GH_InputParamManager pManager)
        {
            pManager.AddBooleanParameter("Run", "R", "Set to true to begin the export", GH_ParamAccess.item, false);
            pManager.AddGeometryParameter("Geometry to Export", "G", "The geometry you want to export.",
                                          GH_ParamAccess.list);
            pManager.AddTextParameter("Export Path", "P", "The path to export to. File type will be inferred from file extension.", GH_ParamAccess.item);
            var atts = pManager.AddGenericParameter("Attributes", "att",
                                                    "The object attributes to assign to each piece of geometry. Layer name input on this component will be ignored.",
                                                    GH_ParamAccess.list);

            pManager[atts].Optional = true;
            var layname = pManager.AddTextParameter("Layer Names", "L", "The layer names to bake to. \n" +
                                                    "These layers will be created for the \n" +
                                                    "export and then deleted afterwards if \n" +
                                                    "they did not already exist. If this input \n" +
                                                    "is supplied, the Attributes input will be \n" +
                                                    "ignored.", GH_ParamAccess.list);

            pManager[layname].Optional = true;
        }
Beispiel #25
0
 protected override void RegisterInputParams(GH_InputParamManager manager)
 {
     manager.AddGeometryParameter("Geometry", "G", string.Empty, GH_ParamAccess.list);
     manager[manager.AddParameter(new Parameters.Category(), "Category", "C", string.Empty, GH_ParamAccess.item)].Optional = true;
     manager[manager.AddTextParameter("Name", "N", string.Empty, GH_ParamAccess.item)].Optional = true;
 }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Curve", "C", "Curve to close", GH_ParamAccess.list);
     pManager.AddNumberParameter("Tolerance", "T", "Tolerance for curve close operation", GH_ParamAccess.item, 0.0);
     pManager[1].Optional = true;
 }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     _geometryIn  = pManager.AddGeometryParameter("Geometry", "G", "Geometry", GH_ParamAccess.tree);
     _transformIn = pManager.AddTransformParameter("Transform", "T", "Transform", GH_ParamAccess.tree);
 }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Geometries", "G", "", GH_ParamAccess.list);
 }
 protected override void RegisterInputParams(GH_InputParamManager pManager)
 {
     pManager.AddGeometryParameter("Geometry", "G", "Geometry to center", GH_ParamAccess.item);
 }
        /// <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.AddGeometryParameter("Geometry", "G", "Geometry to voxelate", GH_ParamAccess.list);
     pManager.AddParameter(new Param_PixelGrid());
 }