public RevitRoom(Autodesk.Revit.DB.Architecture.Room room)
        {
            _room = room;

            this.ElementId = room.Id.IntegerValue;
            this.Area      = room.Area;
            RoomName       = room.get_Parameter(BuiltInParameter.ROOM_NAME).AsString();
            RoomNumber     = room.get_Parameter(BuiltInParameter.ROOM_NUMBER).AsString();
            OptionName     = (null == _room.DesignOption) ? string.Empty : _room.DesignOption.Name as string;
            EditedBy       = (_room.Document.IsWorkshared) ? _room.get_Parameter(BuiltInParameter.EDITED_BY).AsString() : string.Empty;
            PhaseName      = room.Document.GetElement(_room.get_Parameter(BuiltInParameter.ROOM_PHASE_ID).AsElementId()).Name;

            if (IsPlaced)
            {
                LocationPoint pt = _room.Location as LocationPoint;
                if (null != pt)
                {
                    XYZ xyzPt = pt.Point;
                    Location_X = xyzPt.X;
                    Location_Y = xyzPt.Y;
                    Location_Z = xyzPt.Z;
                }
            }
            else
            {
                Location_X = Location_Y = Location_Z = null;
            }

            BaseOffset          = _room.BaseOffset;
            LimitOffset         = _room.LimitOffset;
            UnboundedHeight     = _room.UnboundedHeight;
            LevelName           = (null == _room.LevelId) ? null : _room.Level.Name;
            UpperLimitLevelName = (null == _room.UpperLimit) ? null : _room.UpperLimit.Name;
            Volume = (IsPlaced) ? _room.Volume : 0;
        }
Example #2
0
        public BuiltElements.Room RoomToSpeckle(DB.Room revitRoom)
        {
            var profiles = GetProfiles(revitRoom);

            var speckleRoom = new Room();

            speckleRoom.name    = revitRoom.get_Parameter(BuiltInParameter.ROOM_NAME).AsString();
            speckleRoom.number  = revitRoom.Number;
            speckleRoom.center  = (Point)LocationToSpeckle(revitRoom);
            speckleRoom.level   = ConvertAndCacheLevel(revitRoom, BuiltInParameter.ROOM_LEVEL_ID);
            speckleRoom.outline = profiles[0];
            if (profiles.Count > 1)
            {
                speckleRoom.voids = profiles.Skip(1).ToList();
            }

            GetAllRevitParamsAndIds(speckleRoom, revitRoom);

            var displayMesh = new Geometry.Mesh();

            (displayMesh.faces, displayMesh.vertices) = GetFaceVertexArrayFromElement(revitRoom);
            speckleRoom["@displayMesh"] = displayMesh;

            return(speckleRoom);
        }
Example #3
0
        public BuiltElements.Room RoomToSpeckle(DB.Room revitRoom)
        {
            var profiles = GetProfiles(revitRoom);

            var speckleRoom = new Room();

            speckleRoom.name    = revitRoom.get_Parameter(BuiltInParameter.ROOM_NAME).AsString();
            speckleRoom.number  = revitRoom.Number;
            speckleRoom.center  = (Point)LocationToSpeckle(revitRoom);
            speckleRoom.level   = ConvertAndCacheLevel(revitRoom, BuiltInParameter.ROOM_LEVEL_ID);
            speckleRoom.outline = profiles[0];
            speckleRoom.area    = GetParamValue <double>(revitRoom, BuiltInParameter.ROOM_AREA);
            if (profiles.Count > 1)
            {
                speckleRoom.voids = profiles.Skip(1).ToList();
            }

            GetAllRevitParamsAndIds(speckleRoom, revitRoom);
            speckleRoom.displayMesh = GetElementDisplayMesh(revitRoom);

            return(speckleRoom);
        }