/// <summary> /// Init a new detail curve from curve /// </summary> /// <param name="view"></param> /// <param name="curve"></param> private void Init(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.Curve curve) { // Open Transaction and get document Autodesk.Revit.DB.Document document = DocumentManager.Instance.CurrentDBDocument; TransactionManager.Instance.EnsureInTransaction(document); // Get exsiting element var element = ElementBinder.GetElementFromTrace <Autodesk.Revit.DB.DetailCurve>(document); if (element == null) { if (document.IsFamilyDocument) { element = document.FamilyCreate.NewDetailCurve(view, curve); } else { element = document.Create.NewDetailCurve(view, curve); } } else { element.SetGeometryCurve(curve, true); } InternalSetCurveElement(element); // Set transaction task done & element for trace TransactionManager.Instance.TransactionTaskDone(); ElementBinder.SetElementForTrace(this.InternalElement); }
//****************************************************************************************** /// <summary> /// Get data from dialogs /// </summary> public override void OnSetData() { base.OnSetData(); m_ErrorType = 0; if (!FreezeControl.CurrentView) { List <Autodesk.Revit.DB.View> viewList = dlgViewSel.GetSelectedViews(); if (viewList.Count <= 0) { System.SystemBase.Errors.AddError("", "", null); m_ErrorType = 1; } } else { Autodesk.Revit.DB.View v = Revit.CommandData().Application.ActiveUIDocument.Document.ActiveView; if (v.ViewType == Autodesk.Revit.DB.ViewType.Internal || v.ViewType == Autodesk.Revit.DB.ViewType.DrawingSheet || !v.CanBePrinted) { System.SystemBase.Errors.AddError("", "", null); m_ErrorType = 2; } } }
/// <summary> /// Create a View from a user selected Element. /// </summary> /// <param name="view"></param> /// <param name="isRevitOwned"></param> /// <returns></returns> internal static Legend FromExisting(Autodesk.Revit.DB.View view, bool isRevitOwned) { return(new Legend(view) { IsRevitOwned = isRevitOwned }); }
public override bool CanExecute(View dBView) { if (collected) { return(false); } try { if (rhinoObject.Document != ActiveDocument) { return(false); } } catch (Rhino.Runtime.DocumentCollectedException) { collected = true; return(false); } if (!rhinoObject.Visible) { return(false); } return(IsModelView(dBView)); }
public override Autodesk.Revit.DB.Outline GetBoundingBox(View dBView) { var bbox = rhinoObject.Geometry.GetBoundingBox(false); bbox = bbox.ChangeUnits(1.0 / Revit.ModelUnits); return(new Autodesk.Revit.DB.Outline(bbox.Min.ToHost(), bbox.Max.ToHost())); }
/// <summary> /// Construct a Revit DetailCurve element from a curve /// </summary> /// <param name="view">View to place the detail curve on</param> /// <param name="curve">Curve to create detailcurve from</param> /// <returns></returns> public static DetailCurve ByCurve(Revit.Elements.Views.View view, Autodesk.DesignScript.Geometry.Curve curve) { if (!view.IsAnnotationView()) { throw new Exception(Properties.Resources.ViewDoesNotSupportAnnotations); } if (!curve.IsPlanar) { throw new Exception(Properties.Resources.CurveIsNotPlanar); } if (curve is Autodesk.DesignScript.Geometry.PolyCurve) { throw new Exception(Properties.Resources.PolyCurvesConversionError); } // Pull Curve onto the XY plane to place it correctly on the view. Autodesk.DesignScript.Geometry.Plane XYplane = Autodesk.DesignScript.Geometry.Plane.XY(); Autodesk.DesignScript.Geometry.Curve flattenedCurve = curve.PullOntoPlane(XYplane); Autodesk.Revit.DB.View revitView = (Autodesk.Revit.DB.View)view.InternalElement; return(new DetailCurve(revitView, flattenedCurve.ToRevitType())); }
/// <summary> /// Try to found an open <see cref="Autodesk.Revit.UI.UIView"/> that is referencing the specified <see cref="Autodesk.Revit.DB.View"/> element. /// </summary> /// <param name="view"></param> /// <param name="uiView"></param> /// <returns>true on succes.</returns> public static bool TryGetOpenUIView(this Autodesk.Revit.DB.View view, out Autodesk.Revit.UI.UIView uiView) { using (var uiDocument = new Autodesk.Revit.UI.UIDocument(view.Document)) { uiView = uiDocument.GetOpenUIViews().Where(x => x.ViewId == view.Id).FirstOrDefault(); return(uiView is object); } }
public bool IsCommandAvailable(UIApplication applicationData, Autodesk.Revit.DB.CategorySet selectedCategories) { Autodesk.Revit.DB.View activeView = applicationData.ActiveUIDocument.Document.ActiveView; if (Autodesk.Revit.DB.ViewType.ThreeD == activeView.ViewType) { return(true); } else { return(false); } }
private void InitImageInstance(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.ElementId typeId, Autodesk.Revit.DB.ImagePlacementOptions options) { //Phase 1 - Check to see if the object exists and should be rebound var oldEle = ElementBinder.GetElementFromTrace <Autodesk.Revit.DB.ImageInstance>(DocumentManager.Instance.CurrentDBDocument); // Rebind to Element if (oldEle != null) { InternalSetImageInstance(oldEle); return; } //Phase 2 - There was no existing Element, create new one TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument); var ii = Autodesk.Revit.DB.ImageInstance.Create(DocumentManager.Instance.CurrentDBDocument, view, typeId, options); InternalSetImageInstance(ii); TransactionManager.Instance.TransactionTaskDone(); ElementBinder.SetElementForTrace(InternalElement); }
private void InitDimension(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.Line line, Autodesk.Revit.DB.ReferenceArray arr, Autodesk.Revit.DB.DimensionType type) { //Phase 1 - Check to see if the object exists and should be rebound var oldEle = ElementBinder.GetElementFromTrace <Autodesk.Revit.DB.Dimension>(DocumentManager.Instance.CurrentDBDocument); // Rebind to Element if (oldEle != null) { InternalSetDimension(oldEle); return; } //Phase 2 - There was no existing Element, create new one TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument); var ii = DocumentManager.Instance.CurrentDBDocument.Create.NewDimension(view, line, arr, type); InternalSetDimension(ii); TransactionManager.Instance.TransactionTaskDone(); ElementBinder.SetElementForTrace(InternalElement); }
private ImageInstances(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.ElementId typeId, Autodesk.Revit.DB.ImagePlacementOptions options) { SafeInit(() => InitImageInstance(view, typeId, options)); }
public override void RenderScene(View dBView, Autodesk.Revit.DB.DisplayStyle displayStyle) { try { if (primitives == null) { if (rhinoObject is PointObject pointObject) { primitives = new Primitive[] { new ObjectPrimitive(pointObject, pointObject.PointGeometry) }; } else if (rhinoObject is PointCloudObject pointCloudObject) { AddPointCloudPreviews(pointCloudObject.PointCloudGeometry); } else if (rhinoObject is CurveObject curveObject) { primitives = new Primitive[] { new ObjectPrimitive(curveObject, curveObject.CurveGeometry) }; } else if (rhinoObject is MeshObject meshObject) { AddMeshPreviews(meshObject.MeshGeometry); } else if (rhinoObject.IsMeshable(MeshType.Render)) { var meshingParameters = rhinoObject.GetRenderMeshParameters(); if (rhinoObject.MeshCount(MeshType.Render, meshingParameters) == 0) { rhinoObject.CreateMeshes(MeshType.Render, meshingParameters, false); } var renderMeshes = rhinoObject.GetMeshes(MeshType.Render); if (renderMeshes?.Length > 0) { int vertexCount = renderMeshes.Select((x) => x.Vertices.Count).Sum(); if (vertexCount > VertexThreshold) { foreach (var m in renderMeshes) { AddMeshPreviews(m); } } else { var previewMesh = renderMeshes.Length == 1 ? renderMeshes[0] : null; if (previewMesh == null) { previewMesh = new Mesh(); previewMesh.Append(renderMeshes); } AddMeshPreviews(previewMesh); } } } } if (primitives != null) { DrawContext.SetWorldTransform(Autodesk.Revit.DB.Transform.Identity.ScaleBasis(1.0 / Revit.ModelUnits)); foreach (var primitive in primitives) { if (DrawContext.IsInterrupted()) { return; } primitive.Draw(displayStyle); } } } catch (Exception e) { Debug.Fail(e.Source, e.Message); } }
public override Autodesk.Revit.DB.Outline GetBoundingBox(View dBView) { var bbox = rhinoObject.Geometry.GetBoundingBox(false); return(new Autodesk.Revit.DB.Outline(bbox.Min.ToXYZ(), bbox.Max.ToXYZ())); }
/// <summary> /// Set the Internal Legend properties and the associated Element Id and Unique Id /// </summary> /// <param name="view"></param> private void InternalSetLegend(Autodesk.Revit.DB.View view) { InternalLegend = view; InternalElementId = view.Id; InternalUniqueId = view.UniqueId; }
public override bool UseInTransparentPass(View dBView) => rhinoObject.IsMeshable(MeshType.Render);
private void InitFamilyInstance(Autodesk.Revit.DB.FamilySymbol fs, Autodesk.Revit.DB.XYZ point, Autodesk.Revit.DB.View view) { //Phase 1 - Check to see if the object exists and should be rebound var oldFam = ElementBinder.GetElementFromTrace <Autodesk.Revit.DB.FamilyInstance>(DocumentManager.Instance.CurrentDBDocument); //There was a point, rebind to that, and adjust its position if (oldFam != null) { InternalSetFamilyInstance(oldFam); InternalSetFamilySymbol(fs); return; } //Phase 2- There was no existing point, create one TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument); //If the symbol is not active, then activate it if (!fs.IsActive) { fs.Activate(); } var fi = DocumentManager.Instance.CurrentDBDocument.Create.NewFamilyInstance(point, fs, view); InternalSetFamilyInstance(fi); TransactionManager.Instance.TransactionTaskDone(); ElementBinder.SetElementForTrace(InternalElement); }
internal FamilyInstances(Autodesk.Revit.DB.FamilySymbol fs, Autodesk.Revit.DB.XYZ point, Autodesk.Revit.DB.View view) { SafeInit(() => InitFamilyInstance(fs, point, view)); }
/// <summary> /// Initialize a Legend element /// </summary> private void InitLegend(Autodesk.Revit.DB.View view) { InternalSetLegend(view); }
//****************************************************************************************** /// <summary> /// Run process calculations and etc. /// </summary> public override void OnRun() { base.OnRun(); List <ViewPath> fileNames = new List <ViewPath>(); Autodesk.Revit.DB.DWGExportOptions dwgOpt = dlgExportOptions.GetExportOptions(dlgOptions.Copy); dwgOpt.FileVersion = dlgOptions.GetVersion(); Autodesk.Revit.DB.DWGImportOptions dwgImpOpt = dlgOptions.GetImportOptions(); dwgImpOpt.Unit = dlgExportOptions.GetExportUnits(dlgOptions.Copy); m_ExpImpMng.Clean(); try //for demo mode { List <Autodesk.Revit.DB.View> viewList; if (FreezeControl.CurrentView) { Autodesk.Revit.DB.View v = Revit.CommandData().Application.ActiveUIDocument.Document.ActiveView; if (!(v.ViewType == Autodesk.Revit.DB.ViewType.Internal || v.ViewType == Autodesk.Revit.DB.ViewType.DrawingSheet || !v.CanBePrinted)) { viewList = new List <Autodesk.Revit.DB.View>(); viewList.Add(Revit.CommandData().Application.ActiveUIDocument.Document.ActiveView); } else { viewList = new List <Autodesk.Revit.DB.View>(); } } else { viewList = dlgViewSel.GetSelectedViews(); } if (viewList.Count > 0) { IREXProgress Progress = System.SystemBase.Tools.Prograss; Progress.Steps = 2 * viewList.Count; Progress.Show(GetForm()); GetForm().Hide(); fileNames = m_ExpImpMng.Export(viewList, dwgOpt, Progress); m_ExpImpMng.Import(dlgOptions.Copy, dlgOptions.Browse, dlgOptions.BaseName, dwgImpOpt, fileNames, Progress); if (dlgOptions.DeleteView) { m_ExpImpMng.DeleteViews(viewList); } Progress.Hide(); global::System.Windows.Forms.MessageBox.Show(GetForm(), Resources.Strings.Texts.FreezingFinSuccesfull, Resources.Strings.Texts.REX_ModuleDescription); } } catch { } m_ExpImpMng.Clean(); DataRef.OptionPath = dlgOptions.Browse; System.SaveToFile(false, false); }
/// <summary> /// Construct a detail curve by curve /// </summary> /// <param name="view">View</param> /// <param name="curve">Curve</param> private DetailCurve(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.Curve curve) { SafeInit(() => Init(view, curve)); }
public ViewFiltersVisibilitySettingsData(string label, View view) : base(label) { _view = view; }
public ViewFiltersOverrideGraphicSettingsData(string label, View view) : base(label) { _view = view; }
/// protected Dimensions(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.Line line, Autodesk.Revit.DB.ReferenceArray arr, Autodesk.Revit.DB.DimensionType type) { SafeInit(() => InitDimension(view, line, arr, type)); }
/// <summary> /// Private constructor /// </summary> private Legend(Autodesk.Revit.DB.View view) { SafeInit(() => InitLegend(view)); }