Example #1
0
 internal static Room FromExisting(Autodesk.Revit.DB.Architecture.Room instance, bool isRevitOwned)
 {
     return(new Room(instance)
     {
         IsRevitOwned = isRevitOwned
     });
 }
        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 #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];
            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 #4
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);
        }
Example #5
0
        private List <ICurve> GetProfiles(DB.Room room)
        {
            var profiles   = new List <ICurve>();
            var boundaries = room.GetBoundarySegments(new SpatialElementBoundaryOptions());

            foreach (var loop in boundaries)
            {
                var poly = new Polycurve(ModelUnits);
                foreach (var segment in loop)
                {
                    var c = segment.GetCurve();

                    if (c == null)
                    {
                        continue;
                    }

                    poly.segments.Add(CurveToSpeckle(c));
                }
                profiles.Add(poly);
            }
            return(profiles);
        }
Example #6
0
 /// <summary>
 /// Set internal element
 /// </summary>
 private void InitElement(Autodesk.Revit.DB.Architecture.Room element)
 {
     InternalSetElement(element);
 }
Example #7
0
 /// <summary>
 /// Create from existing element
 /// </summary>
 /// <param name="Room"></param>
 internal Room(Autodesk.Revit.DB.Architecture.Room Room)
 {
     SafeInit(() => InitElement(Room));
 }
Example #8
0
 /// <summary>
 /// Set the internal Element, ElementId, and UniqueId
 /// </summary>
 private void InternalSetElement(Autodesk.Revit.DB.Architecture.Room element)
 {
     InternalRevitElement = element;
     InternalElementId    = element.Id;
     InternalUniqueId     = element.UniqueId;
 }