/// <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); }
/// <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; }