Esempio n. 1
0
        public ApplicationPlaceholderObject RoomBoundaryLineToNative(RoomBoundaryLine speckleCurve)
        {
            var docObj    = GetExistingElementByApplicationId(speckleCurve.applicationId);
            var baseCurve = CurveToNative(speckleCurve.baseCurve);

            //delete and re-create line
            //TODO: check if can be modified
            if (docObj != null)
            {
                Doc.Delete(docObj.Id);
            }

            try
            {
                var revitCurve = Doc.Create.NewRoomBoundaryLines(NewSketchPlaneFromCurve(baseCurve.get_Item(0), Doc), baseCurve, Doc.ActiveView).get_Item(0);
                Report.Log($"Created RoomBoundaryLine {revitCurve.Id}");
                return(new ApplicationPlaceholderObject()
                {
                    applicationId = speckleCurve.applicationId, ApplicationGeneratedId = revitCurve.UniqueId, NativeObject = revitCurve
                });
            }
            catch (Exception)
            {
                throw (new Exception("Room boundary line creation failed\nView is not valid for room boundary line creation."));
            }
        }
Esempio n. 2
0
        public ApplicationPlaceholderObject RoomBoundaryLineToNative(RoomBoundaryLine speckleCurve)
        {
            var docObj = GetExistingElementByApplicationId(speckleCurve.applicationId);

            //TODO: support poliline/polycurve lines
            var baseCurve = CurveToNative(speckleCurve.baseCurve as ICurve);

            //delete and re-create line
            //TODO: check if can be modified
            if (docObj != null)
            {
                Doc.Delete(docObj.Id);
            }

            try
            {
                var res = Doc.Create.NewRoomBoundaryLines(NewSketchPlaneFromCurve(baseCurve.get_Item(0)), baseCurve, Doc.ActiveView).get_Item(0);
                return(new ApplicationPlaceholderObject()
                {
                    applicationId = speckleCurve.applicationId, ApplicationGeneratedId = res.UniqueId, NativeObject = res
                });
            }
            catch (Exception)
            {
                ConversionErrors.Add(new Error("Room boundary line creation failed", $"View is not valid for room boundary line creation."));
                throw;
            }
        }
Esempio n. 3
0
        public RoomBoundaryLine RoomBoundaryLineToSpeckle(DB.ModelCurve revitCurve)
        {
            var speckleCurve = new RoomBoundaryLine(CurveToSpeckle(revitCurve.GeometryCurve));

            speckleCurve.elementId     = revitCurve.Id.ToString();
            speckleCurve.applicationId = revitCurve.UniqueId;
            speckleCurve.units         = ModelUnits;
            return(speckleCurve);
        }