/// <summary> /// Validates all data and creates model. /// </summary> /// <returns>Returns XbimReferencedModel == null </returns> public bool TryBuildAndAddTo(IfcStore destinationFederatedModel) { //it's already build, so no need to recreate it if (ReferencedModel != null) { return(true); } if (string.IsNullOrWhiteSpace(Name)) { return(false); } _xbimReferencedModel = destinationFederatedModel.AddModelReference(Name, OrganisationName, OrganisationRole); if (_xbimReferencedModel.Model.GeometryStore.IsEmpty) { var m3D = new Xbim3DModelContext(_xbimReferencedModel.Model); m3D.CreateContext(adjustWcs: adjustWcs); } if (_xbimReferencedModel == null) { return(ReferencedModel != null); } //refresh all OnPropertyChanged("Identifier"); OnPropertyChanged("Name"); OnPropertyChanged("OrganisationName"); OnPropertyChanged("OrganisationRole"); return(ReferencedModel != null); }
/// <summary> /// Add the refrence models /// </summary> /// <param name="file">FileInfo for the xbimf file</param> /// <param name="organizationName">Organisation Name</param> /// <param name="roles"></param> /// <param name="displayName"></param> public void AddRefModel(FileInfo file, string organizationName, RoleFilter roles = RoleFilter.Unknown, string displayName = null) { if (!file.Exists) { throw new FileNotFoundException("Cannot find reference model file", file.FullName); } var actorRoles = GetActorRoles(roles); var roleString = string.Join(",", actorRoles.Select(r => r.RoleString)); //add model to list of referenced models _fedModel.AddModelReference(file.FullName, organizationName, roleString); }