Help to convert brep to gh_brep

Hi, how can I fix this last line error to get the output?

var of = offset[0];
                                            da.SetDataTree(0,GH_Brep(of));

protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager)
                                {
                                    pManager.AddBrepParameter("PolySrf", "P", "PolySrf", GH_ParamAccess.item);
                                    pManager.AddNumberParameter("Distance", "d", "Distance Of Offset", GH_ParamAccess.item);
                                    pManager.AddBooleanParameter("Soild", "S", "Soild?", GH_ParamAccess.item);
                                    pManager.AddBooleanParameter("BothSide", "B", "BothSide?", GH_ParamAccess.item);
                                    pManager.AddBooleanParameter("round","R", "round?", GH_ParamAccess.item);
                                    pManager.AddBooleanParameter("MergFace","M", "MergFace?", GH_ParamAccess.item);
            }

                                protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager)
                                {
                                    pManager.AddBrepParameter("Brep", "B", "Brep", GH_ParamAccess.item);
                                }

                                protected override void SolveInstance(IGH_DataAccess da
                                )
                                {
                                    Brep p = new Brep();
                                    var d = 0.00;
                                    var s = false;
                                    var b = false;
                                    var r = true;
                                    var m = false;
                                    Brep[] blends = null;
                                    Brep[] walls = null;
                                    Brep[] offset = null;
                                    da.GetData(0, ref p);
                                    da.GetData(1, ref d);
                                    da.GetData(2, ref s);
                                    da.GetData(3, ref b);
                                    da.GetData(4, ref r);
                                    da.GetData(5, ref m);
                                    p.Faces.SplitKinkyFaces(0.1, true);
                                    if (b)
                                    {
                                        offset = Brep.CreateOffsetBrep(p, d * (-1), false, r,
                                            Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance, out blends, out walls);
                                        offset = Brep.CreateOffsetBrep(offset[0], d * (2), true, r,
                                            Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance, out blends, out walls);
                                    }
                                    else
                                    {
                                        offset = Brep.CreateOffsetBrep(p, d, s, r,
                                            Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance, out blends, out walls);
                                    }

                                    if (m)
                                    {
                                        var brep = offset[0]
                                            .MergeCoplanarFaces(Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance);
                                        {
                                            var of = offset[0];
                    bool v1 = da.SetData(0, GH_Brep(of));
                    var v = v1;


                                        }
                                    }
                                }
Error	CS1955	Non-invocable member 'GH_Brep' cannot be used like a method.

protected override void SolveInstance(IGH_DataAccess da)
{
    Brep p = null;
    var d = 0.0;
    var s = false;
    var b = false;
    var r = false;
    var m = false;
    da.GetData(0, ref p);
    da.GetData(1, ref d);
    da.GetData(2, ref s);
    da.GetData(3, ref b);
    da.GetData(4, ref r);
    da.GetData(5, ref m);
    Brep[] offset;
    p.Faces.SplitKinkyFaces(0.1, true);
    if (b)
    {
        offset = Brep.CreateOffsetBrep(p, -d, false, r, DocumentTolerance(), out _, out _);
        offset = Brep.CreateOffsetBrep(offset[0], d * 2, true, r, DocumentTolerance(), out _, out _);
    }
    else
        offset = Brep.CreateOffsetBrep(p, d, s, r, DocumentTolerance(), out _, out _);

    if (m)
        offset[0].MergeCoplanarFaces(DocumentTolerance());
    da.SetData(0, offset[0]);
}

Ehsan.zip (21.5 KB)

1 Like

Thanks @Mahdiyar

Another question I want to list TMP) Exit the BREP from the PHPont Output, but if I tested Setdata, I did not test the accuseslist mode. But


     else if (b==true && s!=true)
                                    {
                                        var tmp = new List<Brep>();
                                    offset = Brep.CreateOffsetBrep(p, d * (-1), false, r, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance, out _, out _);

                                    var tmp2 = offset[0].DuplicateBrep();
                                    offset = Brep.CreateOffsetBrep(offset[0], d * (2), false, r, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance, out _, out _);
                                    tmp.Add(tmp2);tmp.Add(offset[0]);
                                    da.SetData(0, tmp);

eh.s.zip (59.6 KB)


IMG_20210617_071123_286

Have this error

Hope this help:

protected override void SolveInstance(IGH_DataAccess da)
{
    Brep p = null;
    var d = 0.00;
    var s = false;
    var b = false;
    var r = true;
    var m = false;
    da.GetData(0, ref p);
    da.GetData(1, ref d);
    da.GetData(2, ref s);
    da.GetData(3, ref b);
    da.GetData(4, ref r);
    da.GetData(5, ref m);
    List<Brep> breps;
    var tol = DocumentTolerance();
    p.Faces.SplitKinkyFaces(0.1, true);
    switch (b)
    {
        case true when s:
            breps = Brep.CreateOffsetBrep(p, -d, false, r, tol, out _, out _).ToList();
            breps = Brep.CreateOffsetBrep(breps[0], 2 * d, true, r, tol, out _, out _).ToList();
            if (m)
                breps[0].MergeCoplanarFaces(tol);
            break;
        case true:
            breps = Brep.CreateOffsetBrep(p, -d, false, r, tol, out _, out _).ToList();
            breps.AddRange(Brep.CreateOffsetBrep(breps[0], 2 * d, false, r, tol, out _, out _));
            break;
        default:
            breps = Brep.CreateOffsetBrep(p, d, s, r, tol, out _, out _).ToList();
            break;
    }
    da.SetDataList(0, breps);
}
1 Like