Exemplo n.º 1
0
        /// <summary>
        /// Add edge to the loft form
        /// </summary>
        /// <param name="form">The loft form to be added edge</param>
        /// <returns>Reference of the added edge</returns>
        private Reference AddEdge(Form form)
        {
            // Get two specific edges from the form
            Autodesk.Revit.DB.XYZ startOfTop = new Autodesk.Revit.DB.XYZ(-1 * m_topLength / 2, -1 * m_topWidth / 2, m_topHeight);
            Autodesk.Revit.DB.XYZ endOfTop   = new Autodesk.Revit.DB.XYZ(m_topLength / 2, -1 * m_topWidth / 2, m_topHeight);
            Edge topEdge = GetEdgeByEndPoints(form, startOfTop, endOfTop);

            Autodesk.Revit.DB.XYZ startOfBottom = new Autodesk.Revit.DB.XYZ(-1 * (m_bottomLength / 2 + m_vertexOffsetOnBottomProfile), -1 * (m_bottomWidth / 2 + m_vertexOffsetOnBottomProfile), m_bottomHeight);
            Autodesk.Revit.DB.XYZ endOfBottom   = new Autodesk.Revit.DB.XYZ((m_bottomLength / 2 + m_vertexOffsetOnBottomProfile), -1 * (m_bottomWidth / 2 + m_vertexOffsetOnBottomProfile), m_bottomHeight);
            Edge bottomEdge = GetEdgeByEndPoints(form, startOfBottom, endOfBottom);

            // Add an edge between the two edges with specific parameters
            double topParam    = 0.5;
            double bottomParam = 0.5;

            form.AddEdge(topEdge.Reference, topParam, bottomEdge.Reference, bottomParam);
            m_revitDoc.Regenerate();

            // Get the added edge and return its reference
            Autodesk.Revit.DB.XYZ startOfAddedEdge = startOfTop.Add(endOfTop.Subtract(startOfTop).Multiply(topParam));
            Autodesk.Revit.DB.XYZ endOfAddedEdge   = startOfBottom.Add(endOfBottom.Subtract(startOfBottom).Multiply(bottomParam));
            return(GetEdgeByEndPoints(form, startOfAddedEdge, endOfAddedEdge).Reference);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Add edge to the loft form
        /// </summary>
        /// <param name="form">The loft form to be added edge</param>
        /// <returns>Reference of the added edge</returns>
        private Reference AddEdge(Form form)
        {
            // Get two specific edges from the form
             Autodesk.Revit.DB.XYZ startOfTop = new Autodesk.Revit.DB.XYZ (-1 * m_topLength / 2, -1 * m_topWidth / 2, m_topHeight);
             Autodesk.Revit.DB.XYZ endOfTop = new Autodesk.Revit.DB.XYZ (m_topLength / 2, -1 * m_topWidth / 2, m_topHeight);
             Edge topEdge = GetEdgeByEndPoints(form, startOfTop, endOfTop);
             Autodesk.Revit.DB.XYZ startOfBottom = new Autodesk.Revit.DB.XYZ (-1 * (m_bottomLength / 2 + m_vertexOffsetOnBottomProfile), -1 * (m_bottomWidth / 2 + m_vertexOffsetOnBottomProfile), m_bottomHeight);
             Autodesk.Revit.DB.XYZ endOfBottom = new Autodesk.Revit.DB.XYZ ((m_bottomLength / 2 + m_vertexOffsetOnBottomProfile), -1 * (m_bottomWidth / 2 + m_vertexOffsetOnBottomProfile), m_bottomHeight);
             Edge bottomEdge = GetEdgeByEndPoints(form, startOfBottom, endOfBottom);

             // Add an edge between the two edges with specific parameters
             double topParam = 0.5;
             double bottomParam = 0.5;
             form.AddEdge(topEdge.Reference, topParam, bottomEdge.Reference, bottomParam);
             m_revitDoc.Regenerate();

             // Get the added edge and return its reference
             Autodesk.Revit.DB.XYZ startOfAddedEdge = startOfTop.Add(endOfTop.Subtract(startOfTop).Multiply(topParam));
             Autodesk.Revit.DB.XYZ endOfAddedEdge = startOfBottom.Add(endOfBottom.Subtract(startOfBottom).Multiply(bottomParam));
             return GetEdgeByEndPoints(form, startOfAddedEdge, endOfAddedEdge).Reference;
        }