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; }
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)); } } }
/// <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); }