コード例 #1
0
        /// <summary>
        /// Create a new ClassificationCache.
        /// </summary>
        /// <param name="doc">The document.</param>
        public ClassificationCache(Document doc)
        {
            IFCClassificationMgr savedClassificationFromUI = new IFCClassificationMgr(doc);

            // The UI currently supports only one, but future UIs may support a list.
            IList<IFCClassification> classifications;
            if (savedClassificationFromUI.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;
                        }
                    }
                }
            }
        }