internal static Column ToColumn(this IfcColumn column) { var elementTransform = column.ObjectPlacement.ToTransform(); var solid = column.RepresentationsOfType <IfcExtrudedAreaSolid>().FirstOrDefault(); foreach (var cis in column.ContainedInStructure) { cis.RelatingStructure.ObjectPlacement.ToTransform().Concatenate(elementTransform); } if (solid != null) { var solidTransform = solid.Position.ToTransform(); var c = solid.SweptArea.ToCurve(); var result = new Column(solidTransform.Origin, (IfcLengthMeasure)solid.Depth, new Profile((Polygon)c), BuiltInMaterials.Steel, elementTransform, 0.0, 0.0, 0.0, false, IfcGuid.FromIfcGUID(column.GlobalId), column.Name); return(result); } return(null); }
/// <summary> /// Convert an IfcColumn to a Column. /// </summary> /// <param name="column"></param> private static Column ToColumn(this IfcColumn column) { var elementTransform = column.ObjectPlacement.ToTransform(); var solid = column.RepresentationsOfType <IfcExtrudedAreaSolid>().FirstOrDefault(); foreach (var cis in column.ContainedInStructure) { cis.RelatingStructure.ObjectPlacement.ToTransform().Concatenate(elementTransform); } if (solid != null) { var solidTransform = solid.Position.ToTransform(); var c = solid.SweptArea.ToICurve(); var framingType = new StructuralFramingType(Guid.NewGuid().ToString(), new Profile((Polygon)c), BuiltInMaterials.Steel); var result = new Column(solidTransform.Origin, (IfcLengthMeasure)solid.Depth, framingType, elementTransform, 0.0, 0.0); result.Name = column.Name; return(result); } return(null); }