Exemple #1
0
        /// <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;
                }
            }
        }
Exemple #3
0
 /// <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()));
        }
Exemple #6
0
        /// <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()));
        }
Exemple #7
0
 /// <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);
     }
 }
Exemple #8
0
 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);
     }
 }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
 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()));
        }
Exemple #14
0
 /// <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);
Exemple #16
0
        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);
        }
Exemple #17
0
 internal FamilyInstances(Autodesk.Revit.DB.FamilySymbol fs, Autodesk.Revit.DB.XYZ point, Autodesk.Revit.DB.View view)
 {
     SafeInit(() => InitFamilyInstance(fs, point, view));
 }
Exemple #18
0
 /// <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);
        }
Exemple #20
0
 /// <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;
 }
Exemple #23
0
 ///
 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));
 }
Exemple #24
0
 /// <summary>
 /// Private constructor
 /// </summary>
 private Legend(Autodesk.Revit.DB.View view)
 {
     SafeInit(() => InitLegend(view));
 }