コード例 #1
0
        public static SAMObject ToSAM(this IDdBaseModel ddBaseModel)
        {
            if (ddBaseModel == null)
            {
                return(null);
            }

            if (ddBaseModel is Model)
            {
                return(((Model)ddBaseModel).ToSAM());
            }

            return(null);
        }
コード例 #2
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="dataAccess">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess dataAccess)
        {
            GH_ObjectWrapper objectWrapper = null;

            if (!dataAccess.GetData(0, ref objectWrapper) || objectWrapper == null)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Invalid data");
                return;
            }

            object value = objectWrapper.Value;

            if (value is IGH_Goo)
            {
                value = (value as dynamic).Value;
            }

            if (value == null)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Invalid data");
                return;
            }

            SAMObject result = null;

            string json = null;

            try
            {
                json = Core.LadybugTools.Convert.ToString(value);
            }
            catch
            {
            }

            if (!string.IsNullOrWhiteSpace(json))
            {
                System.Text.Json.JsonDocument jsonDocument = null;

                try
                {
                    jsonDocument = System.Text.Json.JsonDocument.Parse(json);
                }
                catch
                {
                    jsonDocument = null;
                }

                if (jsonDocument != null)
                {
                    try
                    {
                        IDdBaseModel ddBaseModel = Core.LadybugTools.Convert.ToHoneybee(value);

                        if (ddBaseModel != null)
                        {
                            result = Analytical.LadybugTools.Convert.ToSAM(ddBaseModel);
                        }
                    }
                    catch
                    {
                    }
                }
            }

            dataAccess.SetData(0, result);
            dataAccess.SetData(1, json);
        }