//create building pads
        public Autodesk.Revit.DB.Architecture.BuildingPad CreateBuildingPad(ProcessPolygon polygon, double elevation)
        {
            Level            level            = _doc.Create.NewLevel(elevation);
            List <CurveLoop> listOfCurveLoops = new List <CurveLoop>();

            listOfCurveLoops.Add(polygon.Get_CurveLoop());
            return(Autodesk.Revit.DB.Architecture.BuildingPad.Create(_doc, this.buildingPadType.Id, level.Id, listOfCurveLoops));
        }
示例#2
0
        /// <summary>
        /// Convert Polygons to a list of curveloops
        /// </summary>
        public CurveLoops PolygonsToCurveLoops(Polygons polygons)
        {
            CurveLoops curveLoops = new CurveLoops();

            foreach (Polygon polygon in polygons)
            {
                ProcessPolygon processedPolygon = new ProcessPolygon(this.Polygon2XYZList(polygon, 0.0, this.Exponent), true);
                processedPolygon.RemoveIdenticalPoints();
                processedPolygon.RemoveClosePoints(.5);
                processedPolygon.ForceToFixList();
                processedPolygon.RemoveCollinearity(4 * Math.PI / 180);
                if (processedPolygon.ProcessedPolygon.Count > 2)
                {
                    curveLoops.Add(processedPolygon.Get_CurveLoop());
                }
            }
            return(curveLoops);
        }