Ejemplo n.º 1
0
        protected override void TrySolveInstance(IGH_DataAccess DA)
        {
            Types.GraphicalElement element = null;
            if (!DA.GetData("Element", ref element))
            {
                return;
            }

            var _Level_ = Params.IndexOfOutputParam("Level");

            if (_Level_ >= 0)
            {
                DA.SetData(_Level_, element.Level);
            }

            var _Box_ = Params.IndexOfOutputParam("Box");

            if (_Box_ >= 0)
            {
                var box = element.Box;
                if (box.IsValid)
                {
                    DA.SetData(_Box_, box);
                }
            }

            var _Location_ = Params.IndexOfOutputParam("Location");

            if (_Location_ >= 0)
            {
                var location = element.Location;
                if (location.IsValid)
                {
                    DA.SetData(_Location_, element.Location);
                }
            }

            var _Orientation_ = Params.IndexOfOutputParam("Orientation");

            if (_Orientation_ >= 0)
            {
                var orientation = element.Orientation;
                if (orientation.IsValid && !orientation.IsZero)
                {
                    DA.SetData(_Orientation_, orientation);
                }
            }

            var _Handing_ = Params.IndexOfOutputParam("Handing");

            if (_Handing_ >= 0)
            {
                var handing = element.Orientation;
                if (handing.IsValid && !handing.IsZero)
                {
                    DA.SetData(_Handing_, handing);
                }
            }

            var _Curve_ = Params.IndexOfOutputParam("Curve");

            if (_Curve_ >= 0)
            {
                DA.SetData(_Curve_, element.Curve);
            }
        }
        protected override void TrySolveInstance(IGH_DataAccess DA)
        {
            Types.GraphicalElement element = default;
            if (!DA.GetData("Element", ref element))
            {
                return;
            }

            bool?facing = default;
            {
                var _Facing_ = Params.IndexOfInputParam("Facing");
                if (_Facing_ >= 0 && Params.Input[_Facing_].DataType != GH_ParamData.@void)
                {
                    bool flipped = false;
                    if (DA.GetData(_Facing_, ref flipped))
                    {
                        facing = flipped;
                    }
                }
                if (facing.HasValue && !element.CanFlipFacing)
                {
                    AddRuntimeMessage(GH_RuntimeMessageLevel.Error, $"Facing can not be flipped for this element. {{{element.Id.IntegerValue}}}");
                    return;
                }
            }

            bool?hand = default;
            {
                var _Hand_ = Params.IndexOfInputParam("Hand");
                if (_Hand_ >= 0 && Params.Input[_Hand_].DataType != GH_ParamData.@void)
                {
                    bool flipped = false;
                    if (DA.GetData(_Hand_, ref flipped))
                    {
                        hand = flipped;
                    }
                }
                if (hand.HasValue && !element.CanFlipFacing)
                {
                    AddRuntimeMessage(GH_RuntimeMessageLevel.Error, $"Hand can not be flipped for this element. {{{element.Id.IntegerValue}}}");
                    return;
                }
            }

            bool?workplane = default;

            {
                var _WorkPlane_ = Params.IndexOfInputParam("Work Plane");
                if (_WorkPlane_ >= 0 && Params.Input[_WorkPlane_].DataType != GH_ParamData.@void)
                {
                    bool flipped = false;
                    if (DA.GetData(_WorkPlane_, ref flipped))
                    {
                        workplane = flipped;
                    }
                }
                if (workplane.HasValue && !element.CanFlipWorkPlane)
                {
                    AddRuntimeMessage(GH_RuntimeMessageLevel.Error, $"Work Plane can not be flipped for this element. {{{element.Id.IntegerValue}}}");
                    return;
                }
            }

            if (facing.HasValue || hand.HasValue || workplane.HasValue)
            {
                StartTransaction(element.Document);

                element.FacingFlipped    = facing;
                element.HandFlipped      = hand;
                element.WorkPlaneFlipped = workplane;
            }

            DA.SetData("Element", element);
            DA.SetData("Facing", element.FacingFlipped);
            DA.SetData("Hand", element.HandFlipped);
            DA.SetData("Work Plane", element.WorkPlaneFlipped);
        }