private static string MaterialToString(IFCAnyHandle handle) { IFCMaterial material = IFCMaterial.ProcessIFCMaterial(handle); if (material != null) { return(material.Name); } return(null); }
/// <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); }