ShareParameterExists() public static method

Check to see whether specified parameter exists in room object.
public static ShareParameterExists ( Room roomObj, String paramName, Parameter &sharedParam ) : bool
roomObj Room Room object used to get parameter
paramName String parameter name to be checked
sharedParam Parameter shared parameter returned
return bool
Example #1
0
        /// <summary>
        /// Check to see if we need to update spreadsheet data according to this Revit room.
        /// We don't need to update spreadsheet rooms if Revit room:
        /// . Which is one unplaced room.
        /// . The room has area which is zero.
        /// . Special room which doesn't have custom shared parameter at all.
        /// </summary>
        /// <param name="activeDocument">Current active document.</param>
        /// <param name="roomObj">Room object to be checked.</param>
        /// <param name="roomArea">Room area of this Revit room.</param>
        /// <param name="externalId">The value of custom shared parameter of this room.</param>
        /// <returns>Indicates whether it succeeded to get room area and shared parameter value.</returns>
        private static bool ValidateRevitRoom(Document activeDocument, Room room, ref double roomArea, ref String externalId)
        {
            roomArea   = 0.0f;
            externalId = String.Empty;
            if (null == room.Location || null == activeDocument.GetElement(room.LevelId))
            {
                return(false);
            }

            // get Area of room, if converting to double value fails, skip this.
            // if the area is zero to less than zero, skip the update too
            try
            {
                // get area without unit, then converting it to double will be ok.
                String areaStr = RoomsData.GetProperty(activeDocument, room, BuiltInParameter.ROOM_AREA, false);
                roomArea = Double.Parse(areaStr);
                if (roomArea <= double.Epsilon)
                {
                    return(false);
                }
            }
            catch
            {
                // parse double value failed, continue the loop
                return(false);
            }

            // get the shared parameter value of room
            Parameter externalIdSharedParam = null;
            bool      bExist = RoomsData.ShareParameterExists(room, RoomsData.SharedParam, ref externalIdSharedParam);

            if (false == bExist || null == externalIdSharedParam)
            {
                return(false);
            }
            else
            {
                externalId = externalIdSharedParam.AsString();
            }
            return(true);
        }
Example #2
0
        /// <summary>
        /// Clear all values of shared parameters
        /// Allow user to create more unplaced rooms and update map relationships between Revit and spreadsheet rooms.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void clearIDButton_Click(object sender, EventArgs e)
        {
            int nCount = 0;

            foreach (Room room in m_roomData.Rooms)
            {
                Parameter param  = null;
                bool      bExist = RoomsData.ShareParameterExists(room, RoomsData.SharedParam, ref param);
                if (bExist && null != param && false == String.IsNullOrEmpty(param.AsString()))
                {
                    param.Set(String.Empty);
                    nCount++;
                }
            }

            // update Revit rooms display
            if (nCount > 0)
            {
                UpdateFormDisplay(false);
            }
        }