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; }
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); }
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); }
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); }
/// <summary> /// Set internal element /// </summary> private void InitElement(Autodesk.Revit.DB.Architecture.Room element) { InternalSetElement(element); }
/// <summary> /// Create from existing element /// </summary> /// <param name="Room"></param> internal Room(Autodesk.Revit.DB.Architecture.Room Room) { SafeInit(() => InitElement(Room)); }
/// <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; }