示例#1
0
        public ParkingBuilding(BlockReference blRef, string blName) : base(blRef, blName)
        {
            IdBlRef          = blRef.Id;
            Height           = Floors * 3;
            FriendlyTypeName = "Паркинг";
            BuildingType     = BuildingTypeEnum.Garage;

            var valPlaces = BlockBase.GetPropValue <string>(ParamPlaces, exactMatch: false);
            var resPlaces = AcadLib.Strings.StringHelper.GetStartInteger(valPlaces);

            if (resPlaces.Success)
            {
                Places = resPlaces.Value;
            }
            else
            {
                BlockBase.AddError($"Не определено кол машиномест из параметра {ParamPlaces} = {valPlaces}");
            }

            // Полилиния контура
            var plContour = BlockBase.FindPolylineInLayer(LayerContour).FirstOrDefault();

            if (plContour == null)
            {
                Inspector.AddError($"Не определена полилиния контура здания парковки на слое {LayerContour}.",
                                   IdBlRef, System.Drawing.SystemIcons.Warning);
            }
            else
            {
                IdPlContour = plContour.Id;
            }
        }
示例#2
0
        public SocialBuilding(BlockReference blRef, string blName, string layerPlContour) : base(blRef, blName)
        {
            Type         = BlockBase.GetPropValue <string>("^ТИП", exactMatch: false);
            Height       = Floors * 4;
            Places       = GetPlaces(ParamPlaces);
            BuildingType = BuildingTypeEnum.Social;

            // Полилиния контура здания
            var plContour = BlockBase.FindPolylineInLayer(layerPlContour).FirstOrDefault();

            if (plContour == null)
            {
                Inspector.AddError($"Не определена полилиния котура здания на слое {layerPlContour}.", System.Drawing.SystemIcons.Warning);
            }
            else
            {
                IdPlContour = plContour.Id;
            }
        }