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.")); } }
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; } }
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); }