예제 #1
0
        /// <summary>
        /// The vertical slant offset of the wall, if it exists.
        /// </summary>
        /// <param name="wallElement">The wall element.</param>
        /// <returns>The one angle, if it exists, or null otherwise.</returns>
        public double?GetUniformSlantAngle(Wall wallElement)
        {
            WallCrossSectionInfo crossSectionInfo = GetCrossSectionInfo(wallElement);

            if (crossSectionInfo == null)
            {
                return(null);
            }

            return(crossSectionInfo.GetUniformSlantAngle());
        }
예제 #2
0
        /// <summary>
        /// Get the cross section information for a particular wall.
        /// Will create the information if it doesn't exist.
        /// </summary>
        /// <param name="wallElement">The wall element.</param>
        /// <returns>
        /// The cross section information for a particular wall, or null if invalid.
        /// </returns>
        public WallCrossSectionInfo GetCrossSectionInfo(Wall wallElement)
        {
            if (wallElement == null)
            {
                return(null);
            }

            WallCrossSectionInfo crossSectionInfo = null;
            ElementId            wallId           = wallElement.Id;

            if (!CrossSectionCache.TryGetValue(wallId, out crossSectionInfo))
            {
                crossSectionInfo          = WallCrossSectionInfo.Create(wallElement);
                CrossSectionCache[wallId] = crossSectionInfo;
            }
            return(crossSectionInfo);
        }