/// <summary> 格点データを読み込む </summary>
    public void SetNodePoint(Dictionary <string, object> objJson)
    {
        try
        {
            if (objJson.ContainsKey("node"))
            {
                this.listNodePoint.Clear();

                Dictionary <string, object> node1 = objJson["node"] as Dictionary <string, object>;
                foreach (string key in node1.Keys)
                {
                    try
                    {
                        Dictionary <string, object> node2 = node1[key] as Dictionary <string, object>;
                        float   x   = ComonFunctions.ConvertToSingle(node2["x"]);
                        float   y   = ComonFunctions.ConvertToSingle(node2["y"]);
                        float   z   = ComonFunctions.ConvertToSingle(node2["z"]);
                        Vector3 xyz = new Vector3(x, y, z);
                        int     id  = int.Parse(key);
                        this.listNodePoint.Add(id, xyz);
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetNodePoint");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 支点データを読み込む </summary>
    public void SetJointData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("joint"))
            {
                this.ListJointData.Clear();

                Dictionary <string, object> joint1 = objJson["joint"] as Dictionary <string, object>;

                foreach (string key1 in joint1.Keys)
                {
                    Dictionary <int, JointData> tmp = new Dictionary <int, JointData>();
                    try
                    {
                        int           typ    = int.Parse(key1);
                        List <object> joint2 = joint1[key1] as List <object>;

                        foreach (var jo in joint2)
                        {
                            Dictionary <string, object> joint3 = jo as Dictionary <string, object>;

                            int id = ComonFunctions.ConvertToInt(joint3["m"]);

                            if (this.ListMemberData.ContainsKey(id) == false)
                            {
                                continue;
                            }

                            int xi = ComonFunctions.ConvertToInt(joint3["xi"]);
                            int yi = ComonFunctions.ConvertToInt(joint3["yi"]);
                            int zi = ComonFunctions.ConvertToInt(joint3["zi"]);
                            int xj = ComonFunctions.ConvertToInt(joint3["xj"]);
                            int yj = ComonFunctions.ConvertToInt(joint3["yj"]);
                            int zj = ComonFunctions.ConvertToInt(joint3["zj"]);

                            JointData ex = new JointData(xi, yi, zi, xj, yj, zj);
                            if (tmp.ContainsKey(id) == true)
                            {
                                tmp[id] = ex;
                            }
                            else
                            {
                                tmp.Add(id, ex);
                            }
                        }
                        this.ListJointData.Add(typ, tmp);
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetJointData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 断面力データを読み込む </summary>
    public void SetFsecData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("fsec"))
            {
                this.ListFsecData.Clear();

                Dictionary <string, object> fsec1 = objJson["fsec"] as Dictionary <string, object>;
                foreach (string key1 in fsec1.Keys)
                {
                    Dictionary <string, FsecData> tmp = new Dictionary <string, FsecData>();
                    try
                    {
                        Dictionary <string, object> fsec2 = fsec1[key1] as Dictionary <string, object>;

                        int id = int.Parse(key1);

                        foreach (string key2 in fsec2.Keys)
                        {
                            Dictionary <string, object> fsec3 = fsec2[key2] as Dictionary <string, object>;

                            double fxi = ComonFunctions.ConvertToDouble(fsec3["fxi"]);
                            double fyi = ComonFunctions.ConvertToDouble(fsec3["fyi"]);
                            double fzi = ComonFunctions.ConvertToDouble(fsec3["fzi"]);
                            double mxi = ComonFunctions.ConvertToDouble(fsec3["mxi"]);
                            double myi = ComonFunctions.ConvertToDouble(fsec3["myi"]);
                            double mzi = ComonFunctions.ConvertToDouble(fsec3["mzi"]);
                            double fxj = ComonFunctions.ConvertToDouble(fsec3["fxj"]);
                            double fyj = ComonFunctions.ConvertToDouble(fsec3["fyj"]);
                            double fzj = ComonFunctions.ConvertToDouble(fsec3["fzj"]);
                            double mxj = ComonFunctions.ConvertToDouble(fsec3["mxj"]);
                            double myj = ComonFunctions.ConvertToDouble(fsec3["myj"]);
                            double mzj = ComonFunctions.ConvertToDouble(fsec3["mzj"]);
                            double L   = ComonFunctions.ConvertToDouble(fsec3["L"]);

                            FsecData f = new FsecData(fxi, fyi, fzi, mxi, myi, mzi, fxj, fyj, fzj, mxj, myj, mzj, L);

                            tmp.Add(key2, f);
                        }
                        this.ListFsecData.Add(id, tmp);
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetFsecData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 属性データを読み込む </summary>
    public void SetElementData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("element"))
            {
                this.ListElementData.Clear();

                Dictionary <string, object> element1 = objJson["element"] as Dictionary <string, object>;
                foreach (string key1 in element1.Keys)
                {
                    Dictionary <int, ElementData> tmp = new Dictionary <int, ElementData>();
                    try
                    {
                        Dictionary <string, object> element2 = element1[key1] as Dictionary <string, object>;
                        int id = int.Parse(key1);
                        foreach (string key2 in element2.Keys)
                        {
                            int type_no = int.Parse(key2);
                            Dictionary <string, object> element3 = element2[key2] as Dictionary <string, object>;
                            float       E  = ComonFunctions.ConvertToSingle(element3["E"]);
                            float       G  = ComonFunctions.ConvertToSingle(element3["G"]);
                            float       Xp = ComonFunctions.ConvertToSingle(element3["Xp"]);
                            float       A  = ComonFunctions.ConvertToSingle(element3["A"]);
                            float       J  = ComonFunctions.ConvertToSingle(element3["J"]);
                            float       Iz = ComonFunctions.ConvertToSingle(element3["Iz"]);
                            float       Iy = ComonFunctions.ConvertToSingle(element3["Iy"]);
                            ElementData e  = new ElementData(E, G, Xp, A, J, Iz, Iy);
                            tmp.Add(type_no, e);
                        }
                        this.ListElementData.Add(id, tmp);
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetElementData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 着目点データを読み込む </summary>
    public void SetNoticePoint(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("notice_points"))
            {
                this.ListNoticePoint.Clear();

                List <object> notice1 = objJson["notice_points"] as List <object>;
                foreach (Dictionary <string, object> tmp in notice1)
                {
                    try
                    {
                        int id = ComonFunctions.ConvertToInt(tmp["m"]);
                        if (this.ListMemberData.ContainsKey(id))
                        {
                            List <object> pos1 = tmp["Points"] as List <object>;
                            List <float>  pos2 = new List <float>();
                            foreach (var p in pos1)
                            {
                                if (p != null)
                                {
                                    float pos = ComonFunctions.ConvertToSingle(p, -1);
                                    if (pos > 0)
                                    {
                                        pos2.Add(pos);
                                    }
                                }
                            }
                            this.ListNoticePoint.Add(id, pos2);
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetNoticePoint");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 反力データを読み込む </summary>
    public void SetReacData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("reac"))
            {
                this.ListReacData.Clear();

                Dictionary <string, object> reac1 = objJson["reac"] as Dictionary <string, object>;
                foreach (string key in reac1.Keys)
                {
                    try
                    {
                        Dictionary <string, object> reac2 = reac1[key] as Dictionary <string, object>;

                        int id = int.Parse(key);

                        if (this.listNodePoint.ContainsKey(id))
                        {
                            double tx = ComonFunctions.ConvertToDouble(reac2["tx"]);
                            double ty = ComonFunctions.ConvertToDouble(reac2["ty"]);
                            double tz = ComonFunctions.ConvertToDouble(reac2["tz"]);
                            double mx = ComonFunctions.ConvertToDouble(reac2["mx"]);
                            double my = ComonFunctions.ConvertToDouble(reac2["my"]);
                            double mz = ComonFunctions.ConvertToDouble(reac2["mz"]);

                            ReacData ex = new ReacData(tx, ty, tz, mx, my, mz);
                            this.ListReacData.Add(id, ex);
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetReacData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 変位量データを読み込む </summary>
    public void SetDisgData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("disg"))
            {
                this.ListDisgData.Clear();

                Dictionary <string, object> disg1 = objJson["disg"] as Dictionary <string, object>;
                foreach (string key in disg1.Keys)
                {
                    try
                    {
                        Dictionary <string, object> disg2 = disg1[key] as Dictionary <string, object>;

                        int id = int.Parse(key);

                        if (this.listNodePoint.ContainsKey(id))
                        {
                            double dx = ComonFunctions.ConvertToDouble(disg2["dx"]);
                            double dy = ComonFunctions.ConvertToDouble(disg2["dy"]);
                            double dz = ComonFunctions.ConvertToDouble(disg2["dz"]);
                            double rx = ComonFunctions.ConvertToDouble(disg2["rx"]);
                            double ry = ComonFunctions.ConvertToDouble(disg2["ry"]);
                            double rz = ComonFunctions.ConvertToDouble(disg2["rz"]);

                            DisgData ex = new DisgData(dx, dy, dz, rx, ry, rz);
                            this.ListDisgData.Add(id, ex);
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetDisgData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> パネルデータを読み込む </summary>
    public void SetPanelData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("panel"))
            {
                this.ListPanelData.Clear();

                Dictionary <string, object> panel1 = objJson["panel"] as Dictionary <string, object>;
                foreach (string key in panel1.Keys)
                {
                    try
                    {
                        Dictionary <string, object> panel2 = panel1[key] as Dictionary <string, object>;
                        int id = int.Parse(key);
                        int n1 = ComonFunctions.ConvertToInt(panel2["no1"]);
                        int n2 = ComonFunctions.ConvertToInt(panel2["no2"]);
                        int n3 = ComonFunctions.ConvertToInt(panel2["no3"]);
                        int e  = ComonFunctions.ConvertToInt(panel2["e"], 1);
                        if (this.listNodePoint.ContainsKey(n1) &&
                            this.listNodePoint.ContainsKey(n2) &&
                            this.listNodePoint.ContainsKey(n3))
                        {
                            PanelData ex = new PanelData(n1, n2, n3, e);
                            this.ListPanelData.Add(id, ex);
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetPanelData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 要素データを読み込む </summary>
    public void SetMemberData(Dictionary <string, object> objJson)
    {
        try
        {
            if (objJson.ContainsKey("member"))
            {
                this.ListMemberData.Clear();

                Dictionary <string, object> member1 = objJson["member"] as Dictionary <string, object>;
                foreach (string key in member1.Keys)
                {
                    try
                    {
                        Dictionary <string, object> member2 = member1[key] as Dictionary <string, object>;
                        int id = int.Parse(key);
                        int i  = ComonFunctions.ConvertToInt(member2["ni"]);
                        int j  = ComonFunctions.ConvertToInt(member2["nj"]);
                        int e  = ComonFunctions.ConvertToInt(member2["e"], 1);
                        if (this.listNodePoint.ContainsKey(i) &&
                            this.listNodePoint.ContainsKey(j))
                        {
                            MemberData ex = new MemberData(i, j, e);
                            this.ListMemberData.Add(id, ex);
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetMemberData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 荷重データを読み込む </summary>
    public void SetLoadData(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("load"))
            {
                this.ListLoadData.Clear();

                Dictionary <string, object> load1 = objJson["load"] as Dictionary <string, object>;
                foreach (string key1 in load1.Keys)
                {
                    LoadData tmp    = new LoadData();
                    int      caseNo = int.Parse(key1);
                    Dictionary <string, object> load2 = load1[key1] as Dictionary <string, object>;

                    int fix_node   = ComonFunctions.ConvertToInt(load2["fix_node"], 1);
                    int fix_member = ComonFunctions.ConvertToInt(load2["fix_member"], 1);
                    int element    = ComonFunctions.ConvertToInt(load2["element"], 1);
                    int joint      = ComonFunctions.ConvertToInt(load2["joint"], 1);

                    List <LoadNodeData> load_node = new List <LoadNodeData>();
                    if (load2.ContainsKey("load_node"))
                    {
                        try {
                            List <object> load3 = load2["load_node"] as List <object>;
                            foreach (Dictionary <string, object> ln in load3)
                            {
                                int id = ComonFunctions.ConvertToInt(ln["n"]);

                                if (this.listNodePoint.ContainsKey(id) == false)
                                {
                                    continue;
                                }

                                double tx = ComonFunctions.ConvertToDouble(ln["tx"]);
                                double ty = ComonFunctions.ConvertToDouble(ln["ty"]);
                                double tz = ComonFunctions.ConvertToDouble(ln["tz"]);
                                double rx = ComonFunctions.ConvertToDouble(ln["rx"]);
                                double ry = ComonFunctions.ConvertToDouble(ln["ry"]);
                                double rz = ComonFunctions.ConvertToDouble(ln["rz"]);

                                LoadNodeData ex = new LoadNodeData(id, tx, ty, tz, rx, ry, rz);
                                load_node.Add(ex);
                            }
                        }
                        catch (Exception e)
                        {
                            Debug.Log("Error!! at webframe SetLoadNodeData");
                            Debug.Log(e.Message);
                            return;
                        }
                    }
                    tmp.load_node = load_node;

                    List <LoadMemberData> load_member = new List <LoadMemberData>();
                    if (load2.ContainsKey("load_member"))
                    {
                        try {
                            List <object> load3 = load2["load_member"] as List <object>;
                            foreach (Dictionary <string, object> lm in load3)
                            {
                                int id = ComonFunctions.ConvertToInt(lm["m"]);

                                if (this.ListMemberData.ContainsKey(id) == false)
                                {
                                    continue;
                                }

                                string direction = lm["direction"].ToString();
                                int    mark      = ComonFunctions.ConvertToInt(lm["mark"]);
                                double L1        = ComonFunctions.ConvertToDouble(lm["L1"]);
                                double L2        = ComonFunctions.ConvertToDouble(lm["L2"]);
                                double P1        = ComonFunctions.ConvertToDouble(lm["P1"]);
                                double P2        = ComonFunctions.ConvertToDouble(lm["P2"]);

                                LoadMemberData ex = new LoadMemberData(id, direction, mark, L1, L2, P1, P2);
                                load_member.Add(ex);
                            }
                        }
                        catch (Exception e)
                        {
                            Debug.Log("Error!! at webframe SetLoadMemberData");
                            Debug.Log(e.Message);
                            return;
                        }
                    }
                    tmp.load_member = load_member;

                    this.ListLoadData.Add(caseNo, tmp);
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetLoadData");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 支点データを読み込む </summary>
    public void SetFixMember(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("fix_member"))
            {
                this.ListFixMember.Clear();

                Dictionary <string, object> fix_member1 = objJson["fix_member"] as Dictionary <string, object>;
                foreach (string key1 in fix_member1.Keys)
                {
                    Dictionary <int, FixMemberData> tmp = new Dictionary <int, FixMemberData>();
                    try
                    {
                        int           typ         = int.Parse(key1);
                        List <object> fix_member2 = fix_member1[key1] as List <object>;

                        foreach (var fm in fix_member2)
                        {
                            Dictionary <string, object> fix_member3 = fm as Dictionary <string, object>;

                            int id = ComonFunctions.ConvertToInt(fix_member3["m"]);

                            if (this.ListMemberData.ContainsKey(id) == false)
                            {
                                continue;
                            }

                            double tx = ComonFunctions.ConvertToDouble(fix_member3["tx"]);
                            double ty = ComonFunctions.ConvertToDouble(fix_member3["ty"]);
                            double tz = ComonFunctions.ConvertToDouble(fix_member3["tz"]);
                            double tr = ComonFunctions.ConvertToDouble(fix_member3["tr"]);

                            FixMemberData ex = new FixMemberData(tx, ty, tz, tr);
                            if (tmp.ContainsKey(id) == true)
                            {
                                ex.tx  += tmp[id].tx;
                                ex.ty  += tmp[id].ty;
                                ex.tz  += tmp[id].tz;
                                ex.tr  += tmp[id].tr;
                                tmp[id] = ex;
                            }
                            else
                            {
                                tmp.Add(id, ex);
                            }
                        }
                        this.ListFixMember.Add(typ, tmp);
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetFixMember");
            Debug.Log(e.Message);
        }
    }
    /// <summary> 支点データを読み込む </summary>
    public void SetFixNode(Dictionary <string, object> objJson)
    {
        try {
            if (objJson.ContainsKey("fix_node"))
            {
                this.ListFixNode.Clear();

                Dictionary <string, object> fix_node1 = objJson["fix_node"] as Dictionary <string, object>;
                foreach (string key1 in fix_node1.Keys)
                {
                    Dictionary <int, FixNodeData> tmp = new Dictionary <int, FixNodeData>();
                    try
                    {
                        int           typ       = int.Parse(key1);
                        List <object> fix_node2 = fix_node1[key1] as List <object>;

                        foreach (var fn in fix_node2)
                        {
                            Dictionary <string, object> fix_node3 = fn as Dictionary <string, object>;

                            int id = Convert.ToInt32(fix_node3["n"]);

                            if (this.listNodePoint.ContainsKey(id) == false)
                            {
                                continue;
                            }

                            double tx = ComonFunctions.ConvertToDouble(fix_node3["tx"]);
                            double ty = ComonFunctions.ConvertToDouble(fix_node3["ty"]);
                            double tz = ComonFunctions.ConvertToDouble(fix_node3["tz"]);
                            double rx = ComonFunctions.ConvertToDouble(fix_node3["rx"]);
                            double ry = ComonFunctions.ConvertToDouble(fix_node3["ry"]);
                            double rz = ComonFunctions.ConvertToDouble(fix_node3["rz"]);

                            FixNodeData ex = new FixNodeData(tx, ty, tz, rx, ry, rz);
                            if (tmp.ContainsKey(id) == true)
                            {
                                ex.tx  += tmp[id].tx;
                                ex.ty  += tmp[id].ty;
                                ex.tz  += tmp[id].tz;
                                ex.rx  += tmp[id].rx;
                                ex.ry  += tmp[id].ry;
                                ex.rz  += tmp[id].rz;
                                tmp[id] = ex;
                            }
                            else
                            {
                                tmp.Add(id, ex);
                            }
                        }
                        this.ListFixNode.Add(typ, tmp);
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("Error!! at webframe SetFixNode");
            Debug.Log(e.Message);
        }
    }