/// <summary> /// This is the method that actually does the work. /// </summary> protected override void SolveInstance(IGH_DataAccess DA) { var username = ""; var password = ""; var list = new List <string>(); DA.GetDataList(0, list); DA.GetData(1, ref username); DA.GetData(2, ref password); if (!String.IsNullOrEmpty(username) && !String.IsNullOrEmpty(password)) { BimServer.Username = username; BimServer.Password = password; } if (list.SequenceEqual(BimVisualiserData.Instance.URIList)) { BimVisualiserData.Instance.URIList = list; } // New data feeded, need to recompute else { _returnValue = ""; BimVisualiserData.Instance.Selected = -1; BimVisualiserData.Instance.URIList = list; BimVisualiserData.Instance.NameList = new List <string>(); } if (BimVisualiserData.Instance.NameList.Count == 0) { foreach (var uri in BimVisualiserData.Instance.URIList) { var client = new BimServer(); client.Login(); var name = GetProjectName(client, uri); BimVisualiserData.Instance.NameList.Add(name); } m_attributes.ExpireLayout(); } DA.SetData(0, _returnValue); }
/// <summary> /// This is the method that actually does the work. /// </summary> protected override void SolveInstance(IGH_DataAccess DA) { String uri = ""; // Default values String password = BimServer.Password; String username = BimServer.Username; String serializer = BimServer.Ifc2XSersializer; DA.GetData <String>(0, ref uri); DA.GetData(1, ref username); DA.GetData(2, ref password); DA.GetData(3, ref serializer); try { var url = new Uri(uri); var poid = HttpUtility.ParseQueryString(url.Query).Get("poid"); if (poid == null) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Poid parameter not found in the URL"); return; } BimServer.Username = username; BimServer.Password = password; var client = new BimServer(); if (String.IsNullOrEmpty(serializer)) { serializer = BimServer.Ifc2XSersializer; } var filePath = client.Download(poid, serializer); // Set return data DA.SetData(0, filePath); } catch (Exception e) { // TODO REMOVE WHEN FINISHED DEVELOPING MessageBox.Show(e.Message + "\n" + e.TargetSite + "\n" + e.StackTrace); AddRuntimeMessage(GH_RuntimeMessageLevel.Error, e.Message); } }
public string GetProjectName(BimServer client, string uri) { try { var url = new Uri(uri); var poid = HttpUtility.ParseQueryString(url.Query).Get("poid"); if (poid == null) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Poid parameter not found in the URL"); return(null); } var name = client.ProjectNameRequest(poid); return(name); } catch (Exception e) { // TODO REMOVE WHEN FINISHED DEVELOPING MessageBox.Show(e.Message + "\n" + e.TargetSite + "\n" + e.StackTrace); AddRuntimeMessage(GH_RuntimeMessageLevel.Error, e.Message); } return(null); }