/// <summary>
        /// Create a new ClassificationCache.
        /// </summary>
        /// <param name="doc">The document.</param>
        public ClassificationCache(Document doc)
        {
            // The UI currently supports only one, but future UIs may support a list.
            IList <IFCClassification> classifications;

            if (IFCClassificationMgr.GetSavedClassifications(doc, null, out classifications))
            {
                foreach (IFCClassification classification in classifications)
                {
                    bool classificationHasName = !string.IsNullOrWhiteSpace(classification.ClassificationName);
                    if (classificationHasName)
                    {
                        ClassificationsByName[classification.ClassificationName] = classification;
                    }
                    if (!string.IsNullOrWhiteSpace(classification.ClassificationFieldName))
                    {
                        string[] splitResult = classification.ClassificationFieldName.Split(new Char[] { ',', ';', '\t', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                        for (int i = 0; i < splitResult.Length; i++)
                        {
                            // found [<Classification Field Names>]
                            string classificationFieldName = splitResult[i].Trim();
                            CustomClassificationCodeNames.Add(classificationFieldName);
                            if (classificationHasName)
                            {
                                FieldNameToClassificationNames[classificationFieldName] = classification.ClassificationName;
                            }
                        }
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Initialization of the Classification Tab when there is saved item
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ClassificationTab_Initialized(object sender, EventArgs e)
        {
            bool hasSavedItem = IFCClassificationMgr.GetSavedClassifications(IFCCommandOverrideApplication.TheDocument, null, out m_newClassificationList);

            m_newClassification = m_newClassificationList[0];                        // Set the default first Classification item to the first member of the List

            if (hasSavedItem == true)
            {
                m_savedClassification = m_newClassification.Clone();
            }

            if (m_newClassification.ClassificationEditionDate <= DateTime.MinValue || m_newClassification.ClassificationEditionDate >= DateTime.MaxValue)
            {
                DateTime today = DateTime.Now;
                m_newClassification.ClassificationEditionDate = today;
            }
        }