Exemple #1
0
        private string GetSize(Element target)
        {
            switch (TargetType)
            {
            case PAATargetType.Pipe:
                var size = UnitHelper.ConvertFromFootTo(target.GetParameters(PAAContext.SharedParameterDiameter).First().AsDouble(), VLUnitType.millimeter);
                return("DN" + size);

            case PAATargetType.Duct:
                if (IsRoundDuct(target))
                {
                    size = UnitHelper.ConvertFromFootTo(target.GetParameters(PAAContext.SharedParameterDiameter).First().AsDouble(), VLUnitType.millimeter);
                    return("Φ" + size);
                }
                else
                {
                    var height = UnitHelper.ConvertFromFootTo(target.GetParameters(PAAContext.SharedParameterHeight).First().AsDouble(), VLUnitType.millimeter);
                    var width  = UnitHelper.ConvertFromFootTo(target.GetParameters(PAAContext.SharedParameterWidth).First().AsDouble(), VLUnitType.millimeter);
                    return(width + "x" + height);
                }

            case PAATargetType.CableTray:
                size = UnitHelper.ConvertFromFootTo(target.GetParameters(PAAContext.SharedParameterHeight).First().AsDouble(), VLUnitType.millimeter);
                return(size + "x" + size);

            case PAATargetType.Conduit:
            default:
                throw new NotImplementedException("暂未支持该类型");
            }
        }
Exemple #2
0
        /// <summary>
        /// 从 CompoundStructure 中获取标注信息
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="compoundStructure"></param>
        /// <returns></returns>
        public static List <string> FetchTextsFromCompoundStructure(this CSAModel model, Document doc, CompoundStructure compoundStructure)
        {
            var layers = compoundStructure.GetLayers();
            var texts  = new List <string>();

            foreach (var layer in layers)
            {
                string name     = "";
                var    material = doc.GetElement(layer.MaterialId);
                if (material == null)
                {
                    name = "<按类别>";
                }
                else
                {
                    name = doc.GetElement(layer.MaterialId).Name;
                }
                texts.Add(UnitHelper.ConvertFromFootTo(layer.Width, VLUnitType.millimeter) + "厚" + name);
            }
            model.Texts = texts;
            return(texts);
        }
Exemple #3
0
        internal string GetFull_L(Element target)
        {
            var offset = (target as Instance).GetTotalTransform().Origin.Z;

            switch (LocationType)
            {
            case PBPALocationType.Center:
                break;

            case PBPALocationType.Top:
                var DN = GetDN(target);
                offset += DN / 2;
                break;

            case PBPALocationType.Bottom:
                DN      = GetDN(target);
                offset -= DN / 2;
                break;

            default:
                break;
            }
            return(AnnotationPrefix + UnitHelper.ConvertFromFootTo(offset, VLUnitType.millimeter).ToString("f1").TrimEnd(".0"));
        }
Exemple #4
0
        internal string GetFull_L(Element target)
        {
            var offset = target.get_Parameter(BuiltInParameter.RBS_OFFSET_PARAM).AsDouble();//target.GetParameters(PAAContext.SharedParameterOffset).First().AsDouble();

            switch (LocationType)
            {
            case PAALocationType.Center:
                break;

            case PAALocationType.Top:
                var DN = GetDN(target);
                offset += DN / 2;
                break;

            case PAALocationType.Bottom:
                DN      = GetDN(target);
                offset -= DN / 2;
                break;

            default:
                break;
            }
            return(AnnotationPrefix + UnitHelper.ConvertFromFootTo(offset, VLUnitType.millimeter).ToString("f1").TrimEnd(".0"));
        }