public BuiltElements.Duct DuctToSpeckle(DB.Duct revitDuct) { var baseGeometry = LocationToSpeckle(revitDuct); var baseLine = baseGeometry as Line; if (baseLine == null) { throw new Exception("Only line base Ducts are currently supported."); } // SPECKLE DUCT var speckleDuct = new RevitDuct(); speckleDuct.family = revitDuct.DuctType.FamilyName; speckleDuct.type = revitDuct.DuctType.Name; speckleDuct.baseLine = baseLine; speckleDuct.diameter = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_DIAMETER_PARAM); speckleDuct.height = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_HEIGHT_PARAM); speckleDuct.width = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_WIDTH_PARAM); speckleDuct.length = GetParamValue <double>(revitDuct, BuiltInParameter.CURVE_ELEM_LENGTH); speckleDuct.velocity = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_VELOCITY); speckleDuct.level = ConvertAndCacheLevel(revitDuct, BuiltInParameter.RBS_START_LEVEL_PARAM); var typeElem = Doc.GetElement(revitDuct.MEPSystem.GetTypeId()); speckleDuct.systemName = typeElem.Name; GetAllRevitParamsAndIds(speckleDuct, revitDuct, new List <string> { "RBS_CURVE_HEIGHT_PARAM", "RBS_CURVE_WIDTH_PARAM", "RBS_CURVE_DIAMETER_PARAM", "CURVE_ELEM_LENGTH", "RBS_START_LEVEL_PARAM", "RBS_VELOCITY" }); return(speckleDuct); }
public BuiltElements.Duct DuctToSpeckle(DB.Duct revitDuct) { var baseGeometry = LocationToSpeckle(revitDuct); if (!(baseGeometry is Line baseLine)) { throw new Speckle.Core.Logging.SpeckleException("Only line based Ducts are currently supported."); } // SPECKLE DUCT var speckleDuct = new RevitDuct { family = revitDuct.DuctType.FamilyName, type = revitDuct.DuctType.Name, baseLine = baseLine, diameter = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_DIAMETER_PARAM), height = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_HEIGHT_PARAM), width = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_WIDTH_PARAM), length = GetParamValue <double>(revitDuct, BuiltInParameter.CURVE_ELEM_LENGTH), velocity = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_VELOCITY), level = ConvertAndCacheLevel(revitDuct, BuiltInParameter.RBS_START_LEVEL_PARAM), displayMesh = GetElementMesh(revitDuct) }; var typeElem = Doc.GetElement(revitDuct.MEPSystem.GetTypeId()); speckleDuct.systemName = typeElem.Name; GetAllRevitParamsAndIds(speckleDuct, revitDuct, new List <string> { "RBS_CURVE_HEIGHT_PARAM", "RBS_CURVE_WIDTH_PARAM", "RBS_CURVE_DIAMETER_PARAM", "CURVE_ELEM_LENGTH", "RBS_START_LEVEL_PARAM", "RBS_VELOCITY" }); //Report.Log($"Converted Duct {revitDuct.Id}"); return(speckleDuct); }