/// <summary> /// Creates and draws a torus that is defined with the given parameters. /// </summary> /// <param name="document">The active document</param> /// <param name="center">The center coordinates of the torus</param> /// <param name="axis">The axis vector of the torus</param> /// <param name="mean_radius">The mean radius of the torus</param> /// <param name="tube_radius">The tube radius of the torus</param> /// <param name="tube_begin">The vector pointing from the center to where the tube begins</param> /// <param name="torus_angle">The angle between the tube_begin and another edge of the torus</param> public void DrawTorus(Document document, XYZ center, XYZ axis, double mean_radius, double tube_radius, XYZ tube_begin, double torus_angle) { string torus_name = "Torus" + m_direct_torus_instance_count++; DirectTorus torus = new DirectTorus(document, torus_name, center, axis, mean_radius, tube_radius, tube_begin, torus_angle, S_TORUS_COLOR, 50); m_direct_shape_list.Add(torus); }
private void Write(DirectTorus dt) { string length_unit_string = " " + XYZUnitConversionData.LengthUnitStrings[FindSurfaceRevitPlugin.MeasurementUnit]; string area_unit_string = " " + XYZUnitConversionData.AreaUnitStrings[FindSurfaceRevitPlugin.MeasurementUnit]; string volume_unit_string = " " + XYZUnitConversionData.VolumeUnitStrings[FindSurfaceRevitPlugin.MeasurementUnit]; string content = $"{dt.Name}\n" + $" .center\n" + $" .X = {dt.Center.X.ToString("##0.####")}\n" + $" .Y = {dt.Center.Y.ToString("##0.####")}\n" + $" .Z = {dt.Center.Z.ToString("##0.####")}\n" + $" .axis = {dt.Axis.ToString()}\n" + $" .X = {dt.Axis.X.ToString("##0.####")}\n" + $" .Y = {dt.Axis.Y.ToString("##0.####")}\n" + $" .Z = {dt.Axis.Z.ToString("##0.####")}\n" + $" .mean-radius = {dt.MeanRadius.ToString("##0.####")+length_unit_string}\n" + $" .tube-radius = {dt.TubeRadius.ToString("##0.####")+length_unit_string}\n"; if (dt.HasAnElbow) { XYZ t = (dt.TubeBegin + dt.Center); content += $" .tube-begin\n" + $" .X = {t.X.ToString( "##0.####" )}\n" + $" .Y = {t.Y.ToString( "##0.####" )}\n" + $" .Z = {t.Z.ToString( "##0.####" )}\n" + $" .tube-angle = {(dt.TubeAngle*180/Math.PI).ToString("##0.####")+" deg."}\n"; } content += $" .surface-area = {dt.SurfaceArea.ToString("##0.####")+area_unit_string}\n" + $" .volume = {dt.Volume.ToString("##0.####")+volume_unit_string}\n\n"; this.richTextBoxInspectResult.AppendText(content); }