private void UpdateDirection(ElementId id, OpeningModel openningModel) { XYZ basicZ = XYZ.BasisZ; XYZ direction = ConvertOpenningStringToObjectReVit.getDirection(openningModel.Geometry.Direction); XYZ axisVec = basicZ.CrossProduct(direction); Line axis = Line.CreateBound(axisVec, axisVec * 2); double angle = basicZ.AngleOnPlaneTo(direction, axisVec); ElementTransformUtils.RotateElement(_doc, id, axis, angle); }
public OpeningModel GetNewOpenningModelFromNewOpenning(Element openning, string suject, bool isRectangle) { OpeningModel openningModel = new OpeningModel(); openningModel.Geometry.Geometry = ConvertObjectReVitToOpenningString.GetGeometry(openning, isRectangle, suject); openningModel.Geometry.Direction = ConvertObjectReVitToOpenningString.GetDirection(openning, isRectangle, suject); openningModel.Geometry.Original = ConvertObjectReVitToOpenningString.GetOrigin(openning, isRectangle, suject); openningModel.IdLocal = openning.UniqueId; return(openningModel); }
private string GetTotalHoursWorked(OpeningModel selectedOpening) { var dateStarted = selectedOpening.Model.StartDate; var dateEnded = selectedOpening.Model.EndDate; TimeSpan?difference = dateEnded - dateStarted; var days = difference.Value.Days; var hours = days * 8; //8 hours a day return(Convert.ToString(hours)); }
public NewHistoryModel(DataAccess.EF.History model, IRepository repository, OpeningModel selectedOpening, CandidateSelection selectedCandidate, NewPlacementModel selectedPlacement) : base(model) { _repository = repository; ModelCopy.DateStarted = selectedOpening.Model.StartDate; ModelCopy.DateEnded = selectedOpening.Model.EndDate; ModelCopy.CandidateId = selectedCandidate.Model.CandidateId; ModelCopy.PlacementId = selectedPlacement.ModelCopy.PlacementId; ModelCopy.HistoryDescription = selectedOpening.Model.Qualification.QualificationCode; _repository.History.Add(ModelCopy); //var candidate = _repository.Candidate.Get(c => c.CandidateId == selectedCandidate.Model.CandidateId); //SelectedCandidate = candidate; }
public static OpeningModel GetValueToExtensibleStorage(Element openning, string subject) { OpeningModel openningModel = new OpeningModel(); Schema schema = DefineSchemaBuilder(subject); Entity entity = openning.GetEntity(schema); if (entity.Schema != null) { GetValueStringOpenningByExtensibleStorage(ref schema, ref entity, openningModel); return(openningModel); } else { return(null); } }
public List <OpeningModel> GetDataFromListElement(List <List <Element> > gennericModelOpennings, string subject) { List <OpeningModel> openningModels = new List <OpeningModel>(); bool isRectangle = true; foreach (List <Element> shapeLists in gennericModelOpennings) { foreach (Element shapeOpenning in shapeLists) { OpeningModel openningModel = GetNewOpenningModelFromNewOpenning(shapeOpenning, subject, isRectangle); openningModels.Add(openningModel); } // item dau tien trong list là list rectangle Openning isRectangle = false; } return(openningModels); }
private void SetCloudOpenings() { CloudOpenings = new List <OpeningModel>(); foreach (SerializedModel sm in CloudOpeningsSerialized) { OpeningModel opm = new OpeningModel(); opm.ElementId = new ElementId(sm.ElementId); opm.HostId = new ElementId(sm.HostId); opm.OpeningStatus = sm.OpeningStatus; opm.GtbPairGuid = sm.GtbPairGuid; opm.LocationPoint = new XYZ(sm.LocationPointX, sm.LocationPointY, sm.LocationPointZ); opm.OpeningType = sm.OpeningType; opm.Diameter = sm.Diameter; opm.Height = sm.Height; opm.Width = sm.Width; opm.Offset = sm.Offset; opm.Depth = sm.Depth; CloudOpenings.Add(opm); } }
public void SetProjectOpenings() { ProjectOpenings = new List <OpeningModel>(); List <FamilyInstance> _allOpenings = new List <FamilyInstance>(); FilteredElementCollector ficol = new FilteredElementCollector(Document); List <FamilyInstance> genModelInstances = ficol.OfClass(typeof(FamilyInstance)) .Select(x => x as FamilyInstance) .Where(y => y.Symbol.Family.FamilyCategory.Id.IntegerValue == (int)BuiltInCategory.OST_GenericModel).ToList(); foreach (FamilyInstance fi in genModelInstances) { Parameter gtbParameter = fi.get_Parameter(new Guid("4a581041-cc9c-4be4-8ab3-156d7b8e17a6")); if (gtbParameter != null && gtbParameter.AsString() != "GTB_Tools_location_marker") { _allOpenings.Add(fi); } } string info = ""; using (Transaction tx = new Transaction(Document, "Adding GtbPairGuid")) { tx.Start(); foreach (FamilyInstance fi in _allOpenings) { OpeningModel openingModel = OpeningModel.Initialize(fi); ProjectOpenings.Add(openingModel); if (!openingModel.InsertGuid()) { info += "ID: " + fi.Id.IntegerValue.ToString() + " - Can't add pair guid to instance!"; } } tx.Commit(); } if (info != "") { TaskDialog.Show("Error!", info); } }
public NewPlacementModel(DataAccess.EF.Placement model, IRepository repository, OpeningModel selectedOpening, CandidateSelection selectedCandidate) : base(model) { _repository = repository; ModelCopy.TotalHoursWorked = GetTotalHoursWorked(selectedOpening); ModelCopy.CandidateId = selectedCandidate.Model.CandidateId; ModelCopy.OpeningNumber = selectedOpening.Model.OpeningNumber; _repository.Placement.Add(ModelCopy); }
public static IEnumerable <ElementManagerWithRevisionSpecify> GetRevisionsGeometryForOpening(OpeningModel opening, IEnumerable <RevisionGetModel> revisions) { foreach (var revision in revisions) { var geometryFind = revision.Managers.FirstOrDefault(x => x.IdManager.Equals(opening.IdManager)); if (geometryFind != null) { yield return(new ElementManagerWithRevisionSpecify() { IdRevision = revision.IdRevision, IdManager = geometryFind.IdManager, Version = revision.Version, Geometry = geometryFind.Geometry }); } else { yield return(new ElementManagerWithRevisionSpecify() { IdRevision = revision.IdRevision, Version = revision.Version }); } } }
public void CompareResources() { ComparedOpenings = new List <OpeningModel>(); ComparedHosts = new List <HostModel>(); //loop through existing openings in project foreach (OpeningModel po in ProjectOpenings) { OpeningModel model = CloudOpenings.Where(e => e.GtbPairGuid == po.GtbPairGuid).FirstOrDefault(); if (model == null) { po.OpeningStatus = OpeningStatus.DeletedInCloud; ComparedOpenings.Add(po); } else { po.OpeningStatus = OpeningStatus.Unchanged; if (po.LocationPoint.DistanceTo(model.LocationPoint) > 0.004) //around 1+ mm { po.OpeningStatus = OpeningStatus.Moved; } if (po.OpeningType == OpeningType.Round) { if (Math.Abs(po.Diameter - model.Diameter) > 0.003 || Math.Abs(po.Offset - model.Offset) > 0.003) //around 1- mm { if (po.OpeningStatus == OpeningStatus.Moved) { po.OpeningStatus = OpeningStatus.MovedAndResized; } else { po.OpeningStatus = OpeningStatus.Resized; } } } if (po.OpeningType == OpeningType.Rectangular) { if (Math.Abs(po.Height - model.Height) > 0.003 || Math.Abs(po.Width - model.Width) > 0.003 || Math.Abs(po.Offset - model.Offset) > 0.003) //around 1- mm { if (po.OpeningStatus == OpeningStatus.Moved) { po.OpeningStatus = OpeningStatus.MovedAndResized; } else { po.OpeningStatus = OpeningStatus.Resized; } } } po.SetCloudOpening(model); ComparedOpenings.Add(po); } } //loop through cloud openings foreach (OpeningModel co in CloudOpenings) { OpeningModel model = ProjectOpenings.Where(e => e.GtbPairGuid == co.GtbPairGuid).FirstOrDefault(); if (model == null) { co.OpeningStatus = OpeningStatus.NewInCloud; co.SetCloudOpening(co); ComparedOpenings.Add(co); } } //loop existing hosts in project foreach (HostModel hm in ProjectHosts) { HostModel cloudModel = CloudHosts.Where(e => e.ElementId.IntegerValue == hm.ElementId.IntegerValue).FirstOrDefault(); if (cloudModel == null) { hm.HostStatus = HostStatus.DeletedInCloud; ComparedHosts.Add(hm); } else { hm.HostStatus = HostStatus.Unchanged; if (Math.Abs(hm.Thickness - cloudModel.Thickness) > 0.003) { hm.HostStatus = HostStatus.ThicknessChanged; } if (hm.BoundingBoxXYZ.Min.DistanceTo(cloudModel.BoundingBoxXYZ.Min) > 0.001 || hm.BoundingBoxXYZ.Max.DistanceTo(cloudModel.BoundingBoxXYZ.Max) > 0.001) { if (hm.HostStatus == HostStatus.Unchanged) { hm.HostStatus = HostStatus.GeometryChanged; } } ComparedHosts.Add(hm); } } //loop cloud hosts foreach (HostModel cloudHost in CloudHosts) { HostModel projectHost = ProjectHosts.Where(e => e.ElementId.IntegerValue == cloudHost.ElementId.IntegerValue).FirstOrDefault(); if (projectHost == null) { cloudHost.HostStatus = HostStatus.NewInCloud; ComparedHosts.Add(cloudHost); } } }
public static void GetValueStringOpenningByExtensibleStorage(ref Schema schema, ref Entity entity, OpeningModel openningModel) { openningModel.IdManager = entity.Get <string>(schema.GetField(Define.CommonId)); openningModel.IdLocal = entity.Get <string>(schema.GetField(Define.ElementId)); openningModel.IdDrawing = entity.Get <string>(schema.GetField(Define.DrawingId)); //openningModel.CreateDate = entity.Get<string>(schema.GetField(Define.CreateDate)); //openningModel.CreateUserId = entity.Get<string>(schema.GetField(Define.CreateUserId)); openningModel.Status = entity.Get <string>(schema.GetField(Define.ElementVersionStatus)); //openningModel.Geometry.UserID = entity.Get<string>(schema.GetField(Define.UserID)); //openningModel.Geometry.VersionId = entity.Get<string>(schema.GetField(Define.VersionId)); //openningModel.Geometry.RevitElementCommonId = entity.Get<string>(schema.GetField(Define.RevitElementCommonId)); openningModel.Geometry.Geometry = entity.Get <string>(schema.GetField(Define.Geometry)); openningModel.Geometry.Original = entity.Get <string>(schema.GetField(Define.Original)); openningModel.Geometry.Direction = entity.Get <string>(schema.GetField(Define.Direction)); openningModel.Geometry.Version = entity.Get <string>(schema.GetField(Define.Version)); //openningModel.Geometry.Status = Common.StringToStatus(entity.Get<string>(schema.GetField(Define.Status))); //openningModel.Geometry.Description = entity.Get<string>(schema.GetField(Define.Description)); //openningModel.Geometry.UpdatedDate = entity.Get<string>(schema.GetField(Define.UpdatedDate)); }