public static void CreateNewObject(IGH_DocumentObject obj, IGH_Param target, bool isInputSide, int index = 0, float leftMove = 100, string init = null) { if (obj == null) { return; } PointF comRightCenter = new PointF(target.Attributes.Bounds.Left + (isInputSide ? -leftMove:(leftMove + target.Attributes.Bounds.Width)), target.Attributes.Bounds.Top + target.Attributes.Bounds.Height / 2); if (obj is GH_Component) { GH_Component com = obj as GH_Component; CanvasRenderEngine.AddAObjectToCanvas(com, comRightCenter, false, init); if (isInputSide) { target.AddSource(com.Params.Output[index]); } else { com.Params.Input[index].AddSource(target); } //com.Params.Output[outIndex].Recipients.Add(target); target.OnPingDocument().NewSolution(false); } else if (obj is IGH_Param) { IGH_Param param = obj as IGH_Param; CanvasRenderEngine.AddAObjectToCanvas(param, comRightCenter, false, init); if (isInputSide) { target.AddSource(param); } else { param.AddSource(target); } target.OnPingDocument().NewSolution(false); } else { target.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, LanguagableComponent.GetTransLation(new string[] { "The added object is not a Component or Parameters!", "添加的对象不是一个运算器或参数!", })); } }