当前位置: 首页>>代码示例>>C#>>正文


C# Autodesk.IsAlmostEqualTo方法代码示例

本文整理汇总了C#中Autodesk.IsAlmostEqualTo方法的典型用法代码示例。如果您正苦于以下问题:C# Autodesk.IsAlmostEqualTo方法的具体用法?C# Autodesk.IsAlmostEqualTo怎么用?C# Autodesk.IsAlmostEqualTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Autodesk的用法示例。


在下文中一共展示了Autodesk.IsAlmostEqualTo方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MakeLine

        /// <summary>
        /// Make a line from start point to end point with the direction and style
        /// </summary>
        /// <param name="startpt">start point</param>
        /// <param name="endpt">end point</param>
        /// <param name="direction">the direction which decide the plane</param>
        /// <param name="style">line style name</param>
        public void MakeLine(Autodesk.Revit.DB.XYZ startpt, Autodesk.Revit.DB.XYZ endpt, Autodesk.Revit.DB.XYZ direction, string style)
        {
            try
             {
            m_LineCount = m_LineCount + 1;
            Line line = m_app.Application.Create.NewLineBound(startpt, endpt);
            // Line must lie in the sketch plane.  Use the direction of the line to construct a plane that hosts the target line.
            XYZ rotatedDirection = XYZ.BasisX;

            // If the direction is not vertical, cross the direction vector with Z to get a vector rotated ninety degrees.  That vector,
            // plus the original vector, form the axes of the sketch plane.
            if (!direction.IsAlmostEqualTo(XYZ.BasisZ) && !direction.IsAlmostEqualTo(-XYZ.BasisZ))
            {
                rotatedDirection = direction.Normalize().CrossProduct(XYZ.BasisZ);
            }
            Plane geometryPlane = m_app.Application.Create.NewPlane(direction, rotatedDirection, startpt);
            SketchPlane skplane = m_app.ActiveUIDocument.Document.Create.NewSketchPlane(geometryPlane);
            ModelCurve mcurve = m_app.ActiveUIDocument.Document.Create.NewModelCurve(line, skplane);
            m_app.ActiveUIDocument.Document.Regenerate();
            ElementArray lsArr = mcurve.LineStyles;
            foreach (Autodesk.Revit.DB.Element e in lsArr)
            {
               if (e.Name == style)
               {
                  mcurve.LineStyle = e;
                  break;
               }
            }
            m_app.ActiveUIDocument.Document.Regenerate();
             }
             catch (System.Exception ex)
             {
            m_outputInfo.Add("Failed to create lines: " + ex.ToString());
             }
        }
开发者ID:AMEE,项目名称:revit,代码行数:42,代码来源:RayTraceBounceForm.cs

示例2: MakeLine

    /// <summary>
    /// Draw a small line for debug porpouse
    /// </summary>
    public static void MakeLine(Autodesk.Revit.UI.UIApplication app,
      Autodesk.Revit.DB.XYZ startpt, Autodesk.Revit.DB.XYZ endpt, 
      Autodesk.Revit.DB.XYZ direction, string style)
    {
      try
      {
        Line line = app.Application.Create.NewLineBound(startpt,
          endpt);
        XYZ rotatedDirection = XYZ.BasisX;
        if (!direction.IsAlmostEqualTo(XYZ.BasisZ) && 
          !direction.IsAlmostEqualTo(-XYZ.BasisZ))
        {
          rotatedDirection = 
            direction.Normalize().CrossProduct(XYZ.BasisZ);
        }

        Plane geometryPlane = app.Application.Create.NewPlane
          (direction, rotatedDirection, startpt);
        SketchPlane skplane = app.ActiveUIDocument.Document.
          Create.NewSketchPlane(geometryPlane);
        ModelCurve mcurve = app.ActiveUIDocument.Document.Create.
          NewModelCurve(line, skplane);
        ElementArray lsArr = mcurve.LineStyles;
        foreach (Autodesk.Revit.DB.Element e in lsArr)
        {
          if (e.Name == style)
          {
            mcurve.LineStyle = e;
            break;
          }
        }
      }
      catch (System.Exception e)
      {
      }
    }
开发者ID:augustogoncalves,项目名称:PIOTM-WallOpeningArea,代码行数:39,代码来源:WallAreaFunctions.cs

示例3: GetEdgeByEndPoints

        /// <summary>
        /// Get an edge from the form by its endpoints
        /// </summary>
        /// <param name="form">The form contains the edge</param>
        /// <param name="startPoint">Start point of the edge</param>
        /// <param name="endPoint">End point of the edge</param>
        /// <returns>The edge found</returns>
        private Edge GetEdgeByEndPoints(Form form, Autodesk.Revit.DB.XYZ startPoint, Autodesk.Revit.DB.XYZ endPoint)
        {
            Edge edge = null;

             // Get all edges of the form
             EdgeArray edges = null;
             Options geoOptions = m_revitApp.Create.NewGeometryOptions();
             geoOptions.ComputeReferences = true;
             Autodesk.Revit.DB.GeometryElement geoElement = form.get_Geometry(geoOptions);
             foreach (GeometryObject geoObject in geoElement.Objects)
             {
            Solid solid = geoObject as Solid;
            if (null == solid)
               continue;
            edges = solid.Edges;
             }

             // Traverse the edges and look for the edge with the right endpoints
             foreach (Edge ed in edges)
             {
            Autodesk.Revit.DB.XYZ rpPos1 = ed.Evaluate(0);
            Autodesk.Revit.DB.XYZ rpPos2 = ed.Evaluate(1);
            if ((startPoint.IsAlmostEqualTo(rpPos1) && endPoint.IsAlmostEqualTo(rpPos2)) ||
                (startPoint.IsAlmostEqualTo(rpPos2) && endPoint.IsAlmostEqualTo(rpPos1)))
            {
               edge = ed;
               break;
            }
             }

             return edge;
        }
开发者ID:AMEE,项目名称:revit,代码行数:39,代码来源:Command.cs


注:本文中的Autodesk.IsAlmostEqualTo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。