예제 #1
0
        public static CirculationPackage CirculationTypes(TestFitPackage tf)
        {
            //Trim circulation axis to floor plate region, shatter, and characterize.
            List <Curve> circulationAxis = tf.FloorPlanPackage.CirculationAxisCurves;
            Curve        floorProfile    = tf.FloorPlanPackage.FloorProfile;

            List <Curve> trimmedCirculationAxis = new List <Curve>();

            foreach (Curve axis in circulationAxis)
            {
                Curve trimmedAxis = Curves.TrimWithClosedCurve(floorProfile, axis);
                trimmedCirculationAxis.Add(trimmedAxis);
            }

            //Shatter trimmed axis.
            List <Curve> circulationSegments = Curves.ShatterToSegments(trimmedCirculationAxis);

            //Characterize segments and format as CirculationPackage.
            CirculationPackage classifiedAxisSegments = Select.CirculationConfig(tf, circulationSegments);

            //Unify main curves before offset.
            List <Curve> simplifiedCurves = Curves.JoinColinear(classifiedAxisSegments.MainCurves);

            classifiedAxisSegments.MainCurves = simplifiedCurves;

            return(classifiedAxisSegments);
        }