public static tsdZoneArray?TsdZoneArray(this SpaceDataType spaceDataType) { if (spaceDataType == Tas.SpaceDataType.Undefined) { return(null); } return((tsdZoneArray)(int)spaceDataType); }
public static string Text(this SpaceDataType spaceDataType) { return(Core.Query.Description(spaceDataType)); }
/// <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) { int index_Successful; index_Successful = Params.IndexOfOutputParam("successful"); if (index_Successful != -1) { dataAccess.SetData(index_Successful, false); } int index; bool run = false; index = Params.IndexOfInputParam("_run"); if (index != -1) { if (!dataAccess.GetData(index, ref run)) { run = false; } } if (!run) { return; } index = Params.IndexOfInputParam("_pathTasTSD"); if (index == -1) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Invalid data"); return; } string path = null; if (!dataAccess.GetData(index, ref path) || string.IsNullOrWhiteSpace(path) || !System.IO.File.Exists(path)) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Invalid data"); return; } List <PanelDataType> panelDataTypes = null; index = Params.IndexOfInputParam("panelDataTypes_"); if (index != -1) { List <GH_ObjectWrapper> objectWrappers = new List <GH_ObjectWrapper>(); if (dataAccess.GetDataList(index, objectWrappers)) { panelDataTypes = new List <PanelDataType>(); foreach (GH_ObjectWrapper objectWrapper in objectWrappers) { PanelDataType panelDataType = PanelDataType.Undefined; if (objectWrapper.Value is GH_String) { panelDataType = Analytical.Tas.Query.PanelDataType(((GH_String)objectWrapper.Value).Value); } else { panelDataType = Analytical.Tas.Query.PanelDataType(objectWrapper.Value); } if (panelDataType != PanelDataType.Undefined) { panelDataTypes.Add(panelDataType); } } } } List <SpaceDataType> spaceDataTypes = null; index = Params.IndexOfInputParam("spaceDataTypes_"); if (index != -1) { List <GH_ObjectWrapper> objectWrappers = new List <GH_ObjectWrapper>(); if (dataAccess.GetDataList(index, objectWrappers)) { spaceDataTypes = new List <SpaceDataType>(); foreach (GH_ObjectWrapper objectWrapper in objectWrappers) { SpaceDataType spaceDataType = SpaceDataType.Undefined; if (objectWrapper.Value is GH_String) { spaceDataType = Analytical.Tas.Query.SpaceDataType(((GH_String)objectWrapper.Value).Value); } else { spaceDataType = Analytical.Tas.Query.SpaceDataType(objectWrapper.Value); } if (spaceDataType != SpaceDataType.Undefined) { spaceDataTypes.Add(spaceDataType); } } } } AdjacencyCluster adjacencyCluster = null; List <Core.Result> results = new List <Core.Result>(); int index_Result = Params.IndexOfOutputParam("results"); int index_AdjacencyCluster = Params.IndexOfOutputParam("adjacencyCluster"); if (index_Result != -1 || index_AdjacencyCluster != -1) { using (SAMTSDDocument sAMTSDDocument = new SAMTSDDocument(path, true)) { if (index_AdjacencyCluster != -1) { adjacencyCluster = sAMTSDDocument.ToSAM(spaceDataTypes, panelDataTypes); dataAccess.SetData(index_AdjacencyCluster, new GooAdjacencyCluster(adjacencyCluster)); } if (index_Result != -1) { results = Analytical.Tas.Convert.ToSAM(sAMTSDDocument); dataAccess.SetDataList(index_Result, results?.ConvertAll(x => new GooResult(x))); } sAMTSDDocument.Close(); } } if (index_Successful != -1) { dataAccess.SetData(index_Successful, true); } }
/// <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) { dataAccess.SetData(1, false); bool run = false; if (!dataAccess.GetData(3, ref run)) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Invalid data"); return; } if (!run) { return; } string path_TSD = null; if (!dataAccess.GetData(0, ref path_TSD) || string.IsNullOrWhiteSpace(path_TSD)) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Invalid data"); return; } List <GH_ObjectWrapper> objectWrappers; List <PanelDataType> panelDataTypes = null; objectWrappers = new List <GH_ObjectWrapper>(); if (dataAccess.GetDataList(1, objectWrappers)) { panelDataTypes = new List <PanelDataType>(); foreach (GH_ObjectWrapper objectWrapper in objectWrappers) { PanelDataType panelDataType = PanelDataType.Undefined; if (objectWrapper.Value is GH_String) { panelDataType = Analytical.Tas.Query.PanelDataType(((GH_String)objectWrapper.Value).Value); } else { panelDataType = Analytical.Tas.Query.PanelDataType(objectWrapper.Value); } if (panelDataType != PanelDataType.Undefined) { panelDataTypes.Add(panelDataType); } } } List <SpaceDataType> spaceDataTypes = null; objectWrappers = new List <GH_ObjectWrapper>(); if (dataAccess.GetDataList(2, objectWrappers)) { spaceDataTypes = new List <SpaceDataType>(); foreach (GH_ObjectWrapper objectWrapper in objectWrappers) { SpaceDataType spaceDataType = SpaceDataType.Undefined; if (objectWrapper.Value is GH_String) { spaceDataType = Analytical.Tas.Query.SpaceDataType(((GH_String)objectWrapper.Value).Value); } else { spaceDataType = Analytical.Tas.Query.SpaceDataType(objectWrapper.Value); } if (spaceDataType != SpaceDataType.Undefined) { spaceDataTypes.Add(spaceDataType); } } } AdjacencyCluster adjacencyCluster = path_TSD.ToSAM_AdjacencyCluster(spaceDataTypes, panelDataTypes); dataAccess.SetData(0, adjacencyCluster); dataAccess.SetData(1, adjacencyCluster != null); }