private bool GenerateMultiplePipe(PAAModel model) { Document doc = model.Document; View view = doc.GetElement(model.ViewId) as View; if (view == null) { return(false); } model.CalculateLocations(); if (model.IsRegenerate) { model.Clear(); } XYZ parallelVector = model.ParallelVector; XYZ verticalVector = model.VerticalVector; var pipeAndNodePoints = model.PipeAndNodePoints; //线 创建 FamilyInstance line = doc.Create.NewFamilyInstance(model.TargetLocation, model.GetLineFamily(doc), view); //线 旋转处理 LocationPoint locationPoint = line.Location as LocationPoint; locationPoint.RotateByXY(model.TargetLocation, model.VerticalVector); model.LineId = line.Id; UpdateLineParameters(model, pipeAndNodePoints, line, verticalVector); //标注 创建 model.AnnotationIds = new List <ElementId>(); for (int i = 0; i < pipeAndNodePoints.Count(); i++) { var subTag = doc.Create.NewTag(view, pipeAndNodePoints[i].Target, false, TagMode.TM_ADDBY_CATEGORY, TagOrientation.Horizontal, pipeAndNodePoints[i].AnnotationPoint); model.AnnotationIds.Add(subTag.Id); } return(true); }
//public void Regenerate(Document doc, PAAModelForSingle model, Element target) //{ // //FamilyInstance line = doc.GetElement(model.LineId) as FamilyInstance; // //PAAContext.Creator.Regenerate(doc, model, target, (line.Location as LocationPoint).Point - model.LineLocation); //} public bool Regenerate(PAAModel model) { if (model.ModelType == PAAModelType.SinglePipe) { model.Clear(); } return(Generate(model)); }