Exemple #1
0
 public PipeAnnotationEntity(MultiPipeTagLocation locationType, int viewId, int lineId, List <int> pipeIds, List <int> tagIds, XYZ startPoint)
 {
     LocationType = locationType;
     ViewId       = viewId;
     LineId       = lineId;
     PipeIds      = pipeIds;
     TagIds       = tagIds;
     StartPoint   = startPoint;
 }
Exemple #2
0
        public PipeAnnotationEntityCollection(string data)
        {
            if (string.IsNullOrEmpty(data))
            {
                return;
            }
            var entities         = data.Split(EntitySplitter_Char);
            var propertySplitter = PropertySplitter_Char;

            foreach (var entity in entities)
            {
                if (string.IsNullOrEmpty(entity))
                {
                    continue;
                }
                var properties = entity.Split(propertySplitter);
                if (properties.Count() == 6)
                {
                    MultiPipeTagLocation locationType = (MultiPipeTagLocation)Enum.Parse(typeof(MultiPipeTagLocation), properties[0]);
                    int        viewId          = Convert.ToInt32(properties[1]);
                    int        specialTagFrame = Convert.ToInt32(properties[2]);
                    List <int> pipeIds         = new List <int>();
                    foreach (var item in properties[3].Split(PropertyInnerSplitter_Char))
                    {
                        if (item != "")
                        {
                            pipeIds.Add(Convert.ToInt32(item));
                        }
                    }
                    List <int> annotationIds = new List <int>();
                    foreach (var item in properties[4].Split(PropertyInnerSplitter_Char))
                    {
                        if (item != "")
                        {
                            annotationIds.Add(Convert.ToInt32(item));
                        }
                    }
                    var pointStr   = properties[5].Split(PropertyInnerSplitter_Char);
                    XYZ startPoint = new XYZ(Convert.ToDouble(pointStr[0]), Convert.ToDouble(pointStr[1]), Convert.ToDouble(pointStr[2]));
                    Add(new PipeAnnotationEntity(locationType, viewId, specialTagFrame, pipeIds, annotationIds, startPoint));
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// 生成标注
        /// </summary>
        public AnnotationBuildResult GenerateMultipleTagSymbol(Document document, IEnumerable <ElementId> selectedIds, MultiPipeTagLocation location)
        {
            Document   = document;
            Collection = PipeAnnotationContext.GetCollection(Document);
            PipeAnnotationEntity entity = new PipeAnnotationEntity();

            entity.LocationType = location;
            View view = Document.ActiveView;
            AnnotationBuildResult result = GenerateMultipleTagSymbol(selectedIds, entity, view);

            if (result == AnnotationBuildResult.Success)
            {
                Collection.Add(entity);
                Collection.Save(Document);
            }
            return(result);
        }