/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Position", "P", "Position", GH_ParamAccess.item); pManager.AddVectorParameter("Velocity", "V", "Velocity", GH_ParamAccess.item); pManager.AddVectorParameter("Acceleration", "A", "Acceleration", GH_ParamAccess.item); pManager.AddIntegerParameter("Lifespan", "L", "Lifespan", GH_ParamAccess.item); pManager.AddPointParameter("Ref Position", "RP", "Ref Position", GH_ParamAccess.item); }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Point 0", "P0", "First point of triangle", GH_ParamAccess.item); pManager.AddPointParameter("Point 1", "P1", "Second point of triangle", GH_ParamAccess.item); pManager.AddPointParameter("Point 2", "P2", "Third point of triangle", GH_ParamAccess.item); pManager.AddGenericParameter("Material", "M", "Defines material of triangle", GH_ParamAccess.item); pManager.AddNumberParameter("Thickness", "T", "Thickness of element", GH_ParamAccess.item); }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Food", "food", "food", GH_ParamAccess.list); //0 pManager[0].Optional = true; pManager.AddPointParameter("Origin", "origin", "origin", GH_ParamAccess.list); //1 pManager.AddNumberParameter("Step", "D", "Step distance", GH_ParamAccess.item,45); //2 pManager.AddNumberParameter("Infuence", "di", "Infuence distance", GH_ParamAccess.item,3); //3 pManager.AddNumberParameter("Kill-Eat", "dk", "Killing distance", GH_ParamAccess.item,1.2); //4 pManager.AddIntegerParameter("Iteraction", "loop", "Number of iteraction", GH_ParamAccess.item,1); //5 pManager.AddBooleanParameter("Reset", "reset", "Reset structure", GH_ParamAccess.item,false); //6 }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Sofistik Points", "Points", "Points for Sofistik", GH_ParamAccess.tree);//0 pManager.AddIntegerParameter("Sofistik Indexies", "PointIdxs", "Indexies for Sofistik", GH_ParamAccess.tree);//1 pManager.AddPointParameter("Sofistik Curve Points", "CrvPoints", "Curve Points for Sofistik", GH_ParamAccess.tree);//2 pManager.AddIntegerParameter("Sofistik Curve Indexies", "CrvPointIdxs", "Curve Indexies for Sofistik", GH_ParamAccess.tree);//3 pManager.AddBrepParameter("Sofistik Breps", "Breps", "Surfaces from each Component", GH_ParamAccess.tree); //4 pManager.AddIntegerParameter("Sofistik Breps Indexies", "BrepsIdx", "Breps Indexies for Sofistik", GH_ParamAccess.tree);//5 pManager.AddCurveParameter("Sofistik Curves", "Curves", "All Curves for Sofistik", GH_ParamAccess.tree);//6 }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Face Points", "FacePt", "Points of the face", GH_ParamAccess.tree); //0 pManager.AddIntegerParameter("Topology Points", "TopoPtIdx", "Topology points index of the face", GH_ParamAccess.tree); //1 pManager.AddVectorParameter("Face Normals", "FaceN", "Normal of the face", GH_ParamAccess.list); //2 pManager.AddIntegerParameter("Neighbour Face Index", "NFIdx", "Neighbouring faces", GH_ParamAccess.tree); //3 pManager.AddPointParameter("All Topology Points", "ATPC", "all topology points coordinates", GH_ParamAccess.list); //4 pManager.AddVectorParameter("Topology vertex normals", "TopNormals", "Normals of each topology vertex", GH_ParamAccess.list); //5 pManager.AddIntegerParameter("Face Topology Edge Indexies", "FaceTopEdgeIdx", "Indexies of topology edges foreach face", GH_ParamAccess.tree); //6 pManager.AddIntegerParameter("Topology Edge Topology Point Index", "TopEdgeTopPtsIdx", "Indexies of Topology Points foreach Topology Edge", GH_ParamAccess.tree); //7 pManager.AddIntegerParameter("Topology Point Connected Topology Edges Index", "TopPtsConnectedTopEdgeIdx", "Indexies of connected Topology Edges foreach Topology Point", GH_ParamAccess.tree); //8 }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddBrepParameter("Unrolled Breps", "UnrolledBreps", "Unrolled Breps", GH_ParamAccess.tree); //0 pManager.AddPlaneParameter("Planes for Orientation", "OrientPlanes", "1st item origin plane, 2nd item target plane", GH_ParamAccess.tree); //1 pManager.AddCurveParameter("Shared Curves", "SharedCrv", "Shared Curves between Stripes", GH_ParamAccess.tree); //2 pManager.AddPointParameter("Points", "P", "Points unrolled with Brep", GH_ParamAccess.tree);//3 }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddLineParameter("Lines", "ln", "The lines to display", GH_ParamAccess.list); pManager.AddPointParameter("DisplacedNodes", "pFinal", "The displaced nodes", GH_ParamAccess.list); pManager.AddNumberParameter("Displacement", "displ", "The nodal displacements", GH_ParamAccess.list); pManager.AddColourParameter("ColourRange", "c", "The colour range (use gradient)", GH_ParamAccess.list); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddCurveParameter("Polyline", "Pl", "A list of polylines to offset", GH_ParamAccess.item); pManager.AddPointParameter("Point", "P", "Offset Distance", GH_ParamAccess.item); pManager.AddPlaneParameter("Plane", "Pln", "Plane to project the polylines to", GH_ParamAccess.item, default(Plane)); pManager.AddNumberParameter("Tolerance", "T", "Tolerance: all floating point data beyond this precision will be discarded.", GH_ParamAccess.item, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Position", "pos", "The position of the load", GH_ParamAccess.list); pManager.AddVectorParameter("Load", "load", "The nodal load", GH_ParamAccess.list); pManager.AddColourParameter("Colour", "c", "The colour of the load", GH_ParamAccess.item, Color.DarkCyan); pManager.AddNumberParameter("Scale", "sc", "Scale factor", GH_ParamAccess.item, 1.0); }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddCurveParameter("Struts", "Struts", "Cleaned curve network.", GH_ParamAccess.list); pManager.AddPointParameter("Nodes", "Nodes", "List of unique nodes.", GH_ParamAccess.list); pManager.AddIntegerParameter("CurveStart", "I", "Index in 'Nodes' for the start of each curve in 'Struts'.", GH_ParamAccess.list); pManager.AddIntegerParameter("CurveEnd", "J", "Index in 'Nodes' for the end of each curve in 'Struts'.", GH_ParamAccess.list); }
/// <summary> /// Registers output parameters for component /// </summary> /// <param name="pManager"></param> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Points", "P", "New Points", GH_ParamAccess.list); pManager.AddNumberParameter("Radius", "R", "New radius", GH_ParamAccess.list); pManager.AddLineParameter("Acceleration", "A", "Draws lines to represent the acceleration of a point", GH_ParamAccess.list); pManager.AddLineParameter("Velocity", "V", "Draws lines to represent to velocity of a point. A good way to check if the system has settled is to attached the following to this output: Curve Length -> Mass Addition -> Data Recorder -> Quick Graph", GH_ParamAccess.list); pManager.AddNumberParameter("Brigthnesses", "B", "Current brightness of mesh at location of point", GH_ParamAccess.list); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("PinnedSupportPt", "pt", "The point to function as a support", GH_ParamAccess.item); pManager.AddBooleanParameter("XFixed", "X", "Set to true if the X direction is fixed", GH_ParamAccess.item, true); pManager.AddBooleanParameter("YFixed", "Y", "Set to true if the Y direction is fixed", GH_ParamAccess.item, true); pManager.AddBooleanParameter("ZFixed", "Z", "Set to true if the Z direction is fixed", GH_ParamAccess.item, true); pManager.AddNumberParameter("Strength", "strength", "The strength of a spring to fix the point in the desired directions", GH_ParamAccess.item, 1e15); }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Points", "Points", "Adaptive Points", GH_ParamAccess.list); pManager.AddTextParameter("Family", "Family", "Family name", GH_ParamAccess.item); pManager.AddTextParameter("Type", "Type", "Type name", GH_ParamAccess.item); int a = pManager.AddGenericParameter("Parameters", "Param", "Parameters", GH_ParamAccess.list); pManager[a].Optional = true; }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddBrepParameter("Triloop Stipes", "Stripes", "Input the 3 Stripes of each Triloop", GH_ParamAccess.tree); pManager.AddBooleanParameter("Merge Stripes", "Y", "Reorients unrolled surfaces to one connected surface", GH_ParamAccess.item); pManager.AddBooleanParameter("Switch", "Switch", "Switch", GH_ParamAccess.item); pManager.AddIntegerParameter("Seam", "Seam", "0: Seam on Inside, 1: Seam on Outside", GH_ParamAccess.item); pManager.AddPointParameter("Points", "P", "Points to unroll with Brep", GH_ParamAccess.tree); }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddNumberParameter("BucklingLoadFactor", "BLF", "The buckling load factor [-]", GH_ParamAccess.item); pManager.AddNumberParameter("LoadFactors", "LF", "Load factor for each iteration", GH_ParamAccess.list); pManager.AddNumberParameter("DisplacementRMS", "dRMS", "The displacements as a RMS value in [m] for each iteration", GH_ParamAccess.list); pManager.AddPointParameter("VertexPositions", "V", "The vertex positions for each iteration", GH_ParamAccess.tree); pManager.AddGenericParameter("GoalOutput", "O", "The output from the goals for each iteration. The data structure is identical to the PGoals input", GH_ParamAccess.tree); }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Points", "P", "Positions of node support", GH_ParamAccess.list); pManager.AddBooleanParameter("UX", "UX", "X direction", GH_ParamAccess.item); pManager.AddBooleanParameter("UY", "UY", "Y direction", GH_ParamAccess.item); pManager.AddBooleanParameter("UZ", "UZ", "Z direction", GH_ParamAccess.item); pManager.AddBooleanParameter("RX", "RX", "X rotation", GH_ParamAccess.item); pManager.AddBooleanParameter("RY", "RY", "Y rotation", GH_ParamAccess.item); pManager.AddBooleanParameter("RZ", "RZ", "Z rotation", GH_ParamAccess.item); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddGenericParameter("Topology", "Topo", "Unit cell topology", GH_ParamAccess.item); pManager.AddSurfaceParameter("Surface", "Surf", "Surface to conform to", GH_ParamAccess.item); pManager.AddPointParameter("Point", "Pt", "Point", GH_ParamAccess.item); pManager.AddIntegerParameter("Number u", "Nu", "Number of unit cells (u)", GH_ParamAccess.item, 5); pManager.AddIntegerParameter("Number v", "Nv", "Number of unit cells (v)", GH_ParamAccess.item, 5); pManager.AddIntegerParameter("Number w", "Nw", "Number of unit cells (w)", GH_ParamAccess.item, 5); pManager.AddBooleanParameter("Morph", "Morph", "If true, struts are morphed to the space as curves.", GH_ParamAccess.item, false); }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Centre Points L01", "Centers01", "Centre Points L01", GH_ParamAccess.tree); //0 pManager.AddPointParameter("Centre Points L02", "Centers02", "Centre Points L02", GH_ParamAccess.tree); //1 pManager.AddCurveParameter("Curves", "Curves", "Curves", GH_ParamAccess.tree); //2 pManager.AddCurveParameter("PlateCurves", "PlateCrvs", "Curves", GH_ParamAccess.tree); //3 pManager.AddPointParameter("Pentagon Points L01", "PentPtsL01", "planar pentagon like shape at L01", GH_ParamAccess.tree);//4 pManager.AddPointParameter("Pentagon Points L02", "PentPtsL02", "planar pentagon like shape at L02", GH_ParamAccess.tree);//5 pManager.AddIntegerParameter("Stripe Indentification", "StripeIdx", "Identification Numbers for each Stripe of a Component", GH_ParamAccess.tree);//6 pManager.AddBrepParameter("Stipe Geometry", "StripeGeo", "Geometry for each Stripe of a Component", GH_ParamAccess.tree);//7 pManager.AddPlaneParameter("Stipe Intersection Planes", "StripXPlanes", "Stipe planes for each Stripe of a Component", GH_ParamAccess.tree);//8 //// ======================================================================================= // Added by Gene pManager.AddCurveParameter("ExtendedCurves", "ExtendedCurves", "ExtendedCurves", GH_ParamAccess.tree); //9 pManager.AddBrepParameter("SingleStripeBreps", "SingleStripeBreps", "SingleStripeBreps", GH_ParamAccess.tree); //10 //// ======================================================================================= }
/// <summary> /// Registers input parameters for component /// </summary> /// <param name="pManager"></param> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Points", "P", "List of points for repulsion", GH_ParamAccess.list); pManager.AddNumberParameter("Radius", "R", "Radius of points", GH_ParamAccess.list); pManager.AddMeshParameter("Mesh", "M", "Mesh on which points will move.", GH_ParamAccess.item); pManager.AddNumberParameter("Damping", "D", "Damping the system. If damping=1, the system will keep running", GH_ParamAccess.item, 0.95); pManager.AddNumberParameter("Force", "F", "Force working between points", GH_ParamAccess.item, 15); pManager.AddColourParameter("Colour", "C", "Vertex Colours in same order as vertices", GH_ParamAccess.list); pManager.AddNumberParameter("Colour Sensitivity Repulsion", "CIRE", "1 = if black, then NO repulsion, 0 = same repulsions anywhere on mesh", GH_ParamAccess.item, 0.95); pManager.AddNumberParameter("Colour Sensitivity Radius", "CIRA", "1 = if black, then full radius, if white then radius = 0, 0 = radius doesn't change", GH_ParamAccess.item, 0.7); pManager.AddBooleanParameter("Reset", "Reset", "Resets the system", GH_ParamAccess.item, true); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Layer 01 Points", "PtL01", "[Tree<Point3d>input tree of points of layer 01", GH_ParamAccess.tree); pManager.AddPointParameter("Layer 02 Points", "PtL02", "[Tree<Point3d>input tree of points of layer 02", GH_ParamAccess.tree); pManager.AddIntegerParameter("Topology Points", "TopoPtIdx", "[Tree<int>]Topology points index of the face", GH_ParamAccess.tree); pManager.AddIntegerParameter("Neighbour Face Index", "NFIdx", "Neighbouring faces", GH_ParamAccess.tree); pManager.AddIntegerParameter("Face Topology Edge Indexies", "FaceTopEdgeIdx", "Indexies of topology edges foreach face", GH_ParamAccess.tree); pManager.AddPointParameter("Edge Centre L01", "EdgeCentreL01", "[Tree<Point3d>] Edge Centre Points foreach Face, L01", GH_ParamAccess.tree); pManager.AddPointParameter("Edge Centre L02", "EdgeCentreL02", "[Tree<Point3d>] Edge Centre Points foreach Face, L02", GH_ParamAccess.tree); pManager.AddNumberParameter("Curve Control Point Tangent Scalar", "CtrlPScalar", "[List<double>]Controls the size of the wholes per topological point", GH_ParamAccess.list); pManager.AddNumberParameter("Planar Pentagon Point Tangent Scalar", "PentPScalar", "[List<double>]Controls the size of the wholes per topological point", GH_ParamAccess.list); pManager.AddBooleanParameter("Plate?", "O/C", "[List<boolean>]Is the module closed or open", GH_ParamAccess.list); // ================================================================================================== // Gene Added pManager.AddBooleanParameter("Allow PolySrf", "Allow PolySrf", "Allow PolySrf", GH_ParamAccess.item, true); // ================================================================================================== }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { int c = pManager.AddTextParameter("Style", "Style", "Columnstyle name", GH_ParamAccess.item); int b = pManager.AddTextParameter("Layer", "Layer", "Layer name", GH_ParamAccess.item); pManager.AddPointParameter("PointTop", "Top", "Top point of the column", GH_ParamAccess.item); pManager.AddPointParameter("PointBottom", "Bottom", "Bottom point of the column", GH_ParamAccess.item); int a = pManager.AddGenericParameter("Parameters", "Param", "Parameters", GH_ParamAccess.list); pManager[a].Optional = true; pManager[b].Optional = true; pManager[c].Optional = true; }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Point", "pt", "The point where the load acts", GH_ParamAccess.item); pManager.AddVectorParameter("NodalForce", "F", "The nodal force in [N]", GH_ParamAccess.item); }
protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Location", "L", "Location", GH_ParamAccess.item); pManager.AddTextParameter("Name", "N", "Name", GH_ParamAccess.item); pManager.AddNumberParameter("Scale", "S", "Scale", GH_ParamAccess.item); pManager.AddBrepParameter("Surfaces", "Sf", "Surfaces", GH_ParamAccess.list); pManager.AddTextParameter("Parent Name", "PN", "Parent Name", GH_ParamAccess.item); pManager.AddBrepParameter("Inner", "I", "Inner", GH_ParamAccess.list); }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Location", "Location", "Camera Location", GH_ParamAccess.item); pManager.AddPointParameter("Target", "Target", "Camera Target", GH_ParamAccess.item); pManager.AddNumberParameter("Lens", "Lens", "Camera Lens Focal Length", GH_ParamAccess.item); pManager.AddVectorParameter("Up", "Up", "Camera's Up (Z) vector", GH_ParamAccess.item); }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddMeshParameter("RhinoMesh", "RhinoMesh", "RhinoMesh", GH_ParamAccess.item); pManager.AddIntegerParameter("Plates ID List", "Plates ID List", "Plates ID List", GH_ParamAccess.list); pManager.AddNumberParameter("Min. Thickness", "Min. Thickness", "Min. Thickness", GH_ParamAccess.item, 0.3); pManager.AddNumberParameter("Max. Thickness", "Max. Thickness", "Max. Thickness", GH_ParamAccess.item, 1.0); pManager.AddPointParameter("Attr. ThicknessPts", "Attr. ThicknessPts", "Attr. ThicknessPts", GH_ParamAccess.list, new Point3d(10000, 10000, 10000)); pManager.AddBooleanParameter("H. EffectThickness", "H. EffectThickness", "H. EffectThickness", GH_ParamAccess.item, false); pManager.AddPointParameter("Closed Panel Area", "Closed Panel Area", "Closed Panel Area", GH_ParamAccess.list, new Point3d()); pManager.AddNumberParameter("Panel Effect Area", "Panel Effect Area", "Panel Effect Area", GH_ParamAccess.item, 0.001); pManager.AddBooleanParameter("Auto Gen Plates", "Auto Gen Plates", "Auto Gen Plates", GH_ParamAccess.item, true); pManager.AddNumberParameter("Plate Offset", "Plate Offset", "Plate Offset", GH_ParamAccess.item, 0.5); pManager.AddNumberParameter("Threads", "Threads", "Threads", GH_ParamAccess.item, 1.0); pManager.AddNumberParameter("ThreadsP", "ThreadsP", "ThreadsP", GH_ParamAccess.item, 1.0); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Points", "Pts", "A point or a list of points that emit agents.", GH_ParamAccess.list); }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("InitialPositions", "pInit", "The initial positions", GH_ParamAccess.list); pManager.AddPointParameter("FinalPositions", "pFinal", "The final positions", GH_ParamAccess.list); }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Points", "Points", "Ouline Points", GH_ParamAccess.list); pManager.AddTextParameter("View", "View", "View name", GH_ParamAccess.item); int b = pManager.AddTextParameter("Pattern", "Pattern", "Pattern name", GH_ParamAccess.item); pManager[b].Optional = true; int a = pManager.AddGenericParameter("Parameters", "Param", "Parameters", GH_ParamAccess.list); pManager[a].Optional = true; }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Points", "Points", "Topography Points", GH_ParamAccess.list); int a = pManager.AddGenericParameter("Parameters", "Param", "Parameters", GH_ParamAccess.list); pManager[a].Optional = true; }
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { List<int> optionals = new List<int>(); pManager.AddPointParameter("Points", "Points", "Insertion Points", GH_ParamAccess.list); optionals.Add(pManager.AddTextParameter("View", "View", "View name", GH_ParamAccess.item)); optionals.Add(pManager.AddTextParameter("level", "level", "Level name", GH_ParamAccess.item)); pManager.AddTextParameter("Family", "Family", "Family name", GH_ParamAccess.item); pManager.AddTextParameter("Type", "Type", "Type name", GH_ParamAccess.item); optionals.Add(pManager.AddGenericParameter("Host", "Host", "Host", GH_ParamAccess.item)); optionals.Add(pManager.AddGenericParameter("Parameters", "Param", "Parameters", GH_ParamAccess.list)); optionals.Add(pManager.AddGenericParameter("StructuralType", "Struct", "Structural Type [Not Structural]", GH_ParamAccess.item)); foreach (int a in optionals) pManager[a].Optional = true; }