Example #1
0
        public static List <Space> RenameSpaces(this IEnumerable <Space> spaces, TextMap textMap, int maxLength = int.MaxValue)
        {
            if (spaces == null || textMap == null)
            {
                return(null);
            }

            List <Space> result = new List <Space>();

            foreach (Space space in spaces)
            {
                Parameter parameter = space?.get_Parameter(BuiltInParameter.ROOM_NAME);
                if (parameter == null)
                {
                    continue;
                }

                string name = parameter.AsString();
                if (name == null)
                {
                    continue;
                }

                string name_New = textMap.Replace(name);
                if (name_New.Length > maxLength)
                {
                    name_New = name_New.Substring(0, maxLength);
                }

                if (name_New == name)
                {
                    continue;
                }

                if (!parameter.Set(name_New))
                {
                    continue;
                }

                result.Add(space);
            }

            return(result);
        }