private static string MaterialToString(IFCAnyHandle handle)
        {
            IFCMaterial material = IFCMaterial.ProcessIFCMaterial(handle);

            if (material != null)
            {
                return(material.Name);
            }
            return(null);
        }
Exemple #2
0
        /// <summary>
        /// Set a transparent material (by default) for spaces and openings.
        /// </summary>
        /// <param name="doc">The document.</param>
        /// <param name="category">The category class.</param>
        /// <param name="id">The id of the generating entity.</param>
        /// <param name="subCategoryName">The name of the created (sub-)category.</param>
        private static void SetMaterialForSpacesAndOpenings(Document doc, int id, Category category, string subCategoryName)
        {
            IFCMaterialInfo materialInfo = null;

            if (String.Compare(subCategoryName, "IfcOpeningElement", true) == 0)
            {
                materialInfo = IFCMaterialInfo.Create(new Color(255, 165, 0), 64, null, null, ElementId.InvalidElementId);
            }
            else if (String.Compare(subCategoryName, "IfcSpace", true) == 0)
            {
                materialInfo = IFCMaterialInfo.Create(new Color(164, 232, 232), 64, null, null, ElementId.InvalidElementId);
            }

            if (materialInfo != null)
            {
                ElementId createdElementId = IFCMaterial.CreateMaterialElem(doc, id, subCategoryName, materialInfo);
                if (createdElementId != ElementId.InvalidElementId)
                {
                    Material material = doc.GetElement(createdElementId) as Material;
                    category.Material = material;
                }
            }
        }
        /// <summary>
        /// Returns an ElementId value corresponding to an handle based on its entity type.
        /// </summary>
        /// <param name="handle">The entity handle that contains information to relate to the user in string format.</param>
        /// <returns>The representation of the data as an ElementId, if valid.</returns>
        static public ElementId ToElementId(IFCAnyHandle handle)
        {
            ElementId valueAsElementId = ElementId.InvalidElementId;

            if (IFCAnyHandleUtil.IsNullOrHasNoValue(handle))
            {
                return(valueAsElementId);
            }

            IFCEntityType handleType = IFCAnyHandleUtil.GetEntityType(handle);

            switch (handleType)
            {
            case IFCEntityType.IfcMaterial:
                IFCMaterial material = IFCMaterial.ProcessIFCMaterial(handle);
                if (material != null)
                {
                    valueAsElementId = material.GetMaterialElementId();
                }
                break;
            }

            return(valueAsElementId);
        }