protected override void Process(IFCAnyHandle ifcMaterialLayerSetUsage) { base.Process(ifcMaterialLayerSetUsage); IFCAnyHandle ifcMaterialLayerSet = IFCImportHandleUtil.GetRequiredInstanceAttribute(ifcMaterialLayerSetUsage, "ForLayerSet", true); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(ifcMaterialLayerSet)) { MaterialLayerSet = IFCMaterialLayerSet.ProcessIFCMaterialLayerSet(ifcMaterialLayerSet); } string directionAsString = IFCAnyHandleUtil.GetEnumerationAttribute(ifcMaterialLayerSetUsage, "LayerSetDirection"); if (directionAsString == null) { Direction = IFCLayerSetDirection.Axis3; IFCImportFile.TheLog.LogWarning(ifcMaterialLayerSetUsage.StepId, "No LayerSetDirection defined, defaulting to Axis3.", false); } else { Direction = (IFCLayerSetDirection)Enum.Parse(typeof(IFCLayerSetDirection), directionAsString, true); } string directionSenseAsString = IFCAnyHandleUtil.GetEnumerationAttribute(ifcMaterialLayerSetUsage, "DirectionSense"); if (directionSenseAsString == null) { DirectionSense = IFCDirectionSense.Positive; IFCImportFile.TheLog.LogWarning(ifcMaterialLayerSetUsage.StepId, "No DirectionSense defined, defaulting to Positive.", false); } else { DirectionSense = (IFCDirectionSense)Enum.Parse(typeof(IFCDirectionSense), directionSenseAsString, true); } bool found = false; Offset = IFCImportHandleUtil.GetRequiredScaledLengthAttribute(ifcMaterialLayerSetUsage, "OffsetFromReferenceLine", out found); if (!found) { IFCImportFile.TheLog.LogWarning(ifcMaterialLayerSetUsage.StepId, "No Offset defined, defaulting to 0.", false); } }
/// <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); } }
protected override void Process(IFCAnyHandle ifcMaterialLayerSetUsage) { base.Process(ifcMaterialLayerSetUsage); IFCAnyHandle ifcMaterialLayerSet = IFCImportHandleUtil.GetRequiredInstanceAttribute(ifcMaterialLayerSetUsage, "ForLayerSet", true); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(ifcMaterialLayerSet)) { MaterialLayerSet = IFCMaterialLayerSet.ProcessIFCMaterialLayerSet(ifcMaterialLayerSet); } Direction = IFCEnums.GetSafeEnumerationAttribute(ifcMaterialLayerSetUsage, "LayerSetDirection", IFCLayerSetDirection.Axis3); DirectionSense = IFCEnums.GetSafeEnumerationAttribute(ifcMaterialLayerSetUsage, "DirectionSense", IFCDirectionSense.Positive); bool found = false; Offset = IFCImportHandleUtil.GetRequiredScaledLengthAttribute(ifcMaterialLayerSetUsage, "OffsetFromReferenceLine", out found); if (!found) { Importer.TheLog.LogWarning(ifcMaterialLayerSetUsage.StepId, "No Offset defined, defaulting to 0.", false); } }