コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }