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


C# Autodesk.GetEndPoint方法代码示例

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


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

示例1: GetCreationData

        private static FamilyInstanceCreationData GetCreationData(Autodesk.Revit.DB.Curve curve, Autodesk.Revit.DB.XYZ upVector, Autodesk.Revit.DB.Level level, Autodesk.Revit.DB.Structure.StructuralType structuralType, Autodesk.Revit.DB.FamilySymbol symbol)
        {

            //calculate the desired rotation
            //we do this by finding the angle between the z axis
            //and vector between the start of the beam and the target point
            //both projected onto the start plane of the beam.
            var zAxis = new XYZ(0, 0, 1);
            var yAxis = new XYZ(0, 1, 0);

            //flatten the beam line onto the XZ plane
            //using the start's z coordinate
            var start = curve.GetEndPoint(0);
            var end = curve.GetEndPoint(1);
            var newEnd = new XYZ(end.X, end.Y, start.Z); //drop end point to plane

            //catch the case where the end is directly above
            //the start, creating a normal with zero length
            //in that case, use the Z axis
            XYZ planeNormal = newEnd.IsAlmostEqualTo(start) ? zAxis : (newEnd - start).Normalize();

            double gamma = upVector.AngleOnPlaneTo(zAxis.IsAlmostEqualTo(planeNormal) ? yAxis : zAxis, planeNormal);

            return new FamilyInstanceCreationData(curve, symbol, level, structuralType)
            {
                RotateAngle = gamma
            };

        }
开发者ID:whztt07,项目名称:Dynamo,代码行数:29,代码来源:StucturalFraming.cs

示例2: NewSketchPlaneFromCurve

        /// <summary>
        /// Creates a new Sketch Plane from a Curve
        /// </summary>
        /// <param name="document">Active Document</param>
        /// <param name="curve">Curve to get plane from</param>
        /// <returns>Plane of the curve</returns>
        public static SketchPlane NewSketchPlaneFromCurve(Document document, Autodesk.Revit.DB.Curve curve)
        {
            XYZ startPoint = curve.GetEndPoint(0);
            XYZ endPoint = curve.GetEndPoint(1);

            // If Start end Endpoint are the same check further points.
            int i = 2;
            while (startPoint == endPoint && endPoint != null)
            {
                endPoint = curve.GetEndPoint(i);
                i++;
            }

            // Plane to return
            Plane plane;

            // If Z Values are equal the Plane is XY
            if (startPoint.Z == endPoint.Z)
            {
                plane = document.Application.Create.NewPlane(XYZ.BasisZ, startPoint);
            }
            // If X Values are equal the Plane is YZ
            else if (startPoint.X == endPoint.X)
            {
                plane = document.Application.Create.NewPlane(XYZ.BasisX, startPoint);
            }
            // If Y Values are equal the Plane is XZ
            else if (startPoint.Y == endPoint.Y)
            {
                plane = document.Application.Create.NewPlane(XYZ.BasisY, startPoint);
            }
            // Otherwise the Planes Normal Vector is not X,Y or Z.
            // We draw lines from the Origin to each Point and use the Plane this one spans up.
            else
            {
                CurveArray curves = new CurveArray();
                curves.Append(curve);
                curves.Append(Autodesk.Revit.DB.Line.CreateBound(new XYZ(0, 0, 0), startPoint));
                curves.Append(Autodesk.Revit.DB.Line.CreateBound(endPoint, new XYZ(0, 0, 0)));
                plane = document.Application.Create.NewPlane(curves);
            }

            // return new Sketchplane
            return SketchPlane.Create(document, plane);
        }
开发者ID:bbrangeo,项目名称:Grevit,代码行数:51,代码来源:Utilities.cs

示例3: CreateReversedCurve

 /// <summary>
 /// Create a new curve with the same 
 /// geometry in the reverse direction.
 /// rom Jeremy Tammik
 /// </summary>
 /// <param name="orig">The original curve.</param>
 /// <returns>The reversed curve.</returns>
 /// <throws cref="NotImplementedException">If the 
 /// curve type is not supported by this utility.</throws>
 static Autodesk.Revit.DB.Curve CreateReversedCurve(Autodesk.Revit.DB.Curve orig)
 {
     if (orig is Autodesk.Revit.DB.Line)
     {
         return Autodesk.Revit.DB.Line.CreateBound(
           orig.GetEndPoint(1),
           orig.GetEndPoint(0));
     }
     else if (orig is Autodesk.Revit.DB.Arc)
     {
         return Autodesk.Revit.DB.Arc.Create(orig.GetEndPoint(1),
           orig.GetEndPoint(0),
           orig.Evaluate(0.5, true));
     }
     else
     {
         throw new Exception(
           "CreateReversedCurve - Unreachable");
     }
 }
开发者ID:samuto,项目名称:DynamoForRebar,代码行数:29,代码来源:CurveExtensions.cs

示例4: Convert

 private static Autodesk.DesignScript.Geometry.Line Convert(Autodesk.Revit.DB.Line crv)
 {
     return Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint(
          crv.GetEndPoint(0).ToPoint(), crv.GetEndPoint(1).ToPoint());
 }
开发者ID:algobasket,项目名称:Dynamo,代码行数:5,代码来源:RevitToProtoCurve.cs


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