/***************************************************/ /**** Private methods ****/ /***************************************************/ private List <ContourLoadSet> ReadContourLoadSets(List <string> ids = null) { //Implement code for reading Contour Load Sets List <ContourLoadSet> bhomContourLoadSets = new List <ContourLoadSet>(); Dictionary <int, UniformLoadSet> bhomUniformLoadSets = ReadUniformLoadSets().ToDictionary(x => (int)GetAdapterId(x)); //Get stories IStories IStories = m_Model.GetStories(); int numStories = IStories.GetCount(); // Get all elements on each story for (int i = 0; i < numStories; i++) { IFloorType floorType = IStories.GetAt(i).GetFloorType(); //Get contour load sets per story ISurfaceLoadSets srfLoadSets = floorType.GetSurfaceLoadSets2(); int numSrfLoads = srfLoadSets.GetCount(); for (int j = 0; j < numSrfLoads; j++) { ISurfaceLoadSet srfLoadSet = srfLoadSets.GetAt(j); ContourLoadSet srfLoad = srfLoadSet.ToBHoMObject(IStories.GetAt(i)); int propUID = srfLoadSet.lPropertySetUID; srfLoad.UniformLoadSet = bhomUniformLoadSets[propUID]; bhomContourLoadSets.Add(srfLoad); } } return(bhomContourLoadSets); }
/***************************************************/ public static ContourLoadSet ToBHoMObject(this ISurfaceLoadSet ramSrfLoadSet, IStory ramStory) { // Get srf load outline List <Point> srfLoadContourPts = new List <Point>(); double elev = ramStory.dElevation; IPoints srfPolyPts = ramSrfLoadSet.GetPoints(); Polyline srfLoadContour = ToPolyline(srfPolyPts, elev); ContourLoadSet srfLoad = new ContourLoadSet { Contour = srfLoadContour }; // Unique RAM ID RAMId RAMId = new RAMId(); RAMId.Id = ramSrfLoadSet.lUID; srfLoad.SetAdapterId(RAMId); return(srfLoad); }