コード例 #1
0
 /// <summary>
 /// Check whether the addresses are the same
 /// </summary>
 public Boolean isUnchanged(IFCFileHeaderItem headerToCheck)
 {
     if (this.Equals(headerToCheck))
     {
         return(true);
     }
     return(false);
 }
コード例 #2
0
 /// <summary>
 /// Actual copy/clone of the Header information.
 /// </summary>
 /// <param name="other">the source File header to clone.</param>
 private IFCFileHeaderItem(IFCFileHeaderItem other)
 {
     this.FileDescription = other.FileDescription;
     this.SourceFileName  = other.SourceFileName;
     this.AuthorName      = other.AuthorName;
     this.AuthorEmail     = other.AuthorEmail;
     this.Organization    = other.Organization;
     this.Authorization   = other.Authorization;
     this.ApplicationName = other.ApplicationName;
     this.VersionNumber   = other.VersionNumber;
     this.FileSchema      = other.FileSchema;
 }
コード例 #3
0
        /// <summary>
        /// Update the file Header (from the UI) into the document 
        /// </summary>
        /// <param name="document">The document storing the saved File Header.</param>
        /// <param name="fileHeaderItem">The File Header item to save.</param>
        public void UpdateFileHeader(Document document, IFCFileHeaderItem fileHeaderItem)
        {
            if (m_schema == null)
            {
                m_schema = Schema.Lookup(s_schemaId);
            }
            if (m_schema != null)
            {
                IList<DataStorage> oldSavedFileHeader = GetFileHeaderInStorage(document, m_schema);
                if (oldSavedFileHeader.Count > 0)
                {
                    Transaction deleteTransaction = new Transaction(document, "Delete old IFC File Header");
                    deleteTransaction.Start();
                    List<ElementId> dataStorageToDelete = new List<ElementId>();
                    foreach (DataStorage dataStorage in oldSavedFileHeader)
                    {
                        dataStorageToDelete.Add(dataStorage.Id);
                    }
                    document.Delete(dataStorageToDelete);
                    deleteTransaction.Commit();
                }
            }

            // Update the address using the new information
            if (m_schema == null)
            {
                m_schema = Schema.Lookup(s_schemaId);
            }
            if (m_schema != null)
            {
                Transaction transaction = new Transaction(document, "Update saved IFC File Header");
                transaction.Start();

                DataStorage fileHeaderStorage = DataStorage.Create(document);

                Entity mapEntity = new Entity(m_schema);
                IDictionary<string, string> mapData = new Dictionary<string, string>();
                if (fileHeaderItem.FileDescription != null) mapData.Add(s_FileDescription, fileHeaderItem.FileDescription.ToString());
                if (fileHeaderItem.SourceFileName != null) mapData.Add(s_SourceFileName, fileHeaderItem.SourceFileName.ToString());
                if (fileHeaderItem.AuthorName != null) mapData.Add(s_AuthorName, fileHeaderItem.AuthorName.ToString());
                if (fileHeaderItem.AuthorEmail != null) mapData.Add(s_AuthorEmail, fileHeaderItem.AuthorEmail.ToString());
                if (fileHeaderItem.Organization != null) mapData.Add(s_Organization, fileHeaderItem.Organization.ToString());
                if (fileHeaderItem.Authorization != null) mapData.Add(s_Authorization, fileHeaderItem.Authorization.ToString());
                if (fileHeaderItem.ApplicationName != null) mapData.Add(s_ApplicationName, fileHeaderItem.ApplicationName.ToString());
                if (fileHeaderItem.VersionNumber != null) mapData.Add(s_VersionNumber, fileHeaderItem.VersionNumber.ToString());
                if (fileHeaderItem.FileSchema != null) mapData.Add(s_FileSchema, fileHeaderItem.FileSchema.ToString());

                mapEntity.Set<IDictionary<string, String>>(s_FileHeaderMapField, mapData);
                fileHeaderStorage.SetEntity(mapEntity);

                transaction.Commit();
            }
        }
コード例 #4
0
ファイル: IFCFileHeader.cs プロジェクト: bimone/IFC-for-Revit
        /// <summary>
        /// Update the file Header (from the UI) into the document
        /// </summary>
        /// <param name="document">The document storing the saved File Header.</param>
        /// <param name="fileHeaderItem">The File Header item to save.</param>
        public void UpdateFileHeader(Document document, IFCFileHeaderItem fileHeaderItem)
        {
            if (m_schema == null)
            {
                m_schema = Schema.Lookup(s_schemaId);
            }

            if (m_schema != null)
            {
                Transaction transaction = new Transaction(document, "Update saved IFC File Header");
                transaction.Start();

                IList <DataStorage> oldSavedFileHeader = GetFileHeaderInStorage(document, m_schema);
                if (oldSavedFileHeader.Count > 0)
                {
                    List <ElementId> dataStorageToDelete = new List <ElementId>();
                    foreach (DataStorage dataStorage in oldSavedFileHeader)
                    {
                        dataStorageToDelete.Add(dataStorage.Id);
                    }
                    document.Delete(dataStorageToDelete);
                }

                DataStorage fileHeaderStorage = DataStorage.Create(document);

                Entity mapEntity = new Entity(m_schema);
                IDictionary <string, string> mapData = new Dictionary <string, string>();
                if (fileHeaderItem.FileDescription != null)
                {
                    mapData.Add(s_FileDescription, fileHeaderItem.FileDescription.ToString());
                }
                if (fileHeaderItem.SourceFileName != null)
                {
                    mapData.Add(s_SourceFileName, fileHeaderItem.SourceFileName.ToString());
                }
                if (fileHeaderItem.AuthorName != null)
                {
                    mapData.Add(s_AuthorName, fileHeaderItem.AuthorName.ToString());
                }
                if (fileHeaderItem.AuthorEmail != null)
                {
                    mapData.Add(s_AuthorEmail, fileHeaderItem.AuthorEmail.ToString());
                }
                if (fileHeaderItem.Organization != null)
                {
                    mapData.Add(s_Organization, fileHeaderItem.Organization.ToString());
                }
                if (fileHeaderItem.Authorization != null)
                {
                    mapData.Add(s_Authorization, fileHeaderItem.Authorization.ToString());
                }
                if (fileHeaderItem.ApplicationName != null)
                {
                    mapData.Add(s_ApplicationName, fileHeaderItem.ApplicationName.ToString());
                }
                if (fileHeaderItem.VersionNumber != null)
                {
                    mapData.Add(s_VersionNumber, fileHeaderItem.VersionNumber.ToString());
                }
                if (fileHeaderItem.FileSchema != null)
                {
                    mapData.Add(s_FileSchema, fileHeaderItem.FileSchema.ToString());
                }

                mapEntity.Set <IDictionary <string, String> >(s_FileHeaderMapField, mapData);
                fileHeaderStorage.SetEntity(mapEntity);

                transaction.Commit();
            }
        }
コード例 #5
0
ファイル: IFCFileHeader.cs プロジェクト: bimone/IFC-for-Revit
        /// <summary>
        /// Get saved IFC File Header
        /// </summary>
        /// <param name="document">The document where File Header information is stored.</param>
        /// <param name="fileHeader">Output of the saved File Header from the extensible storage.</param>
        /// <returns>Status whether there is existing saved File Header.</returns>
        public bool GetSavedFileHeader(Document document, out IFCFileHeaderItem fileHeader)
        {
            fileHeader = new IFCFileHeaderItem();

            if (m_schema == null)
            {
                m_schema = Schema.Lookup(s_schemaId);
            }

            if (m_schema == null)
            {
                return(false);
            }

            IList <DataStorage> fileHeaderStorage = GetFileHeaderInStorage(document, m_schema);

            if (fileHeaderStorage.Count == 0)
            {
                return(false);
            }

            // expected only one File Header information in the storage
            Entity savedFileHeader = fileHeaderStorage[0].GetEntity(m_schema);
            IDictionary <string, string> savedFileHeaderMap = savedFileHeader.Get <IDictionary <string, string> >(s_FileHeaderMapField);

            if (savedFileHeaderMap.ContainsKey(s_FileDescription))
            {
                fileHeader.FileDescription = savedFileHeaderMap[s_FileDescription];
            }
            if (savedFileHeaderMap.ContainsKey(s_SourceFileName))
            {
                fileHeader.SourceFileName = savedFileHeaderMap[s_SourceFileName];
            }
            if (savedFileHeaderMap.ContainsKey(s_AuthorName))
            {
                fileHeader.AuthorName = savedFileHeaderMap[s_AuthorName];
            }
            if (savedFileHeaderMap.ContainsKey(s_AuthorEmail))
            {
                fileHeader.AuthorEmail = savedFileHeaderMap[s_AuthorEmail];
            }
            if (savedFileHeaderMap.ContainsKey(s_Organization))
            {
                fileHeader.Organization = savedFileHeaderMap[s_Organization];
            }
            if (savedFileHeaderMap.ContainsKey(s_Authorization))
            {
                fileHeader.Authorization = savedFileHeaderMap[s_Authorization];
            }
            if (savedFileHeaderMap.ContainsKey(s_ApplicationName))
            {
                fileHeader.ApplicationName = savedFileHeaderMap[s_ApplicationName];
            }
            if (savedFileHeaderMap.ContainsKey(s_VersionNumber))
            {
                fileHeader.VersionNumber = savedFileHeaderMap[s_VersionNumber];
            }
            if (savedFileHeaderMap.ContainsKey(s_FileSchema))
            {
                fileHeader.FileSchema = savedFileHeaderMap[s_FileSchema];
            }

            return(true);
        }
コード例 #6
0
        /// <summary>
        /// Initialization of File Header tab
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FileHeaderTab_Initialized(object sender, EventArgs e)
        {
            bool hasSavedItem = m_newFileHeader.GetSavedFileHeader(IFCCommandOverrideApplication.TheDocument, out m_newFileHeaderItem);
            if (hasSavedItem == true)
            {
                m_savedFileHeaderItem = m_newFileHeaderItem.Clone();
            }

            // File Description and Source File name are assigned by exporter later on and therefore needs to be set to null for the UI for the null value text to be displayed
            m_newFileHeaderItem.FileDescription = null;
            m_newFileHeaderItem.SourceFileName = null;
            m_newFileHeaderItem.FileSchema = null;

            // Application Name and Number are fixed for the software release and will not change, therefore they are always forced set here
            m_newFileHeaderItem.ApplicationName = IFCCommandOverrideApplication.TheDocument.Application.VersionName;
            m_newFileHeaderItem.VersionNumber = IFCCommandOverrideApplication.TheDocument.Application.VersionBuild;

        }
コード例 #7
0
        /// <summary>
        /// Get saved IFC File Header
        /// </summary>
        /// <param name="document">The document where File Header information is stored.</param>
        /// <param name="fileHeader">Output of the saved File Header from the extensible storage.</param>
        /// <returns>Status whether there is existing saved File Header.</returns>
        public bool GetSavedFileHeader (Document document, out IFCFileHeaderItem fileHeader)
        {
            IFCFileHeaderItem fileHeaderItemSaved = new IFCFileHeaderItem();

            if (m_schema == null)
            {
                m_schema = Schema.Lookup(s_schemaId);
            }
            if (m_schema != null)
            {
                IList<DataStorage> fileHeaderStorage = GetFileHeaderInStorage(document, m_schema);

                if (fileHeaderStorage.Count > 0)
                {

                    // expected only one File Header information in the storage
                    Entity savedFileHeader = fileHeaderStorage[0].GetEntity(m_schema);
                    IDictionary<string, string> savedFileHeaderMap = savedFileHeader.Get<IDictionary<string, string>>(s_FileHeaderMapField);
                    if (savedFileHeaderMap.ContainsKey(s_FileDescription))
                        fileHeaderItemSaved.FileDescription = savedFileHeaderMap[s_FileDescription];
                    if (savedFileHeaderMap.ContainsKey(s_SourceFileName))
                        fileHeaderItemSaved.SourceFileName = savedFileHeaderMap[s_SourceFileName];
                    if (savedFileHeaderMap.ContainsKey(s_AuthorName))
                        fileHeaderItemSaved.AuthorName = savedFileHeaderMap[s_AuthorName];
                    if (savedFileHeaderMap.ContainsKey(s_AuthorEmail))
                        fileHeaderItemSaved.AuthorEmail = savedFileHeaderMap[s_AuthorEmail];
                    if (savedFileHeaderMap.ContainsKey(s_Organization))
                        fileHeaderItemSaved.Organization = savedFileHeaderMap[s_Organization];
                    if (savedFileHeaderMap.ContainsKey(s_Authorization))
                        fileHeaderItemSaved.Authorization = savedFileHeaderMap[s_Authorization];
                    if (savedFileHeaderMap.ContainsKey(s_ApplicationName))
                        fileHeaderItemSaved.ApplicationName = savedFileHeaderMap[s_ApplicationName];
                    if (savedFileHeaderMap.ContainsKey(s_VersionNumber))
                        fileHeaderItemSaved.VersionNumber = savedFileHeaderMap[s_VersionNumber];
                    if (savedFileHeaderMap.ContainsKey(s_FileSchema))
                        fileHeaderItemSaved.FileSchema = savedFileHeaderMap[s_FileSchema];

                    fileHeader = fileHeaderItemSaved;
                    return true;
                }
            }

            fileHeader = fileHeaderItemSaved;
            return false;
        }
コード例 #8
0
 /// <summary>
 /// Actual copy/clone of the Header information.
 /// </summary>
 /// <param name="other">the source File header to clone.</param>
 private IFCFileHeaderItem(IFCFileHeaderItem other)
 {
     this.FileDescription = other.FileDescription;
     this.SourceFileName = other.SourceFileName;
     this.AuthorName = other.AuthorName;
     this.AuthorEmail = other.AuthorEmail;
     this.Organization = other.Organization;
     this.Authorization = other.Authorization;
     this.ApplicationName = other.ApplicationName;
     this.VersionNumber = other.VersionNumber;
     this.FileSchema = other.FileSchema;
 }
コード例 #9
0
 /// <summary>
 /// Check whether the addresses are the same
 /// </summary>
 public Boolean isUnchanged(IFCFileHeaderItem headerToCheck)
 {
     if (this.Equals(headerToCheck))
         return true;
     return false;
 }