Example #1
0
        private List <Segment2D> RoomBoundaryToSegment2D(UIDocument document, List <XYZ> boundaryVertices, string definition, double measurementUnitFactor)
        {
            List <Segment2D> segmentsList = new List <Segment2D>();
            int segmentIterator           = 0;

            for (int i = 0; i < boundaryVertices.Count - 1; i++)
            {
                XYZ      currentStartVertex = boundaryVertices.ElementAt(i);
                XYZ      currentEndVertex   = boundaryVertices.ElementAt(i + 1);
                Vector2D newSegmentsStart   = GeometryFactory.CreateVector2D(ConvertFeetToMeters(replaceCommaWithDot(currentStartVertex.X)), ConvertFeetToMeters(replaceCommaWithDot(currentStartVertex.Y)), measurementUnitFactor);
                Vector2D newSegmentsEnd     = GeometryFactory.CreateVector2D(ConvertFeetToMeters(replaceCommaWithDot(currentEndVertex.X)), ConvertFeetToMeters(replaceCommaWithDot(currentEndVertex.Y)), measurementUnitFactor);

                if (newSegmentsStart.IsEqualTo(newSegmentsEnd))
                {
                    continue;
                }

                segmentsList.Add(GeometryFactory.CreateSegment2D(new Vector2D[] { newSegmentsStart, newSegmentsEnd }, definition + "_" + segmentIterator));
                segmentIterator++;
                GeometryFactory.SetMaxMinCoordinates(newSegmentsStart);
                GeometryFactory.SetMaxMinCoordinates(newSegmentsEnd);
            }

            return(segmentsList);
        }
Example #2
0
        private Polygon2D RoomBoundaryToPolygon2D(UIDocument document, List <XYZ> boundaryVertices, IList <BoundarySegment> currentBoundary, string definition, double measurementUnitFactor)
        {
            List <Vector2D> boundaryVertices2D = new List <Vector2D>();

            foreach (var currentVertex in boundaryVertices)
            {
                Vector2D vectorToAdd = GeometryFactory.CreateVector2D(ConvertFeetToMeters(replaceCommaWithDot(currentVertex.X)), ConvertFeetToMeters(replaceCommaWithDot(currentVertex.Y)), measurementUnitFactor);
                boundaryVertices2D.Add(vectorToAdd);
                GeometryFactory.SetMaxMinCoordinates(vectorToAdd);
            }

            return(GeometryFactory.CreatePolygon2D(boundaryVertices2D.ToArray(), definition));
        }