Beispiel #1
0
        // works in Revit Structure 2009 API, but not in 2010:

        bool IsColumnRound(
            FamilySymbol symbol)
        {
            GenericFormSet         solid = symbol.Family.SolidForms;
            GenericFormSetIterator i     = solid.ForwardIterator();

            i.MoveNext();
            Extrusion          extr = i.Current as Extrusion;
            CurveArray         cr   = extr.Sketch.CurveLoop;
            CurveArrayIterator i2   = cr.ForwardIterator();

            i2.MoveNext();
            String s = i2.Current.GetType().ToString();

            return(s.Contains("Arc"));
        }
Beispiel #2
0
        private void SetConstraints(Document familyDoc, Extrusion extrusion)
        {
            try
            {
                CurveArrArray curvesArr = new CurveArrArray();
                curvesArr = extrusion.Sketch.Profile;

                foreach (CurveArray ca in curvesArr)
                {
                    CurveArrayIterator itor = ca.ForwardIterator();
                    itor.Reset();
                    itor.MoveNext();
                    Line l = itor.Current as Line;
                    _rightCon.Append(l.Reference);
                    itor.MoveNext();
                    l = itor.Current as Line;
                    _topCon.Append(l.Reference);
                    itor.MoveNext();
                    l = itor.Current as Line;
                    _leftCon.Append(l.Reference);
                    l = itor.Current as Line;
                    _botCon.Append(l.Reference);
                }
                ReferenceArrayArray conArray = new ReferenceArrayArray();

                conArray.Append(_rightCon);
                conArray.Append(_topCon);
                conArray.Append(_leftCon);
                conArray.Append(_botCon);

                ConstructConstraint(familyDoc, _rightCon);
                ConstructConstraint(familyDoc, _topCon);
                ConstructConstraint(familyDoc, _leftCon);
            }

            catch (Exception ex)
            {
                TaskDialog.Show("Constraint Error", ex.Message);
            }
        }
Beispiel #3
0
        private void SetConstraints(Document familyDoc, Extrusion extrusion)
        {
            CurveArrArray curvesArr = new CurveArrArray();

            curvesArr = extrusion.Sketch.Profile;

            foreach (CurveArray ca in curvesArr)
            {
                CurveArrayIterator itor = ca.ForwardIterator();
                itor.Reset();
                itor.MoveNext();
                Line l = itor.Current as Line;
                _rightCon.Append(l.Reference);
                itor.MoveNext();
                l = itor.Current as Line;
                _topCon.Append(l.Reference);
                itor.MoveNext();
                l = itor.Current as Line;
                _leftCon.Append(l.Reference);
                l = itor.Current as Line;
                _botCon.Append(l.Reference);
            }
            ReferenceArrayArray conArray = new ReferenceArrayArray();

            conArray.Append(_rightCon);
            conArray.Append(_topCon);
            conArray.Append(_leftCon);
            conArray.Append(_botCon);

            //Line line = familyDoc.Application.Create.NewLine(_vert[0], _vert[1], true);
            ConstructConstraint(familyDoc, _rightCon);
            //line = familyDoc.Application.Create.NewLine(_vert[1], _vert[2], true);
            ConstructConstraint(familyDoc, _topCon);
            //line = familyDoc.Application.Create.NewLine(_vert[2], _vert[3], true);
            ConstructConstraint(familyDoc, _leftCon);
            //line = familyDoc.Application.Create.NewLine(_vert[3], _vert[0], true);
            //ConstructConstraint(familyDoc, _botCon, line);
        }