Table of Contents

Namespace GeometryHelper

Namespaces

GeometryHelper.Arranging
GeometryHelper.CadConvert
GeometryHelper.Clash
GeometryHelper.Core
GeometryHelper.Enums
GeometryHelper.Export
GeometryHelper.Extension
GeometryHelper.Geometry
GeometryHelper.IfcConvert
GeometryHelper.Meshing
GeometryHelper.Packing
GeometryHelper.Spatial
GeometryHelper.TeklaConvert

Classes

GeometryHelperLog

Where the GeometryHelper libraries report what they left out or could not do.

Conversions that walk many objects skip what they cannot read rather than throw, because one bad object should not cost the rest. What was skipped, and why, is written here, so that an empty or short result can be explained: an IFC file that could not be opened, a reference model that is not IFC, a body the transformation could not rebuild.

Messages go to Trace under the category TraceCategory unless Writer is set. The Output window of Visual Studio shows them while debugging, and DebugView shows them from a plugin running inside Tekla or AutoCAD. Set Writer to send them to a file, a status bar or another logging library instead, and Enable to false to turn them off. Writer has examples for the console, the status bar of Tekla Structures and a file.

Writing a message never throws: a writer that fails is ignored, so logging cannot break the work it reports on. Like Global, the settings are shared by the whole process.

MassProperties3

How much a body weighs, where its weight is centred, and how it resists turning.

MeasureComparison3

A body's material measured every way: its volume, centroid and surface area by each method, how far apart they come, and how far its faces close.

OffsetOptions

How an offset shapes the corners where its edges pull apart: the join, how far a sharp corner may reach, and how finely a round corner is drawn.

The options are immutable, so one instance can be shared between threads and kept as a setting. Default gives sharp corners, as AutoCAD's OFFSET does with its default gap type.

Structs

Angle

Represents an angle as a single value that can be read as either radians or degrees.

The value is stored in radians because every angular API built on this type works in radians: GeoVector2.GetAngleTo and GeoRectangle2.AngleRad in the plane, GeoVector3.GetAngleTo and GeoTransform3.RotationX in space, and Tolerance.EqualAngleRad in both. Degrees are a view over that value, converted on read.

There is deliberately no public constructor taking a bare double. The reason this type exists is that a number on its own does not say which unit it is in, so the unit has to be named at the point of creation: use FromRadians(double) or FromDegrees(double).

Tolerance

Tolerance used for geometric comparisons.

Every comparison in this library that can be affected by floating point error takes a tolerance, and every such method has an overload without one that reads Global. Neither library compares coordinates with ==.

Global is one setting shared by both libraries. Changing it for a drawing in the plane changes it for a model in space as well.

Make one with a constructor, or take Default or Global. new Tolerance() is not the default tolerance: like default(Tolerance) it runs no constructor and has every threshold at 0, under which only an exact match is equal and a face out of flat by rounding alone is refused.