override protected void Process(IFCAnyHandle styledItem) { base.Process(styledItem); IFCAnyHandle item = IFCImportHandleUtil.GetOptionalInstanceAttribute(styledItem, "Item"); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(item)) { Item = IFCRepresentationItem.ProcessIFCRepresentationItem(item); } Name = IFCImportHandleUtil.GetOptionalStringAttribute(styledItem, "Name", null); List <IFCAnyHandle> styles = IFCAnyHandleUtil.GetAggregateInstanceAttribute <List <IFCAnyHandle> >(styledItem, "Styles"); if (styles == null || styles.Count == 0 || IFCAnyHandleUtil.IsNullOrHasNoValue(styles[0])) { Importer.TheLog.LogMissingRequiredAttributeError(styledItem, "Styles", true); } if (styles.Count > 1) { Importer.TheLog.LogWarning(styledItem.StepId, "Multiple presentation styles found for IfcStyledItem - using first.", false); } Styles = IFCPresentationStyleAssignment.ProcessIFCPresentationStyleAssignment(styles[0]); }
override protected void Process(IFCAnyHandle styledItem) { base.Process(styledItem); IFCAnyHandle item = IFCImportHandleUtil.GetOptionalInstanceAttribute(styledItem, "Item"); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(item)) { Item = IFCRepresentationItem.ProcessIFCRepresentationItem(item); } Name = IFCImportHandleUtil.GetOptionalStringAttribute(styledItem, "Name", null); List <IFCAnyHandle> styles = IFCAnyHandleUtil.GetAggregateInstanceAttribute <List <IFCAnyHandle> >(styledItem, "Styles"); if (styles == null || styles.Count == 0) { Importer.TheLog.LogMissingRequiredAttributeError(styledItem, "Styles", true); } foreach (IFCAnyHandle style in styles) { if (IFCAnyHandleUtil.IsNullOrHasNoValue(style)) { continue; } if (IFCImportFile.TheFile.SchemaVersionAtLeast(IFCSchemaVersion.IFC4Obsolete) && IFCAnyHandleUtil.IsValidSubTypeOf(style, IFCEntityType.IfcPresentationStyle)) { Styles.Add(IFCPresentationStyle.ProcessIFCPresentationStyle(style)); } else { if (Styles.Count != 0) { Importer.TheLog.LogWarning(styledItem.StepId, "Multiple presentation styles found for IfcStyledItem - using first.", false); continue; } IFCPresentationStyleAssignment presentationStyleAssignment = IFCPresentationStyleAssignment.ProcessIFCPresentationStyleAssignment(style); if (presentationStyleAssignment != null && presentationStyleAssignment.Styles != null) { Styles.AddRange(presentationStyleAssignment.Styles); } } } }
/// <summary> /// Processes an IfcPresentationStyleAssignment entity handle. /// </summary> /// <param name="ifcPresentationStyleAssignment">The IfcPresentationStyleAssignment handle.</param> /// <returns>The IFCPresentationStyleAssignment object.</returns> public static IFCPresentationStyleAssignment ProcessIFCPresentationStyleAssignment(IFCAnyHandle ifcPresentationStyleAssignment) { if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcPresentationStyleAssignment)) { Importer.TheLog.LogNullError(IFCEntityType.IfcPresentationStyleAssignment); return(null); } IFCEntity presentationStyleAssignment; if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcPresentationStyleAssignment.StepId, out presentationStyleAssignment)) { presentationStyleAssignment = new IFCPresentationStyleAssignment(ifcPresentationStyleAssignment); } return(presentationStyleAssignment as IFCPresentationStyleAssignment); }
/// <summary> /// Get the IFCSurfaceStyle associated with this IFCStyledItem. /// </summary> /// <returns>The IFCSurfaceStyle, if any.</returns> public IFCSurfaceStyle GetSurfaceStyle() { IFCPresentationStyleAssignment styles = Styles; if (styles != null) { ISet <IFCPresentationStyle> presentationStyles = styles.Styles; foreach (IFCPresentationStyle presentationStyle in presentationStyles) { if (presentationStyle is IFCSurfaceStyle) { return(presentationStyle as IFCSurfaceStyle); } } } return(null); }
/// <summary> /// Processes an IfcPresentationStyleAssignment entity handle. /// </summary> /// <param name="ifcPresentationStyleAssignment">The IfcPresentationStyleAssignment handle.</param> /// <returns>The IFCPresentationStyleAssignment object.</returns> public static IFCPresentationStyleAssignment ProcessIFCPresentationStyleAssignment(IFCAnyHandle ifcPresentationStyleAssignment) { if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcPresentationStyleAssignment)) { Importer.TheLog.LogNullError(IFCEntityType.IfcPresentationStyleAssignment); return null; } IFCEntity presentationStyleAssignment; if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcPresentationStyleAssignment.StepId, out presentationStyleAssignment)) presentationStyleAssignment = new IFCPresentationStyleAssignment(ifcPresentationStyleAssignment); return (presentationStyleAssignment as IFCPresentationStyleAssignment); }