예제 #1
0
 /// <summary>
 /// From existing element
 /// </summary>
 /// <param name="instance"></param>
 /// <param name="isRevitOwned"></param>
 /// <returns></returns>
 internal static DimensionType FromExisting(Autodesk.Revit.DB.DimensionType instance, bool isRevitOwned)
 {
     return(new DimensionType(instance)
     {
         IsRevitOwned = isRevitOwned
     });
 }
예제 #2
0
        private void Init(Autodesk.Revit.DB.DimensionType dimType, string name)
        {
            var document = DocumentManager.Instance.CurrentDBDocument;

            TransactionManager.Instance.EnsureInTransaction(document);

            // get element from trace
            var element = ElementBinder.GetElementFromTrace <Autodesk.Revit.DB.DimensionType>(document);

            if (element == null)
            {
                element = dimType.Duplicate(name) as Autodesk.Revit.DB.DimensionType;
            }

            InternalSetElement(element);
            TransactionManager.Instance.TransactionTaskDone();
            ElementBinder.SetElementForTrace(this.InternalElement);
        }
예제 #3
0
        public static List <bool> UsesProjectSettings(List <global::Revit.Elements.DimensionType> dimensionType)
        {
            //declare new list to append results to
            List <bool> mask = new List <bool>();

            //cycle through all dimension types supplied.
            foreach (var d in dimensionType)
            {
                Autodesk.Revit.DB.DimensionType internalDimType =
                    (Autodesk.Revit.DB.DimensionType)d.InternalElement;
                try
                {
                    mask.Add(internalDimType.GetUnitsFormatOptions().UseDefault);
                }
                catch
                {
                    mask.Add(true);
                }
            }

            return(mask);
        }
예제 #4
0
 private void InitElement(Autodesk.Revit.DB.DimensionType element)
 {
     InternalSetElement(element);
 }
예제 #5
0
 /// <summary>
 /// DimensionType by duplicating existing.
 /// </summary>
 /// <param name="dimType"></param>
 /// <param name="name"></param>
 private DimensionType(Autodesk.Revit.DB.DimensionType dimType, string name)
 {
     SafeInit(() => Init(dimType, name));
 }
예제 #6
0
 /// <summary>
 /// DimensionType from existing
 /// </summary>
 /// <param name="element"></param>
 private DimensionType(Autodesk.Revit.DB.DimensionType element)
 {
     SafeInit(() => InitElement(element));
 }
예제 #7
0
 /// <summary>
 /// Set the internal Element, ElementId, and UniqueId
 /// </summary>
 /// <param name="element"></param>
 private void InternalSetElement(Autodesk.Revit.DB.DimensionType element)
 {
     InternalRevitElement = element;
     InternalElementId    = element.Id;
     InternalUniqueId     = element.UniqueId;
 }
예제 #8
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);
        }
예제 #9
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));
 }