示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="location"></param>
        /// <param name="boxPlacementType"></param>
        /// <returns></returns>
        public static ImagePlacementOptions Create(Point location, string boxPlacementType)
        {
            if (location == null)
            {
                throw new ArgumentNullException(nameof(location));
            }
            if (string.IsNullOrWhiteSpace(boxPlacementType))
            {
                throw new ArgumentNullException(nameof(boxPlacementType));
            }

            var doc = DocumentManager.Instance.CurrentDBDocument;
            var pt  = location.ToRevitType();
            var bpt = (Autodesk.Revit.DB.BoxPlacement)Enum.Parse(typeof(Autodesk.Revit.DB.BoxPlacement), boxPlacementType);

            TransactionManager.Instance.EnsureInTransaction(doc);
            var imageOptions = new Autodesk.Revit.DB.ImagePlacementOptions(pt, bpt);

            TransactionManager.Instance.TransactionTaskDone();

            return(new ImagePlacementOptions(imageOptions));
        }
示例#2
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);
        }
示例#3
0
 private ImageInstances(Autodesk.Revit.DB.View view, Autodesk.Revit.DB.ElementId typeId, Autodesk.Revit.DB.ImagePlacementOptions options)
 {
     SafeInit(() => InitImageInstance(view, typeId, options));
 }
示例#4
0
 private void InternalSetImagePlacementOptions(Autodesk.Revit.DB.ImagePlacementOptions ipo)
 {
     InternalImagePlacementOptions = ipo;
 }
示例#5
0
 public ImagePlacementOptions(Autodesk.Revit.DB.ImagePlacementOptions ipo)
 {
     InitImagePlacementOptions(ipo);
 }