This class wraps RebarShapeDefinition object.
 /// <summary>
 /// Constructor, Initialize the fields.
 /// </summary>
 /// <param name="rvtApp">Revit Application object</param>
 /// <param name="shapeDef">RebarShapeDef object</param>
 public NewRebarShapeForm(Autodesk.Revit.DB.Document rvtDoc, RebarShapeDef shapeDef)
     : this()
 {
     m_rebarShapeDef = shapeDef;
     m_rvtDoc        = rvtDoc;
     m_rvtApp        = rvtDoc.Application;
 }
Example #2
0
        /// <summary>
        /// Present a dialog to customize a RebarShape.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void createShapeButton_Click(object sender, EventArgs e)
        {
            // Make sure the name is not null or empty.
            if (string.IsNullOrEmpty(nameTextBox.Text.Trim()))
            {
                TaskDialog.Show("Revit", "Please give a name to create a rebar shape.");
                return;
            }

            // Make sure the input name is started with letter and
            // just contains letters, numbers and underlines.
            Regex regex = new Regex("^[a-zA-Z]\\w+$");

            if (!regex.IsMatch(nameTextBox.Text.Trim()))
            {
                TaskDialog.Show("Revit", "Please input the name starting with letter and just containing letters, numbers and underlines. String is " + nameTextBox.Text.ToString());
                nameTextBox.Focus();
                return;
            }

            // Create a RebarShapeDefinition.
            RebarShapeDef shapeDef = null;

            if (byArcradioButton.Checked)
            {
                // Create arc shape.
                RebarShapeDefinitionByArc     arcShapeDefinition = null;
                RebarShapeDefinitionByArcType arcType            = (RebarShapeDefinitionByArcType)Enum.Parse(typeof(RebarShapeDefinitionByArcType), arcTypecomboBox.Text);
                if (arcType != RebarShapeDefinitionByArcType.Spiral)
                {
                    arcShapeDefinition = new RebarShapeDefinitionByArc(m_rvtDoc, arcType);
                }
                else
                {
                    // Set default value for Spiral-Shape definition.
                    arcShapeDefinition = new RebarShapeDefinitionByArc(m_rvtDoc, 10.0, 3.0, 0, 0);
                }
                shapeDef = new RebarShapeDefByArc(arcShapeDefinition);
            }
            else if (bySegmentsradioButton.Checked)
            {
                // Create straight segments shape.
                int segmentCount = 0;
                if (int.TryParse(segmentCountTextBox.Text, out segmentCount) && segmentCount > 0)
                {
                    shapeDef = new RebarShapeDefBySegment(new RebarShapeDefinitionBySegments(m_rvtDoc, segmentCount));
                }
                else
                {
                    TaskDialog.Show("Revit", "Please input a valid positive integer as segments count.");
                    return;
                }
            }

            int startHookAngle = 0;
            int endHookAngle   = 0;
            RebarHookOrientation startHookOrientation = RebarHookOrientation.Left;
            RebarHookOrientation endHookOrientation   = RebarHookOrientation.Left;

            bool doCreate = false;

            using (NewRebarShapeForm form = new NewRebarShapeForm(m_rvtDoc, shapeDef))
            {
                // Present a form to customize the shape.
                if (DialogResult.OK == form.ShowDialog())
                {
                    doCreate = true;
                    if (form.NeedSetHooks)
                    {
                        // Set hooks for rebar shape.
                        startHookAngle       = form.StartHookAngle;
                        endHookAngle         = form.EndHookAngle;
                        startHookOrientation = form.StartHookOrientation;
                        endHookOrientation   = form.EndHookOrientation;
                    }
                }
            }

            if (doCreate)
            {
                // Create the RebarShape.
                RebarShape createdRebarShape = RebarShape.Create(m_rvtDoc, shapeDef.RebarshapeDefinition, null,
                                                                 RebarStyle.Standard, StirrupTieAttachmentType.InteriorFace,
                                                                 startHookAngle, startHookOrientation,
                                                                 endHookAngle, endHookOrientation,
                                                                 0);
                createdRebarShape.Name = nameTextBox.Text.Trim();

                // Add the created shape to the candidate list.
                m_rebarShapes.Add(createdRebarShape);
                m_shapesBinding.ResetBindings(false);
                shapesComboBox.SelectedItem = createdRebarShape;
            }
        }
Example #3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="shapeDef">RebarShapeDefinition proxy</param>
 /// <param name="name">Parameter name</param>
 protected RebarShapeParameter(RebarShapeDef shapeDef, string name)
 {
     m_rebarShapeDef = shapeDef;
     m_name          = name;
     m_parameterId   = null;
 }
Example #4
0
 /// <summary>
 /// Constructor, initialize fields.
 /// </summary>
 /// <param name="def">RebarShapeDef object</param>
 protected ConstraintOnRebarShape(RebarShapeDef def)
 {
     m_shapeDef = def;
 }
Example #5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="shapeDef">RebarShapeDefinition proxy</param>
 /// <param name="name">Parameter name</param>
 /// <param name="formula">Parameter formula sting</param>
 public RebarShapeParameterFormula(RebarShapeDef shapeDef, string name, string formula)
     :base(shapeDef,name)
 {
     m_formula = formula;
 }
Example #6
0
 /// <summary>
 /// Constructor, Initialize the fields.
 /// </summary>
 /// <param name="rvtApp">Revit Application object</param>
 /// <param name="shapeDef">RebarShapeDef object</param>
 public NewRebarShapeForm(Autodesk.Revit.DB.Document rvtDoc, RebarShapeDef shapeDef)
     : this()
 {
     m_rebarShapeDef = shapeDef;
     m_rvtDoc = rvtDoc;
     m_rvtApp = rvtDoc.Application;
 }
Example #7
0
 /// <summary>
 /// Constructor, initialize fields.
 /// </summary>
 /// <param name="def">RebarShapeDef object</param>
 protected ConstraintOnRebarShape(RebarShapeDef def)
 {
     m_shapeDef = def;
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="shapeDef">RebarShapeDefinition proxy</param>
 /// <param name="name">Parameter name</param>
 /// <param name="value">Parameter double value</param>
 public RebarShapeParameterDouble(RebarShapeDef shapeDef, String name, Double value)
     : base(shapeDef, name)
 {
     m_value = value;
 }
Example #9
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="shapeDef">RebarShapeDefinition proxy</param>
 /// <param name="name">Parameter name</param>
 protected RebarShapeParameter(RebarShapeDef shapeDef, string name)
 {
     m_rebarShapeDef = shapeDef;
     m_name = name;
     m_parameterId = null;
 }
Example #10
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="shapeDef">RebarShapeDefinition proxy</param>
 /// <param name="name">Parameter name</param>
 /// <param name="formula">Parameter formula sting</param>
 public RebarShapeParameterFormula(RebarShapeDef shapeDef, string name, string formula)
     : base(shapeDef,name)
 {
     m_formula = formula;
 }
Example #11
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="shapeDef">RebarShapeDefinition proxy</param>
 /// <param name="name">Parameter name</param>
 /// <param name="value">Parameter double value</param>
 public RebarShapeParameterDouble(RebarShapeDef shapeDef, String name, Double value)
     : base(shapeDef, name)
 {
     m_value = value;
 }