Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        //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));
        }