应用程序名称:ModelLines

Revit 平台:所有版本

Revit 版本:2011.0

首次发布于:2008.2

编程语言:C#

技能级别:初级

类别:元素

类型:外部命令

主题:显示和创建模型线。

摘要:

该示例演示如何使用 Revit API 获取所有种类的模型线,并如何创建模型线。

类:

Autodesk.Revit.UI.IExternalCommand

Autodesk.Revit.DB.ModelArc

Autodesk.Revit.DB.ModelLine

Autodesk.Revit.DB.ModelCurveArray

Autodesk.Revit.DB.ModelCurve

Autodesk.Revit.DB.SketchPlane

Autodesk.Revit.Creation.Application

Autodesk.Revit.DB.Arc

Autodesk.Revit.DB.XYZ

Autodesk.Revit.DB.Line

项目文件:

 

ModelLines.cs

该文件包含 ModelLines 类,它是主要的类,并负责显示每种模型线类型的数量,并使用 Revit API 为每种类型创建一个实例。

 

ModelLinesForm.cs

这是主窗体,显示所有模型线并允许用户创建模型线和草图平面。

描述:

- 获取列表中每种模型线类型的数量。可以通过迭代文档元素(如 ModelArcModelEllipseModelLine 等)来定位 ModelLines

- 要创建 ModelArc 类型的模型线,请输入三个点来创建它。

- 要创建 ModelLine 类型的模型线,请输入两个点来创建它。

- 对于其他类型,请选择提供相应曲线的基本模型曲线,然后输入从所选基本模型曲线的偏移向量。

- 选择草图平面来放置创建的模型曲线,如果需要,您还可以创建一个新的草图平面。可以使用 Autodesk.Revit.Creation.Document 类中的 NewSketchPlane() 方法创建草图平面。

- 可以使用 Autodesk.Revit.Creation.Document 类中的 NewModelCurve() NewModelCurveArray() 方法创建模型线。

说明:

1. Revit 中绘制一些模型线。

2. 加载 ModelLines.dll 并运行该命令,它将获取 Revit 中的所有模型线并显示每种类型的数目。

3. 您可以通过在草图平面上输入一些信息来创建模型线类型。例如,输入三个点来创建一个 ModelArc 类型的模型线,然后单击“创建”按钮。

4. 您还可以使用“新建”按钮创建新的

源代码

完整的源代码请加入QQ群649037449,在群文件中下载RevitSDK.exe,解压后在文件夹中搜索本文中应用程序名称即可获得完整源码

ModelLines.cs

//
// (C) Copyright 2003-2019 by Autodesk, Inc. 
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//


using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
using System.Linq;

using Autodesk.Revit;
using Autodesk.Revit.DB;

namespace Revit.SDK.Samples.ModelLines.CS
{
   /// <summary>
   /// The main deal class, which takes charge of showing the number of each model line type
   /// and creating one instance for each type using Revit API
   /// </summary>
   public class ModelLines
   {
      // Private members
      Autodesk.Revit.UI.UIApplication m_revit; // Store the reference of the application in revit
      Autodesk.Revit.Creation.Application m_createApp;// Store the create Application reference
      Autodesk.Revit.Creation.Document m_createDoc;   // Store the create Document reference

      ModelCurveArray m_lineArray;        // Store the ModelLine references
      ModelCurveArray m_arcArray;         // Store the ModelArc references
      ModelCurveArray m_ellipseArray;     // Store the ModelEllipse references
      ModelCurveArray m_hermiteArray;     // Store the ModelHermiteSpline references
      ModelCurveArray m_nurbArray;        // Store the ModelNurbSpline references
      List<SketchPlane> m_sketchArray;    // Store the SketchPlane references

      List<ModelCurveCounter> m_informationMap;   // Store the number of each model line type

      #region Properties
      /// <summary>
      /// The type-number map, store the number of each model line type
      /// </summary>
      public ReadOnlyCollection<ModelCurveCounter> InformationMap
      {
         get
         {
            return new ReadOnlyCollection<ModelCurveCounter>(m_informationMap);
         }
      }

      /// <summary>
      /// Get the id information of all ModelEllipses in revit,
      /// which displayed this in elementIdComboBox when ellipseRadioButton checked
      /// </summary>
      public ReadOnlyCollection<IdInfo> EllispeIDArray
      {
         get
         {
            // Create a new list
            List<IdInfo> idArray = new List<IdInfo>();
            // Add all ModelEllipses' id information into the list
            foreach (ModelCurve ellipse in m_ellipseArray)
            {
               IdInfo info = new IdInfo("ModelEllipse", ellipse.Id.IntegerValue);
               idArray.Add(info);
            }
            // return a read only list
            return new ReadOnlyCollection<IdInfo>(idArray);
         }
      }

      /// <summary>
      /// Get the id information of all ModelHermiteSpline in revit,
      /// which displayed this in elementIdComboBox when hermiteSplineRadioButton checked
      /// </summary>
      public ReadOnlyCollection<IdInfo> HermiteSplineIDArray
      {
         get
         {
            // Create a new list
            List<IdInfo> idArray = new List<IdInfo>();
            // Add all ModelHermiteSplines' id information into the list
            foreach (ModelCurve hermite in m_hermiteArray)
            {
               IdInfo info = new IdInfo("ModelHermiteSpline", hermite.Id.IntegerValue);
               idArray.Add(info);
            }
            // return a read only list
            return new ReadOnlyCollection<IdInfo>(idArray);
         }
      }


      /// <summary>
      /// Get the id information of all ModelNurbSpline in revit,
      /// which displayed this in elementIdComboBox when NurbSplineRadioButton checked
      /// </summary>
      public ReadOnlyCollection<IdInfo> NurbSplineIDArray
      {
         get
         {
            // Create a new list
            List<IdInfo> idArray = new List<IdInfo>();
            // Add all ModelNurbSplines' id information into the list
            foreach (ModelCurve nurb in m_nurbArray)
            {
               IdInfo info = new IdInfo("ModelNurbSpline", nurb.Id.IntegerValue);
               idArray.Add(info);
            }
            // return a read only list
            return new ReadOnlyCollection<IdInfo>(idArray);
         }
      }

      /// <summary>
      /// Allow the user to get all sketch plane in revit
      /// </summary>
      public ReadOnlyCollection<IdInfo> SketchPlaneIDArray
      {
         get
         {
            // Create a new list
            List<IdInfo> idArray = new List<IdInfo>();
            // Add all SketchPlane' id information into the list
            foreach (SketchPlane sketch in m_sketchArray)
            {
               IdInfo info = new IdInfo("SketchPlane", sketch.Id.IntegerValue);
               idArray.Add(info);
            }
            // return a read only list
            return new ReadOnlyCollection<IdInfo>(idArray);
         }
      }

      #endregion

      #region Public Methods

      /// <summary>
      /// The default constructor
      /// </summary>
      /// <param name="revit">The reference of the application in revit</param>
      public ModelLines(Autodesk.Revit.UI.UIApplication revit)
      {
         // Store the reference of the application for further use.
         m_revit = revit;
         // Get the create references
         m_createApp = m_revit.Application.Create;       // Creation.Application
         m_createDoc = m_revit.ActiveUIDocument.Document.Create;// Creation.Document

         // Construct all the ModelCurveArray instances for model lines
         m_lineArray = new ModelCurveArray();
         m_arcArray = new ModelCurveArray();
         m_ellipseArray = new ModelCurveArray();
         m_hermiteArray = new ModelCurveArray();
         m_nurbArray = new ModelCurveArray();

         // Construct the sketch plane list data
         m_sketchArray = new List<SketchPlane>();

         // Construct the information list data
         m_informationMap = new List<ModelCurveCounter>();
      }


      /// <summary>
      /// This is the main deal method in this example.
      /// </summary>
      public void Run()
      {
         // Get all sketch plane in revit
         GetSketchPlane();

         // Get all model lines in revit
         GetModelLines();

         // Initialize the InformationMap property for DataGridView display
         InitDisplayInformation();

         // Display the form and allow the user to create one of each model line in revit
         using (ModelLinesForm displayForm = new ModelLinesForm(this))
         {
            displayForm.ShowDialog();
         }
      }

      /// <summary>
      /// Create a new sketch plane which all model lines are placed on.
      /// </summary>
      /// <param name="normal"></param>
      /// <param name="origin"></param>
      public void CreateSketchPlane(Autodesk.Revit.DB.XYZ normal, Autodesk.Revit.DB.XYZ origin)
      {
         try
         {
            // First create a Geometry.Plane which need in NewSketchPlane() method
            Plane geometryPlane = Plane.CreateByNormalAndOrigin(normal, origin);
            if (null == geometryPlane)  // assert the creation is successful
            {
               throw new Exception("Create the geometry plane failed.");
            }
            // Then create a sketch plane using the Geometry.Plane
            SketchPlane plane = SketchPlane.Create(m_revit.ActiveUIDocument.Document, geometryPlane);
            if (null == plane)          // assert the creation is successful
            {
               throw new Exception("Create the sketch plane failed.");
            }

            // Finally add the created plane into the sketch plane array
            m_sketchArray.Add(plane);
         }
         catch (Exception ex)
         {
            throw new Exception("Can not create the sketch plane, message: " + ex.Message);
         }
      }


      /// <summary>
      /// Create the line(ModelLine)
      /// </summary>
      /// <param name="sketchId">the id of the sketch plane</param>
      /// <param name="startPoint">the start point of the line</param>
      /// <param name="endPoint">the end point of the line</param>
      public void CreateLine(int sketchId, Autodesk.Revit.DB.XYZ startPoint, Autodesk.Revit.DB.XYZ endPoint)
      {
         try
         {
            // First get the sketch plane by the giving element id.
            SketchPlane workPlane = GetSketchPlaneById(sketchId);

            // Additional check: start point should not equal end point
            if (startPoint.Equals(endPoint))
            {
               throw new ArgumentException("Two points should not be the same.");
            }

            // create geometry line
            Line geometryLine = Line.CreateBound(startPoint, endPoint);
            if (null == geometryLine)       // assert the creation is successful
            {
               throw new Exception("Create the geometry line failed.");
            }
            // create the ModelLine
            ModelLine line = m_createDoc.NewModelCurve(geometryLine, workPlane) as ModelLine;
            if (null == line)               // assert the creation is successful
            {
               throw new Exception("Create the ModelLine failed.");
            }
            // Add the created ModelLine into the line array
            m_lineArray.Append(line);

            // Finally refresh information map.
            RefreshInformationMap();
         }
         catch (Exception ex)
         {
            throw new Exception("Can not create the ModelLine, message: " + ex.Message);
         }

      }


      /// <summary>
      /// Create the arc(ModelArc)
      /// </summary>
      /// <param name="sketchId">the id of the sketch plane</param>
      /// <param name="startPoint">the start point of the arc</param>
      /// <param name="endPoint">the end point of the arc</param>
      /// <param name="thirdPoint">the third point which is on the arc</param>
      public void CreateArc(int sketchId, Autodesk.Revit.DB.XYZ startPoint, Autodesk.Revit.DB.XYZ endPoint, Autodesk.Revit.DB.XYZ thirdPoint)
      {
         try
         {
            // First get the sketch plane by the giving element id.
            SketchPlane workPlane = GetSketchPlaneById(sketchId);

            // Additional check: the start, end and third point should not be the same
            if (startPoint.Equals(endPoint) || startPoint.Equals(thirdPoint)
                || endPoint.Equals(thirdPoint))
            {
               throw new ArgumentException("Three points should not be the same.");
            }

            // create the geometry arc
            Arc geometryArc = Arc.Create(startPoint, endPoint, thirdPoint);
            if (null == geometryArc)            // assert the creation is successful
            {
               throw new Exception("Create the geometry arc failed.");
            }
            // create the ModelArc
            ModelArc arc = m_createDoc.NewModelCurve(geometryArc, workPlane) as ModelArc;
            if (null == arc)                    // assert the creation is successful
            {
               throw new Exception("Create the ModelArc failed.");
            }
            // Add the created ModelArc into the arc array
            m_arcArray.Append(arc);

            // Finally refresh information map.
            RefreshInformationMap();
         }
         catch (Exception ex)
         {
            throw new Exception("Can not create the ModelArc, message: " + ex.Message);
         }
      }


      /// <summary>
      /// Create other lines, including Ellipse, HermiteSpline and NurbSpline
      /// </summary>
      /// <param name="sketchId">the id of the sketch plane</param>
      /// <param name="elementId">the element id which copy the curve from</param>
      /// <param name="offsetPoint">the offset direction from the copied line</param>
      public void CreateOthers(int sketchId, int elementId, Autodesk.Revit.DB.XYZ offsetPoint)
      {
         // First get the sketch plane by the giving element id.
         SketchPlane workPlane = GetSketchPlaneById(sketchId);

         // Because the geometry of these lines can't be created by API,
         // use an existing geometry to create ModelEllipse, ModelHermiteSpline, ModelNurbSpline
         // and then move a bit to make the user see the creation distinctly

         // This method use NewModelCurveArray() method to create model lines
         CurveArray curves = m_createApp.NewCurveArray();// create a geometry curve array

         // Get the Autodesk.Revit.DB.ElementId which used to get the corresponding element
         ModelCurve selected = GetElementById(elementId) as ModelCurve;
         if (null == selected)
         {
            throw new Exception("Don't have the element you select");
         }

         // add the geometry curve of the element
         curves.Append(selected.GeometryCurve);    // add the geometry ellipse

         // Create the model line
         ModelCurveArray modelCurves = m_createDoc.NewModelCurveArray(curves, workPlane);
         if (null == modelCurves || 1 != modelCurves.Size) // assert the creation is successful
         {
            throw new Exception("Create the ModelCurveArray failed.");
         }

         // Offset the create model lines in order to differentiate the existing model lines
         foreach (ModelCurve m in modelCurves)
         {
            ElementTransformUtils.MoveElement(m.Document, m.Id, offsetPoint); // move the lines
         }
         // Add the created model lines into corresponding array
         foreach (ModelCurve m in modelCurves)
         {
            switch (m.GetType().Name)
            {
               case "ModelEllipse":            // If the line is Ellipse
                  m_ellipseArray.Append(m);   // Add to Ellipse array
                  break;
               case "ModelHermiteSpline":      // If the line is HermiteSpline
                  m_hermiteArray.Append(m);   // Add to HermiteSpline array
                  break;
               case "ModelNurbSpline":         // If the line is NurbSpline
                  m_nurbArray.Append(m);      // Add to NurbSpline
                  break;
               default:
                  break;
            }
         }

         // Finally refresh information map.
         RefreshInformationMap();
      }

      #endregion

      #region Private Methods

      /// <summary>
      /// Get all model lines in current document of revit, and store them into the arrays
      /// </summary>
      void GetModelLines()
      {
         // Search all elements in current document and find all model lines
         // ModelLine is not supported by ElementClassFilter/OfClass, 
         // so use its base type to find all CurveElement and then process the results further to find modelline
         IEnumerable<ModelCurve> modelCurves = from elem in ((new FilteredElementCollector(m_revit.ActiveUIDocument.Document)).OfClass(typeof(CurveElement)).ToElements())
                                               let modelCurve = elem as ModelCurve
                                               where modelCurve != null
                                               select modelCurve;
         foreach (ModelCurve modelCurve in modelCurves)
         {
            // Get all the ModelLines references
            String typeName = modelCurve.GetType().Name;
            switch (typeName)
            {
               case "ModelLine":   // Get all the ModelLine references
                  m_lineArray.Append(modelCurve);
                  break;
               case "ModelArc":    // Get all the ModelArc references
                  m_arcArray.Append(modelCurve);
                  break;
               case "ModelEllipse":// Get all the ModelEllipse references
                  m_ellipseArray.Append(modelCurve);
                  break;
               case "ModelHermiteSpline":  // Get all the ModelHermiteSpline references
                  m_hermiteArray.Append(modelCurve);
                  break;
               case "ModelNurbSpline": // Get all the ModelNurbSpline references
                  m_nurbArray.Append(modelCurve);
                  break;
               default:    // If not a model curve, just break
                  break;
            }
         }
      }


      /// <summary>
      /// Get all sketch planes in revit
      /// </summary>
      void GetSketchPlane()
      {
         // Search all elements in current document and find all sketch planes
         IList<Element> elements = (new FilteredElementCollector(m_revit.ActiveUIDocument.Document)).OfClass(typeof(SketchPlane)).ToElements();
         foreach (Element elem in elements)
         {
            SketchPlane sketch = elem as SketchPlane;
            if (null != sketch)
            {
               // Add all the sketchPlane into the array
               m_sketchArray.Add(sketch);
            }
         }
      }

      /// <summary>
      /// Initiate the information map which will display in information DataGridView 
      /// </summary>
      void InitDisplayInformation()
      {
         // First add the type name into the m_information data map
         m_informationMap.Add(new ModelCurveCounter("ModelArc"));
         m_informationMap.Add(new ModelCurveCounter("ModelLine"));
         m_informationMap.Add(new ModelCurveCounter("ModelEllipse"));
         m_informationMap.Add(new ModelCurveCounter("ModelHermiteSpline"));
         m_informationMap.Add(new ModelCurveCounter("ModelNurbSpline"));

         // Use RefreshInformationMap to refresh the number of each model line type
         RefreshInformationMap();
      }


      /// <summary>
      /// Refresh the m_informationMap member, include the number of each model line type
      /// </summary>
      public void RefreshInformationMap()
      {
         // Search the model line types in the map, and refresh the number of each type
         foreach (ModelCurveCounter info in m_informationMap)
         {
            switch (info.TypeName)
            {
               case "ModelArc":    // if the type is ModelAre
                  info.Number = m_arcArray.Size;  // refresh the number of arc
                  break;
               case "ModelLine":   // if the type is ModelLine
                  info.Number = m_lineArray.Size; // refresh the number of line
                  break;
               case "ModelEllipse":// If the type is ModelEllipse
                  info.Number = m_ellipseArray.Size;  // refresh the number of ellipse
                  break;
               case "ModelHermiteSpline":  // If the type is ModelHermiteSpline
                  info.Number = m_hermiteArray.Size;  // refresh the number of HermiteSpline
                  break;
               case "ModelNurbSpline":     // If the type is ModelNurbSpline
                  info.Number = m_nurbArray.Size;     // refresh the number of NurbSpline
                  break;
               default:
                  break;
            }
         }
      }


      /// <summary>
      /// Use Autodesk.Revit.DB.ElementId to get the corresponding element
      /// </summary>
      /// <param name="id">the element id value</param>
      /// <returns>the corresponding element</returns>
      Autodesk.Revit.DB.Element GetElementById(int id)
      {
         // Create a Autodesk.Revit.DB.ElementId data
         Autodesk.Revit.DB.ElementId elementId = new Autodesk.Revit.DB.ElementId(id);

         // Get the corresponding element
         return m_revit.ActiveUIDocument.Document.GetElement(elementId);
      }


      /// <summary>
      /// Use Autodesk.Revit.DB.ElementId to get the corresponding sketch plane
      /// </summary>
      /// <param name="id">the element id value</param>
      /// <returns>the corresponding sketch plane</returns>
      SketchPlane GetSketchPlaneById(int id)
      {
         // First get the sketch plane by the giving element id.
         SketchPlane workPlane = GetElementById(id) as SketchPlane;
         if (null == workPlane)
         {
            throw new Exception("Don't have the work plane you select.");
         }
         return workPlane;
      }

      #endregion
   }
}

ModelLinesForm.cs

//
// (C) Copyright 2003-2019 by Autodesk, Inc. 
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable. 
//


namespace Revit.SDK.Samples.ModelLines.CS
{
    /// <summary>
    /// The Mail Form
    /// </summary>
    partial class ModelLinesForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.informationGroupBox = new System.Windows.Forms.GroupBox();
            this.informationDataGridView = new System.Windows.Forms.DataGridView();
            this.typeColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.numberColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.otherPanel = new System.Windows.Forms.Panel();
            this.offsetPointUserControl = new Revit.SDK.Samples.ModelLines.CS.PointUserControl();
            this.elementIdComboBox = new System.Windows.Forms.ComboBox();
            this.offsetLabel = new System.Windows.Forms.Label();
            this.copyFromLabel = new System.Windows.Forms.Label();
            this.otherInfoLabel = new System.Windows.Forms.Label();
            this.creationGroupBox = new System.Windows.Forms.GroupBox();
            this.createSketchPlaneButton = new System.Windows.Forms.Button();
            this.sketchPlaneComboBox = new System.Windows.Forms.ComboBox();
            this.sketchPlaneLabel = new System.Windows.Forms.Label();
            this.NurbSplineRadioButton = new System.Windows.Forms.RadioButton();
            this.hermiteSplineRadioButton = new System.Windows.Forms.RadioButton();
            this.ellipseRadioButton = new System.Windows.Forms.RadioButton();
            this.arcRadioButton = new System.Windows.Forms.RadioButton();
            this.lineRadioButton = new System.Windows.Forms.RadioButton();
            this.lineArcPanel = new System.Windows.Forms.Panel();
            this.lineArcInfoLabel = new System.Windows.Forms.Label();
            this.thirdPointUserControl = new Revit.SDK.Samples.ModelLines.CS.PointUserControl();
            this.secondPointUserControl = new Revit.SDK.Samples.ModelLines.CS.PointUserControl();
            this.thirdPointLabel = new System.Windows.Forms.Label();
            this.secondPointLabel = new System.Windows.Forms.Label();
            this.firstPointLabel = new System.Windows.Forms.Label();
            this.firstPointUserControl = new Revit.SDK.Samples.ModelLines.CS.PointUserControl();
            this.createButton = new System.Windows.Forms.Button();
            this.closeButton = new System.Windows.Forms.Button();
            this.informationGroupBox.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.informationDataGridView)).BeginInit();
            this.otherPanel.SuspendLayout();
            this.creationGroupBox.SuspendLayout();
            this.lineArcPanel.SuspendLayout();
            this.SuspendLayout();
            // 
            // informationGroupBox
            // 
            this.informationGroupBox.Controls.Add(this.informationDataGridView);
            this.informationGroupBox.Location = new System.Drawing.Point(12, 12);
            this.informationGroupBox.Name = "informationGroupBox";
            this.informationGroupBox.Size = new System.Drawing.Size(481, 161);
            this.informationGroupBox.TabIndex = 1;
            this.informationGroupBox.TabStop = false;
            this.informationGroupBox.Text = "Model Lines Information";
            // 
            // informationDataGridView
            // 
            this.informationDataGridView.AllowUserToAddRows = false;
            this.informationDataGridView.AllowUserToDeleteRows = false;
            this.informationDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.informationDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.typeColumn,
            this.numberColumn});
            this.informationDataGridView.Location = new System.Drawing.Point(6, 19);
            this.informationDataGridView.Name = "informationDataGridView";
            this.informationDataGridView.ReadOnly = true;
            this.informationDataGridView.RowHeadersVisible = false;
            this.informationDataGridView.Size = new System.Drawing.Size(469, 133);
            this.informationDataGridView.TabIndex = 1;
            // 
            // typeColumn
            // 
            this.typeColumn.HeaderText = "Type";
            this.typeColumn.Name = "typeColumn";
            this.typeColumn.ReadOnly = true;
            this.typeColumn.Width = 150;
            // 
            // numberColumn
            // 
            this.numberColumn.HeaderText = "Number";
            this.numberColumn.Name = "numberColumn";
            this.numberColumn.ReadOnly = true;
            this.numberColumn.Width = 150;
            // 
            // otherPanel
            // 
            this.otherPanel.Controls.Add(this.offsetPointUserControl);
            this.otherPanel.Controls.Add(this.elementIdComboBox);
            this.otherPanel.Controls.Add(this.offsetLabel);
            this.otherPanel.Controls.Add(this.copyFromLabel);
            this.otherPanel.Controls.Add(this.otherInfoLabel);
            this.otherPanel.Location = new System.Drawing.Point(7, 19);
            this.otherPanel.Name = "otherPanel";
            this.otherPanel.Size = new System.Drawing.Size(346, 117);
            this.otherPanel.TabIndex = 4;
            this.otherPanel.Visible = false;
            // 
            // offsetPointUserControl
            // 
            this.offsetPointUserControl.Location = new System.Drawing.Point(118, 81);
            this.offsetPointUserControl.Name = "offsetPointUserControl";
            this.offsetPointUserControl.Size = new System.Drawing.Size(213, 28);
            this.offsetPointUserControl.TabIndex = 3;
            // 
            // elementIdComboBox
            // 
            this.elementIdComboBox.FormattingEnabled = true;
            this.elementIdComboBox.Location = new System.Drawing.Point(117, 39);
            this.elementIdComboBox.Name = "elementIdComboBox";
            this.elementIdComboBox.Size = new System.Drawing.Size(213, 21);
            this.elementIdComboBox.TabIndex = 4;
            // 
            // offsetLabel
            // 
            this.offsetLabel.AutoSize = true;
            this.offsetLabel.Location = new System.Drawing.Point(24, 87);
            this.offsetLabel.Name = "offsetLabel";
            this.offsetLabel.Size = new System.Drawing.Size(38, 13);
            this.offsetLabel.TabIndex = 2;
            this.offsetLabel.Text = "Offset:";
            // 
            // copyFromLabel
            // 
            this.copyFromLabel.AutoSize = true;
            this.copyFromLabel.Location = new System.Drawing.Point(24, 42);
            this.copyFromLabel.Name = "copyFromLabel";
            this.copyFromLabel.Size = new System.Drawing.Size(82, 13);
            this.copyFromLabel.TabIndex = 1;
            this.copyFromLabel.Text = "Use curve from:";
            // 
            // otherInfoLabel
            // 
            this.otherInfoLabel.AutoSize = true;
            this.otherInfoLabel.Location = new System.Drawing.Point(3, 12);
            this.otherInfoLabel.Name = "otherInfoLabel";
            this.otherInfoLabel.Size = new System.Drawing.Size(145, 13);
            this.otherInfoLabel.TabIndex = 0;
            this.otherInfoLabel.Text = "New ellipse need information:";
            // 
            // creationGroupBox
            // 
            this.creationGroupBox.Controls.Add(this.createSketchPlaneButton);
            this.creationGroupBox.Controls.Add(this.sketchPlaneComboBox);
            this.creationGroupBox.Controls.Add(this.sketchPlaneLabel);
            this.creationGroupBox.Controls.Add(this.NurbSplineRadioButton);
            this.creationGroupBox.Controls.Add(this.hermiteSplineRadioButton);
            this.creationGroupBox.Controls.Add(this.ellipseRadioButton);
            this.creationGroupBox.Controls.Add(this.arcRadioButton);
            this.creationGroupBox.Controls.Add(this.lineRadioButton);
            this.creationGroupBox.Controls.Add(this.otherPanel);
            this.creationGroupBox.Controls.Add(this.lineArcPanel);
            this.creationGroupBox.Location = new System.Drawing.Point(12, 179);
            this.creationGroupBox.Name = "creationGroupBox";
            this.creationGroupBox.Size = new System.Drawing.Size(481, 167);
            this.creationGroupBox.TabIndex = 3;
            this.creationGroupBox.TabStop = false;
            this.creationGroupBox.Text = "Model Lines Creation";
            // 
            // createSketchPlaneButton
            // 
            this.createSketchPlaneButton.Location = new System.Drawing.Point(294, 139);
            this.createSketchPlaneButton.Name = "createSketchPlaneButton";
            this.createSketchPlaneButton.Size = new System.Drawing.Size(44, 23);
            this.createSketchPlaneButton.TabIndex = 5;
            this.createSketchPlaneButton.Text = "&New";
            this.createSketchPlaneButton.UseVisualStyleBackColor = true;
            this.createSketchPlaneButton.Click += new System.EventHandler(this.createSketchPlaneButton_Click);
            // 
            // sketchPlaneComboBox
            // 
            this.sketchPlaneComboBox.FormattingEnabled = true;
            this.sketchPlaneComboBox.Location = new System.Drawing.Point(119, 139);
            this.sketchPlaneComboBox.Name = "sketchPlaneComboBox";
            this.sketchPlaneComboBox.Size = new System.Drawing.Size(162, 21);
            this.sketchPlaneComboBox.TabIndex = 4;
            // 
            // sketchPlaneLabel
            // 
            this.sketchPlaneLabel.AutoSize = true;
            this.sketchPlaneLabel.Location = new System.Drawing.Point(10, 144);
            this.sketchPlaneLabel.Name = "sketchPlaneLabel";
            this.sketchPlaneLabel.Size = new System.Drawing.Size(74, 13);
            this.sketchPlaneLabel.TabIndex = 18;
            this.sketchPlaneLabel.Text = "Sketch Plane:";
            // 
            // NurbSplineRadioButton
            // 
            this.NurbSplineRadioButton.AutoSize = true;
            this.NurbSplineRadioButton.Location = new System.Drawing.Point(359, 140);
            this.NurbSplineRadioButton.Name = "NurbSplineRadioButton";
            this.NurbSplineRadioButton.Size = new System.Drawing.Size(106, 17);
            this.NurbSplineRadioButton.TabIndex = 10;
            this.NurbSplineRadioButton.TabStop = true;
            this.NurbSplineRadioButton.Text = "ModelNurbSpline";
            this.NurbSplineRadioButton.UseVisualStyleBackColor = true;
            this.NurbSplineRadioButton.CheckedChanged += new System.EventHandler(this.NurbSplineRadioButton_CheckedChanged);
            // 
            // hermiteSplineRadioButton
            // 
            this.hermiteSplineRadioButton.AutoSize = true;
            this.hermiteSplineRadioButton.Location = new System.Drawing.Point(359, 111);
            this.hermiteSplineRadioButton.Name = "hermiteSplineRadioButton";
            this.hermiteSplineRadioButton.Size = new System.Drawing.Size(119, 17);
            this.hermiteSplineRadioButton.TabIndex = 9;
            this.hermiteSplineRadioButton.TabStop = true;
            this.hermiteSplineRadioButton.Text = "ModelHermiteSpline";
            this.hermiteSplineRadioButton.UseVisualStyleBackColor = true;
            this.hermiteSplineRadioButton.CheckedChanged += new System.EventHandler(this.hermiteSplineRadioButton_CheckedChanged);
            // 
            // ellipseRadioButton
            // 
            this.ellipseRadioButton.AutoSize = true;
            this.ellipseRadioButton.Location = new System.Drawing.Point(359, 82);
            this.ellipseRadioButton.Name = "ellipseRadioButton";
            this.ellipseRadioButton.Size = new System.Drawing.Size(84, 17);
            this.ellipseRadioButton.TabIndex = 8;
            this.ellipseRadioButton.TabStop = true;
            this.ellipseRadioButton.Text = "ModelEllipse";
            this.ellipseRadioButton.UseVisualStyleBackColor = true;
            this.ellipseRadioButton.CheckedChanged += new System.EventHandler(this.ellipseRadioButton_CheckedChanged);
            // 
            // arcRadioButton
            // 
            this.arcRadioButton.AutoSize = true;
            this.arcRadioButton.Location = new System.Drawing.Point(359, 24);
            this.arcRadioButton.Name = "arcRadioButton";
            this.arcRadioButton.Size = new System.Drawing.Size(70, 17);
            this.arcRadioButton.TabIndex = 6;
            this.arcRadioButton.TabStop = true;
            this.arcRadioButton.Text = "ModelArc";
            this.arcRadioButton.UseVisualStyleBackColor = true;
            this.arcRadioButton.CheckedChanged += new System.EventHandler(this.arcRadioButton_CheckedChanged);
            // 
            // lineRadioButton
            // 
            this.lineRadioButton.AutoSize = true;
            this.lineRadioButton.Location = new System.Drawing.Point(359, 53);
            this.lineRadioButton.Name = "lineRadioButton";
            this.lineRadioButton.Size = new System.Drawing.Size(74, 17);
            this.lineRadioButton.TabIndex = 7;
            this.lineRadioButton.TabStop = true;
            this.lineRadioButton.Text = "ModelLine";
            this.lineRadioButton.UseVisualStyleBackColor = true;
            this.lineRadioButton.CheckedChanged += new System.EventHandler(this.lineRadioButton_CheckedChanged);
            // 
            // lineArcPanel
            // 
            this.lineArcPanel.Controls.Add(this.lineArcInfoLabel);
            this.lineArcPanel.Controls.Add(this.thirdPointUserControl);
            this.lineArcPanel.Controls.Add(this.secondPointUserControl);
            this.lineArcPanel.Controls.Add(this.thirdPointLabel);
            this.lineArcPanel.Controls.Add(this.secondPointLabel);
            this.lineArcPanel.Controls.Add(this.firstPointLabel);
            this.lineArcPanel.Controls.Add(this.firstPointUserControl);
            this.lineArcPanel.Location = new System.Drawing.Point(7, 19);
            this.lineArcPanel.Name = "lineArcPanel";
            this.lineArcPanel.Size = new System.Drawing.Size(346, 117);
            this.lineArcPanel.TabIndex = 5;
            this.lineArcPanel.Visible = false;
            // 
            // lineArcInfoLabel
            // 
            this.lineArcInfoLabel.AutoSize = true;
            this.lineArcInfoLabel.Location = new System.Drawing.Point(3, 12);
            this.lineArcInfoLabel.Name = "lineArcInfoLabel";
            this.lineArcInfoLabel.Size = new System.Drawing.Size(131, 13);
            this.lineArcInfoLabel.TabIndex = 6;
            this.lineArcInfoLabel.Text = "New arc need information:";
            // 
            // thirdPointUserControl
            // 
            this.thirdPointUserControl.Location = new System.Drawing.Point(118, 92);
            this.thirdPointUserControl.Name = "thirdPointUserControl";
            this.thirdPointUserControl.Size = new System.Drawing.Size(213, 22);
            this.thirdPointUserControl.TabIndex = 16;
            // 
            // secondPointUserControl
            // 
            this.secondPointUserControl.Location = new System.Drawing.Point(118, 63);
            this.secondPointUserControl.Name = "secondPointUserControl";
            this.secondPointUserControl.Size = new System.Drawing.Size(213, 25);
            this.secondPointUserControl.TabIndex = 15;
            // 
            // thirdPointLabel
            // 
            this.thirdPointLabel.AutoSize = true;
            this.thirdPointLabel.Location = new System.Drawing.Point(24, 96);
            this.thirdPointLabel.Name = "thirdPointLabel";
            this.thirdPointLabel.Size = new System.Drawing.Size(61, 13);
            this.thirdPointLabel.TabIndex = 13;
            this.thirdPointLabel.Text = "Third Point:";
            // 
            // secondPointLabel
            // 
            this.secondPointLabel.AutoSize = true;
            this.secondPointLabel.Location = new System.Drawing.Point(24, 67);
            this.secondPointLabel.Name = "secondPointLabel";
            this.secondPointLabel.Size = new System.Drawing.Size(74, 13);
            this.secondPointLabel.TabIndex = 12;
            this.secondPointLabel.Text = "Second Point:";
            // 
            // firstPointLabel
            // 
            this.firstPointLabel.AutoSize = true;
            this.firstPointLabel.Location = new System.Drawing.Point(24, 42);
            this.firstPointLabel.Name = "firstPointLabel";
            this.firstPointLabel.Size = new System.Drawing.Size(56, 13);
            this.firstPointLabel.TabIndex = 11;
            this.firstPointLabel.Text = "First Point:";
            // 
            // firstPointUserControl
            // 
            this.firstPointUserControl.Location = new System.Drawing.Point(118, 35);
            this.firstPointUserControl.Name = "firstPointUserControl";
            this.firstPointUserControl.Size = new System.Drawing.Size(213, 25);
            this.firstPointUserControl.TabIndex = 2;
            // 
            // createButton
            // 
            this.createButton.Location = new System.Drawing.Point(337, 352);
            this.createButton.Name = "createButton";
            this.createButton.Size = new System.Drawing.Size(75, 23);
            this.createButton.TabIndex = 11;
            this.createButton.Text = "C&reate";
            this.createButton.UseVisualStyleBackColor = true;
            this.createButton.Click += new System.EventHandler(this.createButton_Click);
            // 
            // closeButton
            // 
            this.closeButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.closeButton.Location = new System.Drawing.Point(418, 352);
            this.closeButton.Name = "closeButton";
            this.closeButton.Size = new System.Drawing.Size(75, 23);
            this.closeButton.TabIndex = 12;
            this.closeButton.Text = "&Close";
            this.closeButton.UseVisualStyleBackColor = true;
            this.closeButton.Click += new System.EventHandler(this.closeButton_Click);
            // 
            // ModelLinesForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.closeButton;
            this.ClientSize = new System.Drawing.Size(506, 382);
            this.Controls.Add(this.closeButton);
            this.Controls.Add(this.createButton);
            this.Controls.Add(this.creationGroupBox);
            this.Controls.Add(this.informationGroupBox);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.Name = "ModelLinesForm";
            this.ShowInTaskbar = false;
            this.Text = "Model Lines";
            this.informationGroupBox.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.informationDataGridView)).EndInit();
            this.otherPanel.ResumeLayout(false);
            this.otherPanel.PerformLayout();
            this.creationGroupBox.ResumeLayout(false);
            this.creationGroupBox.PerformLayout();
            this.lineArcPanel.ResumeLayout(false);
            this.lineArcPanel.PerformLayout();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.GroupBox informationGroupBox;
        private System.Windows.Forms.DataGridView informationDataGridView;
        private System.Windows.Forms.DataGridViewTextBoxColumn typeColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn numberColumn;
        private System.Windows.Forms.GroupBox creationGroupBox;
        private System.Windows.Forms.Button createButton;
        private System.Windows.Forms.Button closeButton;
        private System.Windows.Forms.Panel lineArcPanel;
        private System.Windows.Forms.Label thirdPointLabel;
        private System.Windows.Forms.Label secondPointLabel;
        private System.Windows.Forms.Label firstPointLabel;
        private System.Windows.Forms.Panel otherPanel;
        private System.Windows.Forms.Label otherInfoLabel;
        private System.Windows.Forms.Label offsetLabel;
        private System.Windows.Forms.Label copyFromLabel;
        private System.Windows.Forms.ComboBox elementIdComboBox;
        private System.Windows.Forms.RadioButton NurbSplineRadioButton;
        private System.Windows.Forms.RadioButton hermiteSplineRadioButton;
        private System.Windows.Forms.RadioButton ellipseRadioButton;
        private System.Windows.Forms.RadioButton arcRadioButton;
        private System.Windows.Forms.RadioButton lineRadioButton;
        private PointUserControl offsetPointUserControl;
        private PointUserControl thirdPointUserControl;
        private PointUserControl secondPointUserControl;
        private PointUserControl firstPointUserControl;
        private System.Windows.Forms.Button createSketchPlaneButton;
        private System.Windows.Forms.ComboBox sketchPlaneComboBox;
        private System.Windows.Forms.Label sketchPlaneLabel;
        private System.Windows.Forms.Label lineArcInfoLabel;
    }
}