如何解决C#Revit API使用钢筋每个段的长度创建TextNote
我正在尝试在钢筋的每个曲线上放置一个TextNote,即通过GetCenterlineCurves方法获得的中心曲线。
我的代码如下:
// Recorre todas las curvas
foreach (Curve curva in listaCurvas)
{
try
{
// Obtiene la longitud de la curva
nombre = curva.ApproximateLength.ToString();
// Obtiene la ubicación del principio de la curva
curvaInicio = curva.GetEndPoint(0);
// Obtiene la ubicación del final de la curva
curvaFin = curva.GetEndPoint(1);
// Obtiene la ubicación media de la curva
ubicacion = (curvaInicio + curvaFin) / 2;
// Crea el texto
TextNote texto = TextNote.Create(doc,vista.Id,ubicacion,nombre,tipoTexto.Id);
// Agrega el texto a la lista
listaTexto.Add(texto);
}
catch (Exception) { }
}
但是该曲线以英尺为单位,我需要按图中所示以项目单位返回它。
如果可能的话,还可以弯曲钢筋的弯曲直径。
解决方法
首先,我们必须使用以下方法从参数A,B,C,D ...中获取UnitType
///<summary> Obtiene el UnitType de un parámetro </summary>
public static UnitType UnidadesObtenerUnitTypeParametro(Parameter param)
{
// Obtiene el UnitType
return param.Definition.UnitType;
}
然后,我们使用“ UnitFormatUtils”类的“ Format”方法获取具有用户为这些参数配置的单位的值。
// Recorre todas las curvas
foreach (Curve curva in listaCurvas)
{
// Obtiene el UnitType del parámetro A...
UnitType UT = UnidadesObtenerUnitTypeParametro(listaParametros[0]);
// Obtiene las unidades
Units unidades = doc.GetUnits();
// Obtiene la longitud de la curva redondeando el número según la precisión elegida
nombre = UnitFormatUtils.Format(unidades,UT,curva.ApproximateLength,false,false);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。