コード例 #1
0
ファイル: IFCMaterialList.cs プロジェクト: whztt07/RevitIFC
        /// <summary>
        /// Processes an IfcMaterialList entity.
        /// </summary>
        /// <param name="ifcMaterialList">The IfcMaterialList handle.</param>
        /// <returns>The IFCMaterialList object.</returns>
        public static IFCMaterialList ProcessIFCMaterialList(IFCAnyHandle ifcMaterialList)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcMaterialList))
            {
                IFCImportFile.TheLog.LogNullError(IFCEntityType.IfcMaterialList);
                return(null);
            }

            IFCEntity materialList;

            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcMaterialList.StepId, out materialList))
            {
                materialList = new IFCMaterialList(ifcMaterialList);
            }
            return(materialList as IFCMaterialList);
        }
コード例 #2
0
        /// <summary>
        /// Processes IfcRelAssociatesMaterial.
        /// </summary>
        /// <param name="ifcRelAssociatesMaterial">The IfcRelAssociatesMaterial handle.</param>
        void ProcessIFCRelAssociatesMaterial(IFCAnyHandle ifcRelAssociatesMaterial)
        {
            IFCAnyHandle ifcMaterialSelect = IFCAnyHandleUtil.GetInstanceAttribute(ifcRelAssociatesMaterial, "RelatingMaterial");

            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcMaterialSelect))
            {
                IFCImportFile.TheLog.LogNullError(IFCEntityType.IfcRelAssociatesMaterial);
                return;
            }

            // Deal with various types of IFCMaterialSelect.
            if (IFCAnyHandleUtil.IsSubTypeOf(ifcMaterialSelect, IFCEntityType.IfcMaterial))
            {
                MaterialSelect = IFCMaterial.ProcessIFCMaterial(ifcMaterialSelect);
            }
            else if (IFCAnyHandleUtil.IsSubTypeOf(ifcMaterialSelect, IFCEntityType.IfcMaterialLayer))
            {
                MaterialSelect = IFCMaterialLayer.ProcessIFCMaterialLayer(ifcMaterialSelect);
            }
            else if (IFCAnyHandleUtil.IsSubTypeOf(ifcMaterialSelect, IFCEntityType.IfcMaterialLayerSet))
            {
                MaterialSelect = IFCMaterialLayerSet.ProcessIFCMaterialLayerSet(ifcMaterialSelect);
            }
            else if (IFCAnyHandleUtil.IsSubTypeOf(ifcMaterialSelect, IFCEntityType.IfcMaterialLayerSetUsage))
            {
                MaterialSelect = IFCMaterialLayerSetUsage.ProcessIFCMaterialLayerSetUsage(ifcMaterialSelect);
            }
            else if (IFCAnyHandleUtil.IsSubTypeOf(ifcMaterialSelect, IFCEntityType.IfcMaterialList))
            {
                MaterialSelect = IFCMaterialList.ProcessIFCMaterialList(ifcMaterialSelect);
            }
            else
            {
                IFCImportFile.TheLog.LogUnhandledSubTypeError(ifcMaterialSelect, "IfcMaterialSelect", false);
            }
        }
コード例 #3
0
        /// <summary>
        /// Processes an IfcMaterialList entity.
        /// </summary>
        /// <param name="ifcMaterialList">The IfcMaterialList handle.</param>
        /// <returns>The IFCMaterialList object.</returns>
        public static IFCMaterialList ProcessIFCMaterialList(IFCAnyHandle ifcMaterialList)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcMaterialList))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcMaterialList);
                return null;
            }

            IFCEntity materialList;
            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcMaterialList.StepId, out materialList))
                materialList = new IFCMaterialList(ifcMaterialList);
            return (materialList as IFCMaterialList);
        }