/// <summary> /// Creates a handle representing an IfcIShapeProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="positionHnd">The profile position.</param> /// <param name="xLen">The profile length.</param> /// <param name="yLen">The profile width.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateIShapeProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle positionHnd, double overallWidth, double overallDepth, double webThickness, double flangeThickness, double? filletRadius) { if (overallWidth < MathUtil.Eps()) throw new ArgumentException("Non-positive width parameter.", "overallWidth"); if (overallDepth < MathUtil.Eps()) throw new ArgumentException("Non-positive depth parameter.", "overallDepth"); if (webThickness < MathUtil.Eps()) throw new ArgumentException("Non-positive web thickness parameter.", "webThickness"); if (flangeThickness < MathUtil.Eps()) throw new ArgumentException("Non-positive flange thickness parameter.", "flangeThickness"); if ((filletRadius != null) && filletRadius.GetValueOrDefault() < MathUtil.Eps()) throw new ArgumentException("Non-positive fillet radius parameter.", "filletRadius"); ValidateParameterizedProfileDef(positionHnd); IFCAnyHandle iShapeProfileDef = CreateInstance(file, IFCEntityType.IfcIShapeProfileDef); SetParameterizedProfileDef(iShapeProfileDef, profileType, profileName, positionHnd); IFCAnyHandleUtil.SetAttribute(iShapeProfileDef, "OverallWidth", overallWidth); IFCAnyHandleUtil.SetAttribute(iShapeProfileDef, "OverallDepth", overallDepth); IFCAnyHandleUtil.SetAttribute(iShapeProfileDef, "WebThickness", webThickness); IFCAnyHandleUtil.SetAttribute(iShapeProfileDef, "FlangeThickness", flangeThickness); IFCAnyHandleUtil.SetAttribute(iShapeProfileDef, "FilletRadius", filletRadius); return iShapeProfileDef; }
/// <summary> /// Creates a handle representing an IfcCircleHollowProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="positionHnd">The profile position.</param> /// <param name="radius">The profile radius.</param> /// <param name="wallThickness">The wall thickness.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateCircleHollowProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle positionHnd, double radius, double wallThickness) { if (wallThickness < MathUtil.Eps()) throw new ArgumentException("Non-positive wall thickness parameter.", "wallThickness"); ValidateCircleProfileDef(positionHnd, radius); IFCAnyHandle circleHollowProfileDef = CreateInstance(file, IFCEntityType.IfcCircleHollowProfileDef); SetCircleProfileDef(circleHollowProfileDef, profileType, profileName, positionHnd, radius); IFCAnyHandleUtil.SetAttribute(circleHollowProfileDef, "WallThickness", wallThickness); return circleHollowProfileDef; }
/// <summary> /// Creates a handle representing an IfcRectangleProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="positionHnd">The profile position.</param> /// <param name="xLen">The profile length.</param> /// <param name="yLen">The profile width.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateRectangleProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle positionHnd, double length, double width) { if (length < MathUtil.Eps()) throw new ArgumentException("Non-positive length parameter.", "length"); if (width < MathUtil.Eps()) throw new ArgumentException("Non-positive width parameter.", "width"); ValidateParameterizedProfileDef(positionHnd); IFCAnyHandle rectangleProfileDef = CreateInstance(file, IFCEntityType.IfcRectangleProfileDef); SetParameterizedProfileDef(rectangleProfileDef, profileType, profileName, positionHnd); IFCAnyHandleUtil.SetAttribute(rectangleProfileDef, "XDim", length); IFCAnyHandleUtil.SetAttribute(rectangleProfileDef, "YDim", width); return rectangleProfileDef; }
/// <summary> /// Creates a handle representing an IfcArbitraryProfileDefWithVoids and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="positionHnd">The profile position.</param> /// <param name="radius">The profile radius.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateArbitraryProfileDefWithVoids(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle outerCurve, HashSet<IFCAnyHandle> innerCurves) { IFCAnyHandleUtil.ValidateSubTypeOf(innerCurves, false, IFCEntityType.IfcCurve); ValidateArbitraryOpenOrClosedProfileDef(outerCurve); IFCAnyHandle arbitraryProfileDefWithVoids = CreateInstance(file, IFCEntityType.IfcArbitraryProfileDefWithVoids); SetArbitraryClosedProfileDef(arbitraryProfileDefWithVoids, profileType, profileName, outerCurve); IFCAnyHandleUtil.SetAttribute(arbitraryProfileDefWithVoids, "InnerCurves", innerCurves); return arbitraryProfileDefWithVoids; }
/// <summary> /// Creates a handle representing an IfcCircleProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="positionHnd">The profile position.</param> /// <param name="radius">The profile radius.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateCircleProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle positionHnd, double radius) { ValidateCircleProfileDef(positionHnd, radius); IFCAnyHandle circleProfileDef = CreateInstance(file, IFCEntityType.IfcCircleProfileDef); SetCircleProfileDef(circleProfileDef, profileType, profileName, positionHnd, radius); return circleProfileDef; }
/// <summary> /// Creates a handle representing an IfcArbitraryClosedProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="outerCurve">The profile curve.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateArbitraryClosedProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle outerCurve) { ValidateArbitraryOpenOrClosedProfileDef(outerCurve); IFCAnyHandle arbitraryClosedProfileDef = CreateInstance(file, IFCEntityType.IfcArbitraryClosedProfileDef); SetArbitraryClosedProfileDef(arbitraryClosedProfileDef, profileType, profileName, outerCurve); return arbitraryClosedProfileDef; }
/// <summary> /// Creates a handle representing an IfcArbitraryOpenProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="curve">The profile curve.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateArbitraryOpenProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle curve) { ValidateArbitraryOpenOrClosedProfileDef(curve); IFCAnyHandle arbitraryOpenProfileDef = CreateInstance(file, IFCEntityType.IfcArbitraryOpenProfileDef); SetProfileDef(arbitraryOpenProfileDef, profileType, profileName); IFCAnyHandleUtil.SetAttribute(arbitraryOpenProfileDef, "Curve", curve); return arbitraryOpenProfileDef; }
/// <summary> /// Sets attributes for IfcArbitraryClosedProfileDef. /// </summary> /// <param name="arbitraryClosedProfileDef">The IfcArbitraryClosedProfileDef.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="outerCurve">The outer curve.</param> private static void SetArbitraryClosedProfileDef(IFCAnyHandle arbitraryClosedProfileDef, IFCProfileType profileType, string profileName, IFCAnyHandle outerCurve) { SetProfileDef(arbitraryClosedProfileDef, profileType, profileName); IFCAnyHandleUtil.SetAttribute(arbitraryClosedProfileDef, "OuterCurve", outerCurve); }
/// <summary> /// Sets attributes for IfcCircleProfileDef. /// </summary> /// <param name="profileDef">The IfcCircleProfileDef.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="position">The profile position.</param> private static void SetCircleProfileDef(IFCAnyHandle profileDef, IFCProfileType profileType, string profileName, IFCAnyHandle position, double radius) { SetParameterizedProfileDef(profileDef, profileType, profileName, position); IFCAnyHandleUtil.SetAttribute(profileDef, "Radius", radius); }
/// <summary> /// Sets attributes for IfcParameterizedProfileDef. /// </summary> /// <param name="profileDef">The IfcProfileDef.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="position">The profile position.</param> private static void SetParameterizedProfileDef(IFCAnyHandle profileDef, IFCProfileType profileType, string profileName, IFCAnyHandle position) { SetProfileDef(profileDef, profileType, profileName); IFCAnyHandleUtil.SetAttribute(profileDef, "Position", position); }
/// <summary> /// Sets attributes for IfcProfileDef. /// </summary> /// <param name="profileDef">The IfcProfileDef.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> private static void SetProfileDef(IFCAnyHandle profileDef, IFCProfileType profileType, string profileName) { IFCAnyHandleUtil.SetAttribute(profileDef, "ProfileType", profileType); IFCAnyHandleUtil.SetAttribute(profileDef, "ProfileName", profileName); }
/// <summary> /// Creates a handle representing an IfcCircleProfileDef and assigns it to the file. /// </summary> /// <param name="file">The file.</param> /// <param name="profileType">The profile type.</param> /// <param name="profileName">The profile name.</param> /// <param name="positionHnd">The profile position.</param> /// <param name="radius">The profile radius.</param> /// <returns>The handle.</returns> public static IFCAnyHandle CreateCircleProfileDef(IFCFile file, IFCProfileType profileType, string profileName, IFCAnyHandle positionHnd, double radius) { if (radius < MathUtil.Eps()) throw new ArgumentException("Non-positive radius parameter.", "radius"); ValidateParameterizedProfileDef(positionHnd); IFCAnyHandle circleProfileDef = CreateInstance(file, IFCEntityType.IfcCircleProfileDef); SetParameterizedProfileDef(circleProfileDef, profileType, profileName, positionHnd); IFCAnyHandleUtil.SetAttribute(circleProfileDef, "Radius", radius); return circleProfileDef; }