<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Xbim.Common</name>
    </assembly>
    <members>
        <member name="T:Xbim.Common.EntityAttributeState">
            <summary>
              The scope of the entity attribute
            </summary>
        </member>
        <member name="T:Xbim.Common.IndexedProperty">
            <summary>
            Indicates that this property plays a role in some inverse relation
            </summary>
        </member>
        <member name="P:Xbim.Common.EntityAttributeAttribute.MinCardinality">
            <summary>
            Minimal cardinality is an array to represent constraints for nested lists
            </summary>
        </member>
        <member name="P:Xbim.Common.EntityAttributeAttribute.MaxCardinality">
            <summary>
            Maximal cardinality is an array to represent constraints for nested lists
            </summary>
        </member>
        <member name="M:Xbim.Common.Collections.ItemSet`1.GetAt(System.Int32)">
            <summary>
            This function makes it possible to add nested lists if this is the case.
            It works like InsertAt is the object doesn't exist already. You cannot create lists with wholes.
            </summary>
            <param name="index">Index of the object</param>
            <returns>Object at specified index. If it is a nested list and it doesn't exist it gets created.</returns>
        </member>
        <member name="T:Xbim.Common.Configuration.InternalServiceProvider">
            <summary>
            An Internal Service provider which serves as a fall back to a minimal services implementation when the consuming application
            does not yet explicitly registered the xbim services or <see cref="T:System.IServiceProvider"/> on <see cref="T:Xbim.Common.Configuration.XbimServices"/>. 
            The fallback services provides a safe baseline but provides no Logging capability.
            XBIM INTERNAL USE ONLY. Prefer <see cref="T:Xbim.Common.Configuration.XbimServices"/>
            </summary>
        </member>
        <member name="P:Xbim.Common.Configuration.InternalServiceProvider.ServiceProvider">
            <summary>
            Gets the internal ServiceProvider
            </summary>
        </member>
        <member name="P:Xbim.Common.Configuration.InternalServiceProvider.Current">
            <summary>
            Gets the Current instance of the <see cref="T:Xbim.Common.Configuration.InternalServiceProvider"/>
            </summary>
        </member>
        <member name="T:Xbim.Common.Configuration.IXbimConfigurationBuilder">
            <summary>
            An interface for configuring the xbim system
            </summary>
        </member>
        <member name="P:Xbim.Common.Configuration.IXbimConfigurationBuilder.Services">
            <summary>
            Gets the internal <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> where xbim is configured
            </summary>
        </member>
        <member name="T:Xbim.Common.Configuration.XbimConfigurationBuilderExtensions">
            <summary>
            Extension methods for setting up xbim services using an <see cref="T:Xbim.Common.Configuration.IXbimConfigurationBuilder"/>
            </summary>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimConfigurationBuilderExtensions.AddLoggerFactory(Xbim.Common.Configuration.IXbimConfigurationBuilder,Microsoft.Extensions.Logging.ILoggerFactory)">
            <summary>
            Replaces the default <see cref="T:Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory"/> with a <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/> of your choosing.
            </summary>
            <remarks>Typically you'd use this where you already have a logging system in DI. You could 
            alternatively add a logging implementation directly to via <see cref="M:Xbim.Common.Configuration.XbimServices.ConfigureServices(System.Action{Microsoft.Extensions.DependencyInjection.IServiceCollection})"/>.
            Using this method means you share a <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/> across your application rather than having multiple ILoggingFactories/></remarks>
            <param name="builder"></param>
            <param name="loggerFactory"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimConfigurationBuilderExtensions.AddModelProvider``1(Xbim.Common.Configuration.IXbimConfigurationBuilder)">
            <summary>
            Replace the default <see cref="T:Xbim.IO.IModelProvider"/> with your own
            </summary>
            <param name="builder"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServiceExtensions.GetLoggerFactory(Xbim.Common.Configuration.XbimServices)">
            <summary>
            Convenience method to simplify getting the <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/>
            </summary>
            <param name="services"></param>
            <returns>The <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/></returns>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServiceExtensions.CreateLogger``1(Xbim.Common.Configuration.XbimServices)">
            <summary>
            Convenience method to simplify creating an <see cref="T:Microsoft.Extensions.Logging.ILogger`1"/> outside of DI
            </summary>
            <param name="services"></param>
            <returns>The <see cref="T:Microsoft.Extensions.Logging.ILogger`1"/></returns>
        </member>
        <member name="T:Xbim.Common.Configuration.XbimServices">
            <summary>
            Class encapsulating the services  and <see cref="T:System.IServiceProvider"/>s used in the application.
            Consumers can provide their own built service provider, or configure the internal xbim <see cref="T:System.IServiceProvider"/>.
            </summary>
            <remarks>the service delays building of the internal service provider when not configured to support 
            late configutation of the services.
            In this case the service provision is delagated to <see cref="T:Xbim.Common.Configuration.InternalServiceProvider"/></remarks>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServices.CreateInstanceInternal">
            <summary>
            Create a new XbimServiecs instance. For testing only
            </summary>
            <returns>a private instance of the <see cref="T:Xbim.Common.Configuration.XbimServices"/></returns>
        </member>
        <member name="P:Xbim.Common.Configuration.XbimServices.Current">
            <summary>
            The shared instance of all Xbim Services
            </summary>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServices.UseExternalServiceCollection(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
            <summary>
            Override xbim's internal <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> with another instance for configuration
            </summary>
            <remarks>Use this when you have an existing <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> instance you want to share with 
            xbim's internal DI. E.g. Useful if you want to share logging configuration. 
            <para>Note: XbimServices will automatically generate its own <see cref="T:System.IServiceProvider"/> which will 
            still resuly in an additional <see cref="T:System.IServiceProvider"/> in your application. 
            </para>
            <para>
            Prefer <see cref="M:Xbim.Common.Configuration.XbimServices.UseExternalServiceProvider(System.IServiceProvider)"/> if you have access to an <see cref="T:System.IServiceProvider"/> -
            unless you are sure what you're doing. If using this external Service Collection approach you could consider using XbimService's <see cref="P:Xbim.Common.Configuration.XbimServices.ServiceProvider"/> 
            instance for resolving your own services.</para>
            </remarks>
            <param name="collection"></param>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServices.UseExternalServiceProvider(System.IServiceProvider)">
            <summary>
            Override xbim's internal <see cref="T:System.IServiceProvider"/> with a configured instance
            </summary>
            <remarks>
            After calling this any prior or future calls to <see cref="M:Xbim.Common.Configuration.XbimServices.ConfigureServices(System.Action{Microsoft.Extensions.DependencyInjection.IServiceCollection})"/> will be ignored.
            Use this when you have access to an existing <see cref="T:System.IServiceProvider"/> and need to take full 
            control of the DependencyInjection setup for xbim Toolkit in your application.
            <para>
            You must add a logging implementation satisifing <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/>, 
            or call <see cref="M:Xbim.Common.Configuration.XbimServiceCollectionExtensions.AddXbimLogging(Microsoft.Extensions.DependencyInjection.IServiceCollection)"/>.
            Be sure to call AddXbimToolkit() on your ServiceCollection if using the IfcStore and related 
            <see cref="T:Xbim.IO.IModelProvider"/> services
            </para>
            </remarks>
            <param name="provider"></param>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="P:Xbim.Common.Configuration.XbimServices.IsBuilt">
            <summary>
            Flag indicating if the DI container has been built
            </summary>
        </member>
        <member name="P:Xbim.Common.Configuration.XbimServices.IsConfigured">
            <summary>
            Flag indicating the DI container has been configured. When not configured the ServiceProvider will delay being built, and
            service provision will fall back to an internal <see cref="T:System.IServiceProvider"/>.
            </summary>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServices.ConfigureServices(System.Action{Microsoft.Extensions.DependencyInjection.IServiceCollection})">
            <summary>
            Configure the internal <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.
            </summary>
            <remarks>This cannot be called after <see cref="P:Xbim.Common.Configuration.XbimServices.ServiceProvider"/> has been used since 
            the DI  Services will have be built by then</remarks>
            <exception cref="T:System.InvalidOperationException">When calling after the DI is built</exception>
        </member>
        <member name="P:Xbim.Common.Configuration.XbimServices.ServiceProvider">
            <summary>
            Gets a <see cref="T:System.IServiceProvider"/> used for resolving xbim services 
            </summary>
            <remarks>To avoid building the service provider too early, when not using an external service provider, 
            and the xbim service has not been configured, the system reverts to a basic internal <see cref="T:System.IServiceProvider"/></remarks>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServices.Rebuild">
            <summary>
            Rebuilds the internal xbim DI / Service Provider. For internal and unit test purposes only
            </summary>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServices.Dispose">
            <summary>
            Disposes of the XbimServices and resources held by any <see cref="T:System.IServiceProvider"/> in use.
            Note: Not for general usage. This is typically used to reset the singleton DI between tests
            or to ensure orderly release of resources at application close.
            </summary>
        </member>
        <member name="M:Xbim.Common.Configuration.XbimServiceCollectionExtensions.AddXbimLogging(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
            <summary>
            Adds xbim default logging services to the specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>
            </summary>
            <remarks>This is automatically applied to the service collection after all other services.
            Adding it earlier will prevent real logging systems from being added</remarks>
            <param name="services"></param>
            <returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so additional calls can be chained</returns>
        </member>
        <member name="P:Xbim.Common.Delta.TransactionLog.Changes">
            <summary>
            All new, changed or deleted entities except for these which were created and deleted in transaction
            </summary>
        </member>
        <member name="M:Xbim.Common.Delta.TransactionLog.#ctor(Xbim.Common.ITransaction)">
            <summary>
            Transaction log which listens to all changes within a transaction. 
            Thic constructor should always be used in 'using' statement so it releases reference to transaction.
            </summary>
            <param name="transaction">Transaction to be used as a scope of this log</param>
        </member>
        <member name="P:Xbim.Common.Delta.EntityChange.Entity">
            <summary>
            Entity which changes are described in this log entry
            </summary>
        </member>
        <member name="P:Xbim.Common.Delta.EntityChange.ChangeType">
            <summary>
            Prioritized log. Priorities are as follows: Deleted > New > Modified.
            This assumes that if entity is deleted at the end it is not very important what happened in the meantime.
            If it is new it is not that important if it was modified because full entity is interesting.
            Modifications are interesting in all other cases. Special case is entity which was created and deleted within a scope
            of one transaction but this should already be filtered out from the transaction log.
            </summary>
        </member>
        <member name="P:Xbim.Common.Delta.EntityChange.OriginalEntity">
            <summary>
            String representation of the entity before the first change was made to it. If this is a new entity this is empty string.
            </summary>
        </member>
        <member name="P:Xbim.Common.Delta.EntityChange.CurrentEntity">
            <summary>
            Current string representation of the entity. This is computed dynamically when you ask for 
            this so make sure not to ask for it after further modifications.
            </summary>
        </member>
        <member name="P:Xbim.Common.Delta.EntityChange.ChangedProperties">
            <summary>
            Changed properties within a scope of transaction. Current values are evaluated when you enumerate this property so
            make sure to ask for it before you do any further modifications. This property will return empty enumeration if 
            ChangeType is anything else than 'Modified'.
            </summary>
        </member>
        <member name="T:Xbim.Common.Enumerations.ValidationFlags">
            <summary>
            Set the level of the Validation, multiple flags can be set
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.ValidationFlags.None">
            <summary>
            Executes no validation checks
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.ValidationFlags.Properties">
            <summary>
            Checks that all property values meet their Ifc Schema Constraints
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.ValidationFlags.Inverses">
            <summary>
            Checks all inverse realationships meet their Ifc Schema Constraints
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.ValidationFlags.All">
            <summary>
            Checks all validation levels
            </summary>
        </member>
        <member name="T:Xbim.Common.Enumerations.XbimRepresentationContextType">
            <summary>
            </summary>
        </member>
        <member name="T:Xbim.Common.Enumerations.XbimRepresentationIdentifierType">
            <summary>
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.Curve2D">
            <summary>
              2 dimensional curves
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.GeometricSet">
            <summary>
              Points, curves, surfaces (2 or 3 dimensional)
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.GeometricCurveSet">
            <summary>
              Points, curves (2 or 3 dimensional)
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.SurfaceModel">
            <summary>
              Face based and shell based surface model
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.SolidModel">
            <summary>
              Swept solid, Boolean results and Brep bodies
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.SweptSolid">
            <summary>
              Swept area solids, by extrusion and revolution
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.Brep">
            <summary>
              Faceted Brep's with and without voids
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.CSG">
            <summary>
              Boolean results of operations between solid models, half spaces and Boolean results
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.Clipping">
            <summary>
              Boolean differences between swept area solids, half spaces and Boolean results
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.AdvancedSweptSolid">
            <summary>
              Swept area solids created by sweeping a profile along a directrix
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.BoundingBox">
            <summary>
              Simplistic 3D representation by a bounding box
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.SectionedSpine">
            <summary>
              cross section based representation of a spine curve and planar cross sections.
              It can represent a surface or a solid and the interpolations of the between the cross sections is not defined
            </summary>
        </member>
        <member name="F:Xbim.Common.Enumerations.XbimRepresentationType.MappedRepresentation">
            <summary>
              representation based on mapped item(s), referring to a representation map. 
              Note: it can be seen as an inserted block reference. 
              The shape representation of the mapped item has a representation type declaring the type of its representation items.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.ExceptionExtensions.ErrorStack(System.Exception,System.String)">
            <summary>
              Returns a list of indented strings for each error in the exception
            </summary>
        </member>
        <member name="T:Xbim.Common.Exceptions.XbimException">
            <summary>
            Represents an error that occurred within the XBIM application
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimException"/> class.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="inner">The inner <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="T:Xbim.Common.Exceptions.XbimGeometryException">
            <summary>
            Represents an error that occurrs while processing geometry for a model file.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimGeometryException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimGeometryException"/> class.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimGeometryException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimGeometryException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimGeometryException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimGeometryException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="inner">The inner <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimGeometryFaceSetTooLargeException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimGeometryFaceSetTooLargeException"/> class.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimGeometryFaceSetTooLargeException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimGeometryFaceSetTooLargeException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimGeometryFaceSetTooLargeException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimGeometryFaceSetTooLargeException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="inner">The inner <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="T:Xbim.Common.Exceptions.XbimParserException">
            <summary>
            Represents an error that occurrs while parsing a model file.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimParserException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimParserException"/> class.
            </summary>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimParserException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimParserException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Xbim.Common.Exceptions.XbimParserException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Xbim.Common.Exceptions.XbimParserException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="inner">The inner <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="T:Xbim.Common.ExpressValidation.Validator">
            <summary>
            This class provides basic POCO access to validation errors.
            Validation reporting should build upon this.
            </summary>
        </member>
        <member name="M:Xbim.Common.ExpressValidation.Validator.Validate(Xbim.Common.IModel)">
            <summary>
            Validates all entities in the model, unless count limits are reached
            </summary>
            <returns>An enumerable of results</returns>
        </member>
        <member name="M:Xbim.Common.ExpressValidation.Validator.Validate(System.Collections.Generic.IEnumerable{Xbim.Common.IPersistEntity})">
            <summary>
            Validates all provided entities, unless count limits are reached
            </summary>
            <returns>An enumerable of results</returns>
        </member>
        <member name="M:Xbim.Common.ExpressValidation.Validator.Validate(Xbim.Common.IPersistEntity)">
            <summary>
            Validates the entities, unless count limits are reached 
            </summary>
            <returns>An enumerable of results</returns>
        </member>
        <member name="P:Xbim.Common.Federation.FederatedModelInstances.Item(Xbim.Common.XbimInstanceHandle)">
            <summary>
            Returns the instance that corresponds to this handle
            </summary>
            <param name="handle"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Federation.IReferencedModel.Identifier">
            <summary>
            Returns the unique identifier for this reference within the scope of the referencing model. 
            </summary>
        </member>
        <member name="P:Xbim.Common.Federation.IReferencedModel.Name">
            <summary>
            Mostly URI of the federated model so that when this is serialized it can be used to reopen the federation
            </summary>
        </member>
        <member name="P:Xbim.Common.Federation.IReferencedModel.Role">
            <summary>
            The role of the organisation that created this model, i.e. Architect, Engineer etc
            </summary>
        </member>
        <member name="P:Xbim.Common.Federation.IReferencedModel.OwningOrganisation">
            <summary>
            The name of the organisation that created and owns this model
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IGeometryManager">
            <summary>
            Interface to hold the geometry engine, a specific instance must be created, see Xbim.ModelGeometry.Converter
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStore.BeginInit">
            <summary>
            Clears the store of any existing geometries and prepares for an update
            </summary>
            <returns>A Transaction for bulk addition of geometries, prevents update by other processes, if null an Initialisation is in process already or the owning model is not available for write operations </returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStore.BeginRead">
            <summary>
            Returns a reader for accessing geometry in the store, nb this is a disposable and should be used in using{} context
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreInitialiser.AddShapeGeometry(Xbim.Common.Geometry.XbimShapeGeometry)">
            <summary>
            Adds a shape geometry to the store under transaction
            </summary>
            <param name="shapeGeometry"></param>
            <returns>Returns the ID of the shape geometry</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreInitialiser.AddShapeInstance(Xbim.Common.Geometry.XbimShapeInstance,System.Int32)">
            <summary>
            Adds a shape instance to the store under transaction
            </summary>
            <param name="shapeInstance">The shape instance data</param>
            <param name="geometryId">the Id of the geometry shape, must be obtained from AddShapeGeometry</param>
            <returns>return the Id of the shape instance</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreInitialiser.AddRegions(Xbim.Common.Geometry.XbimRegionCollection)">
            <summary>
            Adds a collection of geometric regions to the store, this groups geometries into major spatial collection areas 
            </summary>
            <param name="regions"></param>
            <returns>the unique Id of the region collection</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreInitialiser.Commit">
            <summary>
            Finalises an initialisation and flushes all operations to the store, the transaction must have been obtained from BeginInit
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IGeometryStoreReader.ShapeInstances">
            <summary>
            Returns an enumerable of all the shape instances in the store
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreReader.ShapeInstancesOfContext(System.Int32)">
            <summary>
            Returns an enumerable of all the shape instances in the store with the specified context Id
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IGeometryStoreReader.ShapeGeometries">
            <summary>
            Returns an enumerable of all the shape geometries in the store
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreReader.ShapeGeometry(System.Int32)">
            <summary>
            Returns the shape geometry of the specifed geometry Id
            </summary>
            <param name="shapeGeometryLabel"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreReader.ShapeGeometryOfInstance(Xbim.Common.Geometry.XbimShapeInstance)">
            <summary>
            Returns the geometry of the specified instance
            </summary>
            <param name="shapeInstance"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreReader.ShapeInstancesOfEntity(Xbim.Common.IPersistEntity)">
            <summary>
            Returns an enumerable of all the shape instances in the store for the specified entity
            </summary>
            <param name="entity"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreReader.ShapeInstancesOfStyle(System.Int32)">
            <summary>
            Returns an enumerable of all the shape instances in the store for the specified style
            </summary>
            <param name="styleLabel">The identifier of the required style</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IGeometryStoreReader.ShapeInstancesOfGeometry(System.Int32)">
            <summary>
            Returns an enumerable of all the shape instances in the store with the specified geometry
            </summary>
            <param name="geometryLabel"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Geometry.IGeometryStoreReader.StyleIds">
            <summary>
            Returns a unique set of all the style IDs of the all the shape instances in the store       
            </summary>
            <returns></returns>        
        </member>
        <member name="P:Xbim.Common.Geometry.IGeometryStoreReader.ContextRegions">
            <summary>
            Returns the region collection for the store
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IGeometryStoreReader.ContextIds">
            <summary>
            Returns an eumerable of all the unique context ids in the store
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimCurve">
            <summary>
            A curve in 2D or 3D
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimCurve.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimEdge.EdgeStart">
            <summary>
            Start point (vertex) of the edge
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimEdge.EdgeEnd">
            <summary>
            End point (vertex) of the edge
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimEdge.EdgeGeometry">
            <summary>
            The curve defining the form of the edge
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimEdge.Length">
            <summary>
            The length of edge, including any curvature
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimEdge.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimFace.Normal">
            <summary>
            The topological normal of the face, nb.  this may differ from the normal of the bound
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimFace.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimGeometryObject">
            <summary>
            Abstract class for all Xbim Geometry objects
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimGeometryObject.IsSet">
            <summary>
            True if the geometry object is a collection
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IXbimGeometryObject.Transform(Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Returns a copy of the current object transformed by matrix3D, it is gauranteed to return the same type as "this"
            </summary>
            <param name="matrix3D"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.IXbimGeometryObject.TransformShallow(Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Returns a new version of the object transformed but does not perform a deepcopy, changes to this  will be reflected in the copy and vice versa
            </summary>
            <param name="matrix3D"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimGeometryObject.Tag">
            <summary>
            Gets or sets an arbitrary object value that can be used to store custom information about this element
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimGeometryObjectSet">
            <summary>
            A mixed collection of geometry objects
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IXbimGeometryObjectSet.Sew">
            <summary>
            Sews the objects to remove duplicate vertices and edges and make the highest level topology
            </summary>
            <returns>True if the object was sewn, false it is already sewn</returns>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimGeometryObjectSet.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimMesh.IsSolid">
            <summary>
            The mesh is a closed manifold shape
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimOrientedEdge">
            <summary>
            An oriented edge is an edge constructed from another edge and contains a BOOLEAN direction flag to indicate whether or not the orientation of the constructed edge agrees with the orientation of the original edge.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimOrientedEdge.EdgeElement">
            <summary>
            Edge entity used to construct this oriented edge.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimOrientedEdge.SameSense">
            <summary>
            If TRUE the topological orientation as used coincides with the orientation from start vertex to end vertex of the edge element. If FALSE otherwise.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimOrientedEdge.EdgeStart">
            <summary>
            Start point (vertex) of the edge, after considering orientation
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimOrientedEdge.EdgeEnd">
            <summary>
            End point (vertex) of the edge, after considering orientation
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimPoint">
            <summary>
            A 3 Dimensional Point
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.ShapeLabel">
            <summary>
            The unique label of this shape instance
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.IfcShapeLabel">
            <summary>
            The label of the IFC object that defines this shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.GeometryHash">
            <summary>
             Hash of the shape Geometry, based on the IFC representation, this is not unique
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.Cost">
            <summary>
            The cost of this shape in bytes
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.ReferenceCount">
            <summary>
            The number of references to this shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.LOD">
            <summary>
            The level of detail or development that the shape is suited for
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.Format">
            <summary>
            The format in which the shape data is represented, i.e. triangular mesh, polygon, opencascade
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.BoundingBox">
            <summary>
            The bounding box of this instance in world coordinates, it has been transformed to the correct location
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.ShapeDataCompressed">
            <summary>
            The geometry data defining the shape in zip compression
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.ShapeData">
            <summary>
            The geometry data defining the shape in  uncompressed format
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeGeometryData.LocalShapeDisplacement">
            <summary>
            If the shape coordinates are large the actual serialised geometry should be
            reduced to local origin to avoid problems with floating point precission
            of float coordinates. This displacement should be presented in 
            LocalShapeDisplacement and should be added to placement of the shape in the product.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.InstanceLabel">
            <summary>
            The unique label of this shape instance
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.IfcTypeId">
            <summary>
            The IFC type of the product this instance represents
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.IfcProductLabel">
            <summary>
            The label of the IFC Product object that  this instance fully or partly defines
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.StyleLabel">
            <summary>
            The style that this shape is presented in when it overrides the shape style
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.ShapeGeometryLabel">
            <summary>
            The id of the shape geometry  that this is an instance of
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.RepresentationContext">
            <summary>
            The label of the IFC representation context of this instance
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.RepresentationType">
            <summary>
            What type of representation, typically this is how the shape has been generated, i.e. openings have been applied or not applied
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.Transformation">
            <summary>
            The transformation to be applied to shape to place it in the world coordinates
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShapeInstanceData.BoundingBox">
            <summary>
            The bounding box of this instance, does not require tranformation to place in world coordinates
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimShell">
            <summary>
            A set of connected faces
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShell.IsClosed">
            <summary>
            The shell is a closed manifold shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimShell.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IXbimShellSet.Union(System.Double)">
            <summary>
            Unions all elements in the  set and updates the set to the result
            </summary>
            <param name="tolerance"></param>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimSolid">
            <summary>
            A manifold closed shell
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimSolid.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IXbimSolidSet.Add(Xbim.Common.Geometry.IXbimGeometryObject)">
            <summary>
            Will add any solids in the geomtry object to the set
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimSolidSet.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimSurface.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimVertex.VertexGeometry">
            <summary>
            The geometric point, which defines the position in geometric space of the vertex.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimVertex.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.IXbimWire">
            <summary>
                A wire is a connected set of one or more edges
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.Edges">
            <summary>
            List of connected oriented edges
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.Vertices">
            <summary>
            Unique vertices in the shape, not in order
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.Points">
            <summary>
            Points in order of the wire
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.Normal">
            <summary>
             The normal of the loop, calculated using the Newell's normal method
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.IsPlanar">
            <summary>
            The vertices lay on a planar surface within the specified tolerance of the vertices
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.IsClosed">
            <summary>
            The wire is a closed loop
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.Start">
            <summary>
            First point of the wire
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.End">
            <summary>
            Last point of the wire
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.Length">
            <summary>
            Length of the wire
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.IXbimWire.Trim(System.Double,System.Double,System.Double,Microsoft.Extensions.Logging.ILogger)">
            <summary>
            Returns a segment of the wire from start to end position
            </summary>
            <param name="start">The distanceto trim from the start of the wire</param>
            <param name="end">The distance to trim to, from the start of the wire</param>
            <param name="tolerance">The distance at which two points are considered to be the same</param>
            <param name="logger">An optional logger</param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Geometry.IXbimWire.ToBRep">
            <summary>
            Converts the object to a string in BRep format
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimBBoxClusterElement">
            <summary>
            This class is used to organise clusters of elements in case a scene needs to be split up.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.LengthExponent">
            <summary>
              The power of the length base quantity.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.MassExponent">
            <summary>
              The power of the mass base quantity.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.TimeExponent">
            <summary>
              The power of the time base quantity.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.ElectricCurrentExponent">
            <summary>
              The power of the electric current base quantity.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.ThermodynamicTemperatureExponent">
            <summary>
              The power of the thermodynamic temperature base quantity.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.AmountOfSubstanceExponent">
            <summary>
              The power of the amount of substance base quantity.
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimDimensionalExponents.LuminousIntensityExponent">
            <summary>
              The power of the luminous longensity base quantity.
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimShapeEqualityComparer">
            <summary>
            Conpares the shape data of two geometry objects to see if they are the same
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimGeometryData.TriangulatedFaceSet">
            <summary>
            Generates a triangulated face set from the binary shape data
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimGeometryData.TransformBy(Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Transforms the shape data of the geometry by the matrix
            NB This is a deprecated method and will be removed for the latest geometry support and is only used in first geometry implementation
            </summary>
            <param name="matrix"></param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimGeometryData.#ctor(System.Int32,System.Int32,Xbim.Common.Geometry.XbimGeometryType,System.Int16,System.Byte[],System.Byte[],System.Int32)">
            <summary>
            The constructs an XbimGeoemtryData object, the geometry hash is calculated from the array of shape data
            </summary>
            <param name="geometrylabel"></param>
            <param name="productLabel"></param>
            <param name="geomType"></param>
            <param name="ifcTypeId"></param>
            <param name="shape"></param>
            <param name="transform"></param>
            <param name="styleLabel"></param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimGeometryData.IsGeometryEqual(Xbim.Common.Geometry.XbimGeometryData)">
            <summary>
            Returns true if the two geometries have identical shape data
            </summary>
            <param name="to"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimGeometryData.GenerateGeometryHash(System.Byte[])">
            <summary>
            Generates a FNV hash for any array of bytes
            </summary>
            <param name="array"></param>
            <returns></returns>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimGeometryRepresentationType">
            <summary>
            Discriminates representations on the application of boolean operations
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryRepresentationType.OpeningsAndAdditionsIncluded">
            <summary>
            boolean operations with voids and extensions are included in the resulting representation
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryRepresentationType.OpeningsAndAdditionsExcluded">
            <summary>
            boolean operations with voids and extensions are excluded in the resulting representation
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryRepresentationType.OpeningsAndAdditionsOnly">
            <summary>
            representation of voids and extensions only 
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.BoundingBox">
            <summary>
            This type can be transformed to XbimRect3D via XbimRect3D.FromArray(geomdata.ShapeData)
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.Region">
            <summary>
            Regions (clusters of elements in a model) are stored for the project in one database row.
            Use XbimRegionCollection.FromArray(ShapeData) for deserialising.
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.TransformOnly">
            <summary>
            For products with no geometry use TransformOnly to store the transform matrix associated with the placement.
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.TriangulatedMeshHash">
            <summary>
            128 bit hash of a geometry
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.Polyhedron">
            <summary>
            The xBIM variant of the PLY format, a set of nominally planar polygons, stored in ascii format
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.TriangulatedPolyhedron">
            <summary>
            A triangulated Polyhedron mesh
            </summary> = 
        </member>
        <member name="F:Xbim.Common.Geometry.XbimGeometryType.PolyhedronBinary">
            <summary>
            The xBIM variant of the PLY format, a set of nominally planar polygons but stored in binary format
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initialises with doubles
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.FromString(System.String)">
            <summary>
            Converts string of 15 reals to a matrix
            </summary>
            <param name="val"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.Multiply(Xbim.Common.Geometry.XbimMatrix3D,Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Performs a matrix multiplication
            </summary>
            <param name="mat1">mat First operand</param>
            <param name="mat2">mat2 Second operand</param>
            <returns>dest if specified, mat otherwise</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.Equal(Xbim.Common.Geometry.XbimMatrix3D,Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Compares two matrices for equality within a certain margin of error
            </summary>
            <param name="a">a First matrix</param>
            <param name="b">b Second matrix</param>
            <returns>True if a is equivalent to b</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.Copy(Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Creates a new instance of a mat4
            </summary>
            <param name="m">Single[16] containing values to initialize with</param>
            <returns>New mat4New mat4</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.CreateRotation(Xbim.Common.Geometry.XbimPoint3D,Xbim.Common.Geometry.XbimPoint3D)">
            <summary>
            Creates a rotation matrix converting from a starting direction to a desired direction.
            </summary>
            <param name="fromDirection">Starting direction</param>
            <param name="toDirection">Desired direction</param>
            <returns>the matrix that applied to <see paramref="fromDirection"/> results in <see paramref="toDirection"/></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.CreateScale(System.Double)">
            <summary>
            Creates a 3D scaling matrix.
            </summary>
            <param name="uniformScale">>The scaling factor along all axis.</param>
            <returns>The new scaling matrix</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.CreateScale(System.Double,System.Double,System.Double)">
            <summary>
            Creates a 3D scaling matrix.
            </summary>
            <param name="scaleX">>The scaling factor along the x-axis.</param>
            <param name="scaleY">>The scaling factor along the y-axis.</param>
            <param name="scaleZ">>The scaling factor along the z-axis.</param>
            <returns>The new scaling matrix</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.CreateLookAt(Xbim.Common.Geometry.XbimVector3D,Xbim.Common.Geometry.XbimVector3D,Xbim.Common.Geometry.XbimVector3D)">
            <summary>
            Creates a matrix projecting points onto a plane by passing a camera position, target and up vector.
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.CreateTranslation(System.Double,System.Double,System.Double)">
            <summary>
            Creates a 3D translation matrix.
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.CreateTranslation(Xbim.Common.Geometry.XbimVector3D)">
            <summary>
            Creates a 3D translation matrix.
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.Str">
            <summary>
            Returns a string representation of a mat4
            </summary>
            <returns>String representation of mat</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.Decompose(Xbim.Common.Geometry.XbimVector3D@,Xbim.Common.Geometry.XbimQuaternion@,Xbim.Common.Geometry.XbimVector3D@)">
            <summary>
            Decomposes a matrix into a scale, rotation, and translation.
            </summary>
            <param name="scale">When the method completes, contains the scaling component of the decomposed matrix.</param>
            <param name="rotation">When the method completes, contains the rtoation component of the decomposed matrix.</param>
            <param name="translation">When the method completes, contains the translation component of the decomposed matrix.</param>
            <remarks>
            This method is designed to decompose an SRT transformation matrix only.
            </remarks>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.ToFloatArray">
            <summary>
            This function can be useful to transfer the matrix value in the c++/clr environment
            </summary>
            <returns>a 16-long float array where translation values are at poistions 12, 13 and 14</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.ToDoubleArray">
            <summary>
            This function can be useful to transfer the matrix value in the c++/clr environment
            </summary>
            <returns>a 16-long double array where translation values are at poistions 12, 13 and 14</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.RotateAroundXAxis(System.Double)">
            <summary>
            Apply a X-Axis rotation to the matrix
            </summary>
            <param name="radAngle">Angle in radians</param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.RotateAroundYAxis(System.Double)">
            <summary>
            Apply a Y-Axis rotation to the matrix
            </summary>
            <param name="radAngle">Angle in radians</param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimMatrix3D.RotateAroundZAxis(System.Double)">
            <summary>
            Apply a Z-Axis rotation to the matrix
            </summary>
            <param name="radAngle">Angle in radians</param>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimPackedNormal">
            <summary>
            Encodes a normal in just two bytes.
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimPackedNormal.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Normalized normal vector. If the vector is not normalized packing will result in wrong results.
            </summary>
            <param name="x">X direction of the normalized normal vector</param>
            <param name="y">Y direction of the normalized normal vector</param>
            <param name="z">Z direction of the normalized normal vector</param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimPoint3D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            
            </summary>
            <param name="x"></param>
            <param name="y"></param>
            <param name="z"></param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimPoint3D.Add(Xbim.Common.Geometry.XbimPoint3D,Xbim.Common.Geometry.XbimVector3D)">
            <summary>
            Adds a XbimPoint3D structure to a XbimVector3D and returns the result as a XbimPoint3D structure.
            </summary>
            <param name="p"></param>
            <param name="v"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimQuaternion.RotationMatrix(Xbim.Common.Geometry.XbimMatrix3D@,Xbim.Common.Geometry.XbimQuaternion@)">
            <summary>
            Creates a quaternion given a rotation matrix.
            </summary>
            <param name="matrix">The rotation matrix.</param>
            <param name="result">When the method completes, contains the newly created quaternion.</param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimQuaternion.Transform(Xbim.Common.Geometry.XbimVector3D@,Xbim.Common.Geometry.XbimQuaternion@,Xbim.Common.Geometry.XbimVector3D@)">
            <summary>
            Transforms a 3D vector by the given rotation.
            </summary>
            <param name="vector">The vector to rotate.</param>
            <param name="rotation">The  rotation to apply.</param>
            <param name="result">When the method completes, contains the transformed .</param>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimRect3D.Min">
            <summary>
            Minimum vertex
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimRect3D.Max">
            <summary>
            Maximum vertex
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.FromArray(System.Byte[])">
            <summary>
            Reinitialises the rectangle 3D from the byte array
            </summary>
            <param name="array">6 doubles, definine, min and max values of the boudning box</param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.ToDoublesArray">
            <summary>
            Writes the Bounding Box as 6 doubles.
            </summary>
            <returns>An array of doubles (Position followed by Size).</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.ToFloatArray">
            <summary>
            Writes the Bounding Box as 6 floats.
            </summary>
            <returns>An array of floats (Position followed by Size).</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.FromString(System.String)">
            <summary>
            Imports values from a string
            </summary>
            <param name="Value">A space-separated string of 6 invariant-culture-formatted floats (x,y,z,sizeX,sizeY,sizeZ)</param>
            <returns>True if successful.</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.Centroid">
            <summary>
            Calculates the centre of the 3D rect
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.TransformBy(Xbim.Common.Geometry.XbimRect3D,Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Transforms a bounding rect so that it is still axis aligned
            </summary>
            <param name="rect3d"></param>
            <param name="m"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.Radius">
            <summary>
            Returns the radius of the sphere that contains this bounding box rectangle 3D
            </summary>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.Length">
            <summary>
            Indicative size of the Box along all axis.
            </summary>
            <returns>Returns the length of the diagonal</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.Transform(Xbim.Common.Geometry.XbimMatrix3D)">
            <summary>
            Warning: This function assumes no rotation is used for the tranform.
            </summary>
            <param name="composed">The NON-ROTATING transform to apply</param>
            <returns>the transformed bounding box.</returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.Round(System.Int32)">
            <summary>
            Rounds the values of the bounding box to the specified precision
            </summary>
            <param name="digits"></param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.Round(Xbim.Common.Geometry.XbimRect3D,System.Int32)">
            <summary>
            Rounds the values of the bounding box to the specified precision and returns a copy
            </summary>
            <param name="r"></param>
            <param name="digits"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimRect3D.IsSimilar(Xbim.Common.Geometry.XbimRect3D,System.Double)">
            <summary>
            true if the rect fits inside thsi rectangle when it is either inflated or defalted by the tolerance
            </summary>            
            <returns></returns>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimRegion">
            <summary>
            Used in the clustering analysis of elements the model.
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimRegionCollection.ContextLabel">
            <summary>
            The IFC label of the geometric represenation context this region represents
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometryHandle._contextHandle">
            <summary>
            The 3D model context that contains this shape geometry
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometryHandle._shapeLabel">
            <summary>
            The unique label of this shape geometry
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometryHandle._referenceCount">
            <summary>
            The number of references to this shape geoemetry
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometryHandle.Context">
            <summary>
            The 3D model context that contains this shape geometry
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometryHandle.ShapeLabel">
            <summary>
            The unique label of this shape geometry
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometryHandle.ReferenceCount">
            <summary>
            The number of references to this shape
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimShapeGeometry">
            <summary>
            A basic shape geoemetry, note this is independent of placement and not specific to any product
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Item(System.Int32)">
            <summary>
            Returns the vector at the specified position
            </summary>
            <param name="vectorIndex"></param>
            <returns></returns>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._shapeLabel">
            <summary>
            The unique label of this shape geometry
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._ifcShapeLabel">
            <summary>
            The label of the IFC object that defines this shape
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._geometryHash">
            <summary>
             Hash of the shape Geometry, based on the IFC representation, this is not unique
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._referenceCount">
            <summary>
            The number of references to this shape
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._format">
            <summary>
            The format in which the shape data is represented, i.e. triangular mesh, polygon, opencascade
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._boundingBox">
            <summary>
            The bounding box of this instance, requires tranformation to place in world coordinates
            </summary>
        </member>
        <member name="F:Xbim.Common.Geometry.XbimShapeGeometry._shapeData">
            <summary>
            The geometry data defining the shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.ShapeLabel">
            <summary>
            The unique label of this shape geometry
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.IfcShapeLabel">
            <summary>
            The label of the IFC object that defines this shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.GeometryHash">
            <summary>
             Hash of the shape Geometry, based on the IFC representation, this is not unique
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Cost">
            <summary>
            The cost in bytes of this shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.ReferenceCount">
            <summary>
            The number of references to this shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.LOD">
            <summary>
            The level of detail or development that the shape is suited for
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Format">
            <summary>
            The format in which the shape data is represented, i.e. triangular mesh, polygon, opencascade
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Xbim#Common#Geometry#IXbimShapeGeometryData#Format">
            <summary>
            The format in which the shape data is represented, i.e. triangular mesh, polygon, opencascade as a byte
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.BoundingBox">
            <summary>
            The bounding box of this instance, requires tranformation to place in world coordinates
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Xbim#Common#Geometry#IXbimShapeGeometryData#BoundingBox">
            <summary>
            The bounding box of this instance, requires tranformation to place in world coordinates
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.ShapeData">
            <summary>
            The geometry data defining the shape
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Xbim#Common#Geometry#IXbimShapeGeometryData#ShapeDataCompressed">
            <summary>
            The geometry data defining the shape, this is a compressed representation of the data
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.IsValid">
            <summary>
            Returns true if the geometry is valid
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeGeometry.Xbim#Common#Geometry#IXbimShapeGeometryData#LocalShapeDisplacement">
            <summary>
            If the shape coordinates are large the actual serialised geometry should be
            reduced to local origin to avoid problems with floating point precission
            of float coordinates. This displacement should be presented in 
            LocalShapeDisplacement and should be added to placement of the shape in the product.
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.WexBimMeshFace.NormalAt(System.Int32)">
            <summary>
            returns the normal for a specific point at a specific index on the face
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstanceStyleGrouping.System#Linq#IGrouping{System#Int32,Xbim#Common#Geometry#XbimShapeInstance}#Key">
            <summary>
            This is the label of the surface style
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimShapeInstance">
            <summary>
            A shape with a shapegeometry that has been placed as a specific instance in the scene
            i.e. it has had all maps performed and it has been transformed to the correct location
            This represents a geometry mesh, with a texture that is placed in world coordinate systems
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.InstanceLabel">
            <summary>
            The unique label of this shape instance
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.IfcTypeId">
            <summary>
            The IFC type (as short) of the product this instance represents
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.IfcProductLabel">
            <summary>
            The label of the IFC Product that this instance defines (either partially or completely)
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.StyleLabel">
            <summary>
            The style that this shape is presented in when it overrides the shape style
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.ShapeGeometryLabel">
            <summary>
            The pointer to the shape that this is an instance of
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.RepresentationContext">
            <summary>
            The label of the IFC representation context of this instance
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.RepresentationType">
            <summary>
            What type of representation, typically this is how the shape has been generated
            (i.e. openings have been applied or not applied)
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.Xbim#Common#Geometry#IXbimShapeInstanceData#RepresentationType">
            <summary>
            What type of representation, typically this is how the shape has been generated, i.e. openings have been applied or not applied
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.Transformation">
            <summary>
            The transformation matrix to be applied to the shape so that the instance is placed relatively to the rest of the model
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.BoundingBox">
            <summary>
            The bounding box of this instance, does not require tranformation to place in world coordinates
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.Xbim#Common#Geometry#IXbimShapeInstanceData#BoundingBox">
            <summary>
            The bounding box of this instance, does not require tranformation to place in world coordinates
            </summary>
        </member>
        <member name="P:Xbim.Common.Geometry.XbimShapeInstance.HasStyle">
            <summary>
            returns true if the shape instance has a defined style
            </summary>
        </member>
        <member name="T:Xbim.Common.Geometry.XbimShapeTriangulation">
            <summary>
            represents a 3d mesh
            </summary>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimShapeTriangulation.TriangleCount(System.Byte[])">
            <summary>
            Returns the number of triangles in the XbimShapeTriangulation data
            </summary>
            <param name="triangulationData"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimShapeTriangulation.VerticesCount(System.Byte[])">
            <summary>
            Returns the number of vertices in the XbimShapeTriangulation data
            </summary>
            <param name="triangulationData"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimShapeTriangulation.ToPointsWithNormalsAndIndices(System.Collections.Generic.List{System.Single[]}@,System.Collections.Generic.List{System.Int32}@)">
            <summary>
            Exports the data to positions and indices, trying to remove duplicates in positions as much as possible.
            </summary>
            <param name="positions">The destination position list, [0,1,2] for position [3,4,5] for normal.</param>
            <param name="indices">the destination of indices pointing to positions.</param>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimVector3D.IsOpposite(Xbim.Common.Geometry.XbimVector3D,System.Double)">
            <summary>
            Returns true if the angle is less than tolerance
            </summary>
            <param name="other">other vector</param>
            <param name="angularTolerance">Tolerance in radians</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimVector3D.IsParallel(Xbim.Common.Geometry.XbimVector3D,System.Double)">
            <summary>
            Returns true if the vectors are parallel
            </summary>
            <param name="other">other vector</param>
            <param name="angularTolerance">Tolerance in radians</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimVector3D.IsNormal(Xbim.Common.Geometry.XbimVector3D,System.Double)">
            <summary>
            Returns true if the vectors are normal
            </summary>
            <param name="other">other vector</param>
            <param name="angularTolerance">Tolerance in radians</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Geometry.XbimVector3D.Negated">
            <summary>
            Returns a new vector pointing in the opposite direction
            </summary>
        </member>
        <member name="T:Xbim.Common.IEntityCache">
            <summary>
            Some implementations of IModel might use optimized data handling where
            entity data is loaded on the fly from database, file or other source.
            For some scenarios it is usefull to keep entities alive in the cache
            so they don't get disposed and every entity only has one instance.
            </summary>
        </member>
        <member name="M:Xbim.Common.IEntityCache.Clear">
            <summary>
            Clears the cache. This might have no 
            effect on pure in-memory IModel implementations.
            </summary>
        </member>
        <member name="M:Xbim.Common.IEntityCache.Stop">
            <summary>
            Stops the cache but keeps entities already cached. This might have no 
            effect on pure in-memory IModel implementations.
            </summary>
        </member>
        <member name="M:Xbim.Common.IEntityCache.Start">
            <summary>
            Starts the cache if it is not active. This might have no 
            effect on pure in-memory IModel implementations.
            </summary>
        </member>
        <member name="P:Xbim.Common.IEntityCache.Size">
            <summary>
            Number of entities in the cache
            </summary>
        </member>
        <member name="P:Xbim.Common.IEntityCache.IsActive">
            <summary>
            True if cache is active. You can cganhe this by calling Start() and Stop()
            </summary>
        </member>
        <member name="M:Xbim.Common.IReadOnlyEntityCollection.Where``1(System.Func{``0,System.Boolean})">
            <summary>
            Returns all entities satysfying the condition
            </summary>
            <typeparam name="T">Type of the result</typeparam>
            <param name="condition">Condition to evaluate</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.IReadOnlyEntityCollection.Where``1(System.Func{``0,System.Boolean},System.String,Xbim.Common.IPersistEntity)">
            <summary>
            Returns all entities satysfying the condition utilizing secondary index for inverse relations.
            Always use this overload if you query for the entities on the other side of inverse relation (like all IfcRelations).
            It might be significantly optimized in the implementation of this interface especially if the data
            is stored in the database.
            </summary>
            <typeparam name="T">Type of the result</typeparam>
            <param name="condition">Condition</param>
            <param name="inverseProperty">Name of the property which is being evaluated</param>
            <param name="inverseArgument">Entity which should be equal/contained in the property</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.IReadOnlyEntityCollection.FirstOrDefault``1">
            <summary>
            Returns first or default entity satysfying the condition
            </summary>
            <typeparam name="T">Type of the result</typeparam>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.IReadOnlyEntityCollection.FirstOrDefault``1(System.Func{``0,System.Boolean})">
            <summary>
            Returns first or default entity satysfying the condition
            </summary>
            <typeparam name="T">Type of the result</typeparam>
            <param name="condition">Condition to evaluate</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.IReadOnlyEntityCollection.FirstOrDefault``1(System.Func{``0,System.Boolean},System.String,Xbim.Common.IPersistEntity)">
            <summary>
            Returns firs or default entitiy satysfying the condition utilizing secondary index for inverse relations.
            Always use this overload if you query for the entities on the other side of inverse relation (like all IfcRelations).
            It might be significantly optimized in the implementation of this interface especially if the data
            is stored in the database.
            </summary>
            <typeparam name="T">Type of the result</typeparam>
            <param name="condition">Condition</param>
            <param name="inverseProperty">Name of the property which is being evaluated</param>
            <param name="inverseArgument">Entity which should be equal/contained in the property</param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.IEntityFactory.SchemaVersion">
            <summary>
            Gets the Ifc Schema version of the model if this is IFC schema
            </summary>
        </member>
        <member name="T:Xbim.Common.IInverseCache">
            <summary>
            Inverse relations are one of very important concepts in EXPRESS modeling which allows to mimic 
            safe bi-directional relations between two objects. But because EXPRESS model is always flat list of entities
            some queries using inverse properties for navigation in model cause exponential cost if the data search.
            That is obviously not optimal. Inverse cache should help especially in cases where the IModel implementation
            doesn't have any secondary indexing mechanism for inverse relations. It can usually only be used outside
            of transaction. Starting transaction when caching is on might raise an exception. You should always keep
            inverse cache object inside of using statement. 
            </summary>
        </member>
        <member name="M:Xbim.Common.IInverseCache.Clear">
            <summary>
            Removes all cached inverse relations.
            </summary>
        </member>
        <member name="P:Xbim.Common.IInverseCache.Size">
            <summary>
            Number of cached relations
            </summary>
        </member>
        <member name="P:Xbim.Common.IInverseCache.IsDisposed">
            <summary>
            Indicates that the cache has been disposed and should not be used
            </summary>
        </member>
        <member name="M:Xbim.Common.IItemSet`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Convenient feature taken from List implementation which allows to add more items in one go.
            </summary>
            <param name="values">Values to be added</param>
        </member>
        <member name="M:Xbim.Common.IItemSet`1.FirstOrDefault(System.Func{`0,System.Boolean})">
            <summary>
            Function which mimics IEnumerable feature hidden by the templated version otherwise
            </summary>
            <param name="predicate"></param>
            <returns> Firts or default item</returns>
        </member>
        <member name="M:Xbim.Common.IItemSet`1.FirstOrDefault``1(System.Func{``0,System.Boolean})">
            <summary>
            Function which mimics IQueryable feature of getting first or default 
            item of defined type. Additional type safety security is provided by type constrain.
            </summary>
            <typeparam name="TF">Type of requested item</typeparam>
            <param name="predicate">Logical predicate</param>
            <returns>First item satisfying both type and logical condition</returns>
        </member>
        <member name="M:Xbim.Common.IItemSet`1.Where``1(System.Func{``0,System.Boolean})">
            <summary>
            Function which mimics IQueryable feature of combining both type and logical condition.
            item of defined type. Additional type safety security is provided by type constrain.
            </summary>
            <typeparam name="TW">Requested type</typeparam>
            <param name="predicate"></param>
            <returns>List of items satisfying both type and logical condition</returns>
        </member>
        <member name="P:Xbim.Common.IModel.UserDefinedId">
            <summary>
            Returns or sets a user defined id for the model
            </summary>
        </member>
        <member name="P:Xbim.Common.IModel.GeometryStore">
            <summary>
            Returns a geometry store, null if geometry storage is not supported
            </summary>
        </member>
        <member name="P:Xbim.Common.IModel.Instances">
            <summary>
            All instances which exist within a scope of the model.
            Use this property to retrieve the data from model.
            </summary>
        </member>
        <member name="M:Xbim.Common.IModel.Activate(Xbim.Common.IPersistEntity)">
            <summary>
            This function is to be used by entities in the model
            in cases where data are persisted and entities are activated 
            on-the-fly as their properties are accessed.
            </summary>
            <param name="owningEntity">Entity to be activated</param>
            <returns>True if activation was successful, False otherwise</returns>
        </member>
        <member name="M:Xbim.Common.IModel.Delete(Xbim.Common.IPersistEntity)">
            <summary>
            Deletes entity from the model and removes all references to this entity in all entities
            in the model. This operation is potentially very expensive and some implementations of
            IModel might not implement it at all.
            </summary>
            <param name="entity"></param>
        </member>
        <member name="M:Xbim.Common.IModel.BeginTransaction(System.String)">
            <summary>
            Begins transaction on the model to handle all modifications. You should use this function within
            a 'using' statement to restrict scope of the transaction. IModel should only hold weak reference to
            this object in 'CurrentTransaction' property.
            </summary>
            <param name="name">Name of the transaction. This is useful in case you keep the transactions for undo-redo sessions</param>
            <returns>Transaction object.</returns>
        </member>
        <member name="P:Xbim.Common.IModel.CurrentTransaction">
            <summary>
            It is a good practise to implement this property with WeakReference back field so it gets disposed 
            when transaction goes out of the scope. It would stay alive otherwise which is not desired unless you 
            want to keep it for undo-redo sessions. But even it that case it should be referenced from elsewhere.
            </summary>
        </member>
        <member name="P:Xbim.Common.IModel.Metadata">
            <summary>
            Metadata representing current data schema of the model. This keeps pre-cached reflection information
            for efficient operations on the schema.
            </summary>
        </member>
        <member name="P:Xbim.Common.IModel.ModelFactors">
            <summary>
            If model contains a geometry and if IModel implementation supports it this property will return conversion factors for 
            base units to be used for geometry processing and other tasks.
            </summary>
        </member>
        <member name="M:Xbim.Common.IModel.InsertCopy``1(``0,Xbim.Common.XbimInstanceHandleMap,Xbim.Common.PropertyTranformDelegate,System.Boolean,System.Boolean)">
            <summary>
             Implementation of IModel variant of InsertCopy() function
             </summary>
             <typeparam name="T">Type of the object to be inserted. This must be a type supported by this model</typeparam>
             <param name="toCopy">Object to copy</param>
             <param name="mappings">Mappings make sure object is only inserted once. You should use one instance of mappings for all InsertCopy() calls between two models</param>
             <param name="propTransform">Delegate which can be used to transform properties. You can use this to filter out certain properties or referenced objects</param>
             <param name="includeInverses">If TRUE inverse relations are also copied over. This may potentially bring over almost entire model if not controlled by propTransform delegate</param>
             <param name="keepLabels">If TRUE entity labels of inserted objects will be the same as the labels of original objects. This should be FALSE if you are inserting objects to existing model
             or if you are inserting objects from multiple source models into a single target model where entity labels may potentially clash.</param>
             <returns>New created object in this model which is a deep copy of original object</returns>
             <returns></returns>
        </member>
        <member name="M:Xbim.Common.IModel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
            Performs a set of actions on a collection of entities inside a single read only transaction
            This improves database  performance for retrieving and accessing complex and deep objects
            </summary>
            <typeparam name="TSource"></typeparam>
            <param name="source"></param>
            <param name="body"></param>
        </member>
        <member name="E:Xbim.Common.IModel.EntityNew">
            <summary>
            This event is fired every time new entity is created.
            </summary>
        </member>
        <member name="E:Xbim.Common.IModel.EntityModified">
            <summary>
            This event is fired every time any entity is modified. If your model is not
            transactional it might not be called at all as the central point for all
            modifications is a transaction.
            </summary>
        </member>
        <member name="E:Xbim.Common.IModel.EntityDeleted">
            <summary>
            This event is fired every time when entity gets deleted from model.
            </summary>
        </member>
        <member name="M:Xbim.Common.IModel.BeginInverseCaching">
            <summary>
            This will start to cache inverse relations which are heavily used in EXPRESS schema
            to model bidirectional relations. You shouldn't only use cache outside of transaction
            when you query the data but you don't change any values. Implementations of IModel
            might throw an exception in case you call this function inside of transaction
            or if you begin transaction before you stop caching. You should always keep the caching
            object inside of using statement as IModel should only hold the weak reference to it.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.IModel.InverseCache">
            <summary>
            Inverse cache created with BeginInverseCaching(). This should be a weak reference internally.
            </summary>
        </member>
        <member name="M:Xbim.Common.IModel.BeginEntityCaching">
            <summary>
            This will start to cache entities if IModel implementation uses any kind of
            on-demand data loading and entity activation. This will keep entities alive and will
            minimize number of read operations needed to get data. It will also grow in memory
            which might not be desired. Always use this in using statement or dispose the object explicitly.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.IModel.EntityCache">
            <summary>
            Entity cache created with BeginEntityCaching(). This should be a weak reference internally.
            </summary>
        </member>
        <member name="P:Xbim.Common.IModel.SchemaVersion">
            <summary>
            Predefined schemas supported by xBIM
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.ProfileDefLevelOfDetail">
            <summary>
            Indicates level of detail for IfcProfileDefinitions, if 0 no fillet radii are applied, no leg slopes area applied, if 1 all details are applied
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.SimplifyFaceCountThreshHold">
            <summary>
            If this number is greater than 0, any faceted meshes will be simplified if the number of faces exceeds the threshold
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.ShortestEdgeLength">
            <summary>
            If the SimplifyFaceCountThreshHold is greater than 0, this is the minimum length of any edge in a face in millimetres, default is 10mm
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.PrecisionBoolean">
            <summary>
            Precision used for Boolean solid geometry operations, default 0.001mm
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.PrecisionBooleanMax">
            <summary>
            The maximum Precision used for Boolean solid geometry operations, default 10mm
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.DeflectionTolerance">
            <summary>
            The defection on a curve when triangulating the model
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.AngleToRadiansConversionFactor">
            <summary>
            Convert degrees to radians
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.LengthToMetresConversionFactor">
            <summary>
            Conversion to metres
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.VertexPointDiameter">
            <summary>
            Used to display a vertex this is the diameter that will be used to auto-generate a geometric representation of a topological vertex
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.MaxBRepSewFaceCount">
            <summary>
            The maximum number of faces to sew and check the result is a valid BREP, face sets with more than this number of faces will be processed 
            as read from the model
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.Precision">
            <summary>
            The  normal tolerance under which two given points are still assumed to be identical
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.PrecisionMax">
            <summary>
            Returns the value for one metre in the units of the model
            </summary>
            /// <summary>
            The  maximum tolerance under which two given points are still assumed to be identical
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.Rounding">
            <summary>
            The number of decimal places to round a number to in order to truncate distances, not to be confused with precision, this is 
            mostly for hashing and reporting, precision determines if two points are the same. NB this must be less that the precision for Booleans
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.OneMilliMetre">
            <summary>
            Returns the value for one millimetre in the units of the model
            </summary>
        </member>
        <member name="P:Xbim.Common.IModelFactors.DeflectionAngle">
            <summary>
            The min angle used when meshing shapes, works with DeflectionTolerance to set the resolution for linearizing edges, default = 0.5
            </summary>
        </member>
        <member name="P:Xbim.Common.IPersistEntity.EntityLabel">
            <summary>
            Entity Label is an identifier unique inside one IModel. It can't be changed as other objects rely on it.
            </summary>
        </member>
        <member name="P:Xbim.Common.IPersistEntity.Model">
            <summary>
            Model which contains this entity. No entity can exist outside of a IModel
            </summary>
        </member>
        <member name="P:Xbim.Common.IPersistEntity.Activated">
            <summary>
            Some implementations of IModel may implement lazy loading when internal data of
            the entity is only loaded when needed. This flag is used by entity itself and possibly
            by IModel for performance optimization.
            </summary>
        </member>
        <member name="P:Xbim.Common.IPersistEntity.ExpressType">
            <summary>
            Cached reflection information for this type of object
            </summary>
        </member>
        <member name="T:Xbim.Common.PersistEntityExtensions">
            <summary>
            Extension methods for the <see cref="T:Xbim.Common.IPersist"/> interface.
            </summary>
        </member>
        <member name="M:Xbim.Common.PersistEntityExtensions.HandleUnexpectedAttribute(Xbim.Common.IPersist,System.Int32,Xbim.Common.IPropertyValue)">
            <summary>
            Handles the case where a property was not expected for this entity.
            </summary>
            <param name="persistIfc">The item being parsed.</param>
            <param name="propIndex">Index of the property.</param>
            <param name="value">The value of the property.</param>
        </member>
        <member name="E:Xbim.Common.ITransaction.EntityChanged">
            <summary>
            This event should be fired after entity is changed
            </summary>
        </member>
        <member name="E:Xbim.Common.ITransaction.EntityChanging">
            <summary>
            This event should be fired before entity is changed.
            </summary>
        </member>
        <member name="T:Xbim.Common.Metadata.ExpressMetaData">
            <summary>
              A collection of IPersistEntity instances, optimised for EXPRESS models
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData.Module">
            <summary>
            Module for which this meta data structure is created
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData._typeIdToExpressTypeLookup">
            <summary>
            Look up for the if of an entity that returns the ExpresType
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData._typeToExpressTypeLookup">
            <summary>
            Look up the entity Type and return the ExpressType
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData._typeNameToExpressTypeLookup">
            <summary>
            Look up the name of an entity and return the ExpressType
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData._persistNameToExpressTypeLookup">
            <summary>
            Look up the name of an entity and return the ExpressType
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData._interfaceToExpressTypesLookup">
            <summary>
            Look up ExpressTypes implementing an interface
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData.ModuleCache">
            <summary>
            Static cache to avoid multiple creation of the structure
            </summary>
        </member>
        <member name="F:Xbim.Common.Metadata.ExpressMetaData.SchemaCache">
            <summary>
            Static cache per schema to avoid multiple instances of the metadata
            </summary>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.GetMetadata(System.Reflection.Module)">
            <summary>
            This method creates metadata model for a specified module based on reflection and custom attributes.
            It only creates ExpressMetaData once for any module. If it already exists it is retrieved from a 
            static cache. However, for a performance reasons try to minimize this and rather keep a single instance
            reference for your code.
            </summary>
            <remarks>Prefer <c>GetMetadata(IEntityFactory)</c> overload which permits more control over schema enumeration when assembly 
            hosts multiple schemas</remarks>
            <param name="module">Assembly module which contains single schema model</param>
            <returns>Meta data structure for the schema defined within the module</returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.GetMetadata(Xbim.Common.IEntityFactory)">
            <summary>
            Creates an <see cref="T:Xbim.Common.Metadata.ExpressMetaData"/> metadata model for a specified <see cref="T:Xbim.Common.IEntityFactory"/> based on reflection and custom attributes.
            An ExpressMetaData is creted only once for any EntityFactory.
            </summary>
            <remarks>Only types sharing the same namespace as the <paramref name="entityFactory"/> are included. This makes it possible
            to share multiple schemas in a single Assembly / Module</remarks>
            <param name="entityFactory"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.ExpressType(System.String)">
            <summary>
            Returns the ExpressType with the specified name (name of type or express name)
            </summary>
            <param name="typeName">The name of the type in uppercase (either type name or persistance name. 
            These are not necesarilly the same)</param>
            <returns>The foud type (or Null if not found)</returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.ExpressType(System.Type)">
            <summary>
            Returns the ExpressType with the specified type
            </summary>
            <param name="type">The type</param>
            <returns>The foud type (or Null if not found)</returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.ExpressType(System.Int16)">
            <summary>
            returns the ExpressType corresponding to the TypeId
            </summary>
            <param name="typeId"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.ExpressTypeId(System.Type)">
            <summary>
            returns the express type id of the type, if the type is not an entity and excpetion will be thrown
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.ExpressTypeId(System.String)">
            <summary>
            Returns the typeId for the named type
            </summary>
            <param name="typeName">the name of the type, this is in uppercase</param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.GetType(System.Int16)">
            <summary>
            Returns the Type of the Entity with typeId
            </summary>
            <param name="typeId"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.ExpressType(Xbim.Common.IPersist)">
            <summary>
            Returns the ExpressType of the specified entity
            </summary>
            <param name="entity"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.TryGetExpressType(System.String,Xbim.Common.Metadata.ExpressType@)">
            <summary>
            Trys to get the specified Type with the typeName, if the ExpressType does not exist false is returned
            </summary>
            <param name="typeName"></param>
            <param name="expressType"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressMetaData.IsIndexedEntityAttribute(System.String,System.Int32)">
            <summary>
            Returns true if the named entities attribute is indexed
            </summary>
            <param name="entityTypeName">the name of the Entity</param>
            <param name="attributeIndex">the index offset of the attribute to check, nb this is a 1 based index</param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Metadata.ExpressType.NonAbstractSubTypes">
            <summary>
            Don't ask for this before types hierarchy is finished or it will cache incomplete result.
            </summary>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressType.GetIndexedValues(Xbim.Common.IPersistEntity)">
            <summary>
            If the type has indexed attributes, this returns a set of unique values for the specified IPersistEntity
            </summary>
            <param name="ent"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.Metadata.ExpressType.IsIndexedAttribute(System.Int32)">
            <summary>
            returns true if the attribute is indexed
            </summary>
            <param name="attributeIndex"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Metadata.ExpressType.HasIndexedAttribute">
            <summary>
            Returns true if the type has an indexed attribute
            </summary>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.Metadata.ExpressType.AllSubTypes">
            <summary>
            deep enumeration of all subtypes down in the inheritance hierarchy
            </summary>
        </member>
        <member name="M:Xbim.Common.XbimModelFactors.ApplyWorkAround(System.String)">
            <summary>
            returns true if a model specific work around needs to be applied
            </summary>
            <param name="workAroundName"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.ProfileDefLevelOfDetail">
            <summary>
            Indicates level of detail for IfcProfileDefinitions, if 0 no fillet radii are applied, no leg slopes area applied, if 1 all details are applied
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.SimplifyFaceCountThreshHold">
            <summary>
            If this number is greater than 0, any faceted meshes will be simplified if the number of faces exceeds the threshold
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.ShortestEdgeLength">
            <summary>
            If the SimplifyFaceCountThreshHold is greater than 0, this is the minimum length of any edge in a face in millimetres, default is 10mm
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.PrecisionBoolean">
            <summary>
            Precision used for Boolean solid geometry operations, default 0.001mm
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.PrecisionBooleanMax">
            <summary>
            The maximum Precision used for Boolean solid geometry operations, default 10mm
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.DeflectionTolerance">
            <summary>
            The defection on a curve when triangulating the model
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.AngleToRadiansConversionFactor">
            <summary>
            Convert degrees to radians
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.LengthToMetresConversionFactor">
            <summary>
            Conversion to metres
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.VertexPointDiameter">
            <summary>
            Used to display a vertex this is the diameter that will be used to auto-generate a geometric representation of a topological vertex
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.MaxBRepSewFaceCount">
            <summary>
            The maximum number of faces to sew and check the result is a valid BREP, face sets with more than this number of faces will be processed as read from the model
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.Precision">
            <summary>
            The  normal tolerance under which two given points are still assumed to be identical
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.PrecisionMax">
            <summary>
            Returns the value for one metre in the units of the model
            </summary>
            /// <summary>
            The  maximum tolerance under which two given points are still assumed to be identical
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.Rounding">
            <summary>
            The number of decimal places to round a number to in order to truncate distances, not to be confused with precision, this is mostly for hashing and reporting, 
            precision determines if two points are the same. NB this must be less that the precision for booleans
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.OneMilliMetre">
            <summary>
            Returns the value for one millimetre in the units of the model
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimModelFactors.DeflectionAngle">
            <summary>
            The min angle used when meshing shapes, works with DeflectionTolerance to set the resolution for linearizing edges, default = 0.5
            </summary>
        </member>
        <member name="F:Xbim.Common.ModelHelper.ReferingTypesListsCache">
            <summary>
            This only keeps cache of metadata and types to speed up reflection search.
            </summary>
        </member>
        <member name="M:Xbim.Common.ModelHelper.Delete(Xbim.Common.IModel,Xbim.Common.IPersistEntity,System.Func{Xbim.Common.IPersistEntity,System.Boolean})">
            <summary>
            This will delete the entity from model dictionary and also from any references in the model.
            Be carefull as this might take a while to check for all occurances of the object. Also make sure 
            you don't use this object anymore yourself because it won't get disposed until than. This operation
            doesn't guarantee that model is compliant with any kind of schema but it leaves it consistent. So if you
            serialize the model there won't be any references to the object which wouldn't be there.
            </summary>
            <param name="model">Model from which the entity should be deleted</param>
            <param name="entity">Entity to be deleted</param>
            <param name="instanceRemoval">Delegate to be used to remove entity from instance collection. 
            This should be reversable action within a transaction.</param>
        </member>
        <member name="M:Xbim.Common.ModelHelper.Delete(Xbim.Common.IModel,Xbim.Common.IPersistEntity[],System.Action{Xbim.Common.IPersistEntity[]})">
            <summary>
            This will delete the entity from model dictionary and also from any references in the model.
            Be carefull as this might take a while to check for all occurances of the object. Also make sure 
            you don't use this object anymore yourself because it won't get disposed until than. This operation
            doesn't guarantee that model is compliant with any kind of schema but it leaves it consistent. So if you
            serialize the model there won't be any references to the object which wouldn't be there.
            </summary>
            <param name="model">Model from which the entity should be deleted</param>
            <param name="entities">Entities to be deleted</param>
            <param name="instanceRemoval">Delegate to be used to remove entity from instance collection. 
            This should be reversable action within a transaction.</param>
        </member>
        <member name="M:Xbim.Common.ModelHelper.Replace``2(Xbim.Common.IModel,``0,``1,System.Func{Xbim.Common.IPersistEntity,System.Boolean})">
            <summary>
            This will replace the entity with another entity and will optionally remove it from model dictionary.
            This will replace all references in the model.
            Be carefull as this might take a while to check for all occurances of the object. 
            </summary>
            <param name="model">Model from which the entity should be deleted</param>
            <param name="entity">Entity to be replaces</param>
            <param name="replacement">Entity to replace first entity</param>
            <param name="instanceRemoval">Optional delegate to be used to remove entity from the instance collection.
            This should be reversable action within a transaction.</param>
        </member>
        <member name="M:Xbim.Common.ModelHelper.ReplaceReferences``2(Xbim.Common.IModel,``0,Xbim.Common.ModelHelper.ReferingType,``1)">
            <summary>
            Deletes references to specified entity from all entities in the model where entity is
            a references as an object or as a member of a collection.
            </summary>
            <param name="model">Model to be used</param>
            <param name="entity">Entity to be removed from references</param>
            <param name="referingType">Candidate type containing reference to the type of entity</param>
            <param name="replacement">New reference. If this is null it just removes references to entity</param>
        </member>
        <member name="M:Xbim.Common.ModelHelper.ReplaceReferences``2(Xbim.Common.IModel,System.Collections.Generic.IEnumerable{``0},Xbim.Common.ModelHelper.ReferingType,``1)">
            <summary>
            Deletes references to specified entity from all entities in the model where entity is
            a references as an object or as a member of a collection.
            </summary>
            <param name="model">Model to be used</param>
            <param name="entities">Entities to be replaced</param>
            <param name="referingType">Candidate type containing reference to the type of entity</param>
            <param name="replacement">New reference. If this is null it just removes references to entity</param>
        </member>
        <member name="T:Xbim.Common.ModelHelper.ReferingType">
            <summary>
            Helper structure to hold information for reference removal. If multiple objects of the same type are to
            be removed this will cache the information about where to have a look for the references.
            </summary>
        </member>
        <member name="M:Xbim.Common.ModelHelper.InsertCopy``1(Xbim.Common.IModel,``0,Xbim.Common.XbimInstanceHandleMap,Xbim.Common.PropertyTranformDelegate,System.Boolean,System.Boolean,System.Func{System.Type,System.Int32,Xbim.Common.IPersistEntity})">
            <summary>
            Inserts deep copy of an object into this model. The entity must originate from the same schema (the same EntityFactory). 
            This operation happens within a transaction which you have to handle yourself unless you set the parameter "noTransaction" to true.
            Insert will happen outside of transactional behaviour in that case. Resulting model is not guaranteed to be valid according to any
            model view definition. However, it is granted to be consistent. You can optionaly bring in all inverse relationships. Be carefull as it
            might easily bring in almost full model.
            
            </summary>
            <typeparam name="T">Type of the copied entity</typeparam>
            <param name="model">Model to be used as a target</param>
            <param name="toCopy">Entity to be copied</param>
            <param name="mappings">Mappings of previous inserts</param>
            <param name="includeInverses">Option if to bring in all inverse entities (enumerations in original entity)</param>
            <param name="keepLabels">Option if to keep entity labels the same</param>
            <param name="propTransform">Optional delegate which you can use to filter the content which will get coppied over.</param>
            <param name="getLabeledEntity">Functor to be used to create entity with specified label</param>
            <returns>Copy from this model</returns>
        </member>
        <member name="M:Xbim.Common.ModelHelper.WritePartialFile(Xbim.Common.IModel,Xbim.Common.IPersistEntity,System.IO.TextWriter,System.Collections.Generic.HashSet{System.Int32})">
            <summary>
            Writes data island of direct references into the writer
            </summary>
            <param name="model">Model to be used</param>
            <param name="root">Entity from the model to be used as the root of data island</param>
            <param name="writer">Writer to be used</param>
            <param name="written">List of entities written. In case multiple calls to this function are attempted using the same
            result stream this will make sure that the same entity gets serialized only once.</param>
        </member>
        <member name="T:Xbim.Common.Model.ReadSeekableStream">
            <summary>
            A Stream implementation that wraps an underlying non-seekable stream to provide a limited 'back buffer'
            which enables the content to be seekable within the buffer window.
            </summary>
            <remarks>Useful to be able to read a header of a file when an input stream is not seekable - e.g. a NetworkStream</remarks>
        </member>
        <member name="M:Xbim.Common.Model.ReadSeekableStream.#ctor(System.IO.Stream,System.Int32)">
            <summary>
            Constructs a new <see cref="T:Xbim.Common.Model.ReadSeekableStream"/> with the provided inner stream and buffer size
            </summary>
            <param name="underlyingStream"></param>
            <param name="seekBackBufferSize"></param>
            <exception cref="T:System.Exception"></exception>
        </member>
        <member name="M:Xbim.Common.Model.ReadSeekableStream.DisableBuffering">
            <summary>
            Disables any further back buffering. Once disabled Seeking is no longer possible.
            </summary>
            <remarks>This allows you to eliminate the overhead of the buffering once you know you do not need to Seek any further.</remarks>
        </member>
        <member name="P:Xbim.Common.Model.ReadSeekableStream.BufferEnabled">
            <summary>
            Indicates whether the buffer is active
            </summary>
        </member>
        <member name="P:Xbim.Common.Model.ReadSeekableStream.CanRead">
            <inheritDoc/>
        </member>
        <member name="P:Xbim.Common.Model.ReadSeekableStream.CanSeek">
            <summary>
            Indicates whether the stream supports Seeking. Note: this can change if Buffering is disabled.
            </summary>
        </member>
        <member name="M:Xbim.Common.Model.ReadSeekableStream.Read(System.Byte[],System.Int32,System.Int32)">
            <inheritDoc/>
        </member>
        <member name="M:Xbim.Common.Model.ReadSeekableStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Sets the position within the current stream. Note: seeking backward is only possible within the range of the buffer window
            </summary>
            <param name="offset"></param>
            <param name="origin"></param>
            <returns></returns>
            <exception cref="T:System.NotSupportedException">Thrown when seeking beyond the beginning of the buffer or past the end of the stream</exception>
        </member>
        <member name="P:Xbim.Common.Model.StepModel.AllowMissingReferences">
            <summary>
            Indicates whether this is a partial view of a STEP model, meaning some references could be invalid
            </summary>
            <remarks>Ued by the <see cref="T:Xbim.IO.Step21.XbimP21Scanner"/></remarks>
        </member>
        <member name="P:Xbim.Common.Model.StepModel.Instances">
            <summary>
            Instance collection of all entities in the model. You can use this collection to create new
            entities or to query the model. This is the only way how to create new entities.
            </summary>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.Delete(Xbim.Common.IPersistEntity)">
            <summary>
            This will delete the entity from model dictionary and also from any references in the model.
            Be careful as this might take a while to check for all occurrences of the object. Also make sure 
            you don't use this object anymore yourself because it won't get disposed until than. This operation
            doesn't guarantee that model is compliant with any kind of schema but it leaves it consistent. So if you
            serialize the model there won't be any references to the object which wouldn't be there.
            </summary>
            <param name="entity">Entity to be deleted</param>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.Delete(Xbim.Common.IPersistEntity[],System.Boolean)">
            <summary>
            This will delete the entities from model dictionary and also from any references in the model.
            Be careful as this might take a while to check for all occurrences of the object. Also make sure 
            you don't use this object anymore yourself because it won't get disposed until than. This operation
            doesn't guarantee that model is compliant with any kind of schema but it leaves it consistent. So if you
            serialize the model there won't be any references to the object which wouldn't be there.
            </summary>
            <param name="entities">Entities to be deleted in a batch</param>
            <param name="noTransaction">When true, the operation will run outside of transaction. This will save resources on massive operations.</param>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.DiscardNaturalOrder">
            <summary>
            Normally model respects the order in which entities were created or read from the file.
            However, if you don't care and you are creating or deleting many entities, you might gain
            some performance improvement by not keeping that order.
            </summary>
        </member>
        <member name="F:Xbim.Common.Model.StepModel._transactionReference">
            <summary>
            Weak reference allows garbage collector to collect transaction once it goes out of the scope
            even if it is still referenced from model. This is important for the cases where the transaction
            is both not committed and not rolled back either.
            </summary>
        </member>
        <member name="E:Xbim.Common.Model.StepModel.EntityNew">
            <summary>
            This event is fired every time new entity is created.
            </summary>
        </member>
        <member name="E:Xbim.Common.Model.StepModel.EntityModified">
            <summary>
            This event is fired every time any entity is modified. If your model is not
            transactional it might not be called at all as the central point for all
            modifications is a transaction.
            </summary>
        </member>
        <member name="E:Xbim.Common.Model.StepModel.EntityDeleted">
            <summary>
            This event is fired every time when entity gets deleted from model.
            </summary>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.LoadStep21(System.IO.Stream,System.Int64,Xbim.Common.ReportProgressDelegate,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Opens the model from STEP21 file. 
            </summary>
            <param name="stream">Path to the file</param>
            <param name="streamSize"></param>
            <param name="progDelegate"></param>
            <param name="ignoreTypes">Types to ignore</param>
            <returns>Number of errors in parsing. Always check this to be null or the model might be incomplete.</returns>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.LoadStep21(System.String,Xbim.Common.ReportProgressDelegate)">
            <summary>
            Opens the model from STEP21 file. 
            </summary>
            <param name="file">Path to the file</param>
            <param name="progDelegate"></param>
            <returns>Number of errors in parsing. Always check this to be null or the model might be incomplete.</returns>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.SaveAsStep21(System.IO.Stream,Xbim.Common.ReportProgressDelegate,System.Boolean)">
            <summary>
            Saves the model as PART21 file
            </summary>
            <param name="stream">Stream to be used to write the file</param>
            <param name="progress"></param>
            <param name="leaveOpen">><c>true</c> to leave the stream open; otherwise, <c>false</c>.</param>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.SaveAsStep21(System.IO.TextWriter,Xbim.Common.ReportProgressDelegate)">
            <summary>
            Saves the model as PART21 file
            </summary>
            <param name="writer">Text writer to be used to write the file</param>
            <param name="progress"></param>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.Dispose(System.Boolean)">
            <summary>
            Extension point for inheriting classes
            </summary>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.InsertCopy``1(``0,Xbim.Common.XbimInstanceHandleMap,Xbim.Common.PropertyTranformDelegate,System.Boolean,System.Boolean)">
            <summary>
            Inserts deep copy of an object into this model. The entity must originate from the same schema (the same EntityFactory). 
            This operation happens within a transaction which you have to handle yourself unless you set the parameter "noTransaction" to true.
            Insert will happen outside of transactional behaviour in that case. Resulting model is not guaranteed to be valid according to any
            model view definition. However, it is granted to be consistent. You can optionally bring in all inverse relationships. Be careful as it
            might easily bring in almost full model.
            
            </summary>
            <typeparam name="T">Type of the copied entity</typeparam>
            <param name="toCopy">Entity to be copied</param>
            <param name="mappings">Mappings of previous inserts</param>
            <param name="includeInverses">Option if to bring in all inverse entities (enumerations in original entity)</param>
            <param name="keepLabels">Option if to keep entity labels the same</param>
            <param name="propTransform">Optional delegate which you can use to filter the content which will get copied over.</param>
            <returns>Copy from this model</returns>
        </member>
        <member name="M:Xbim.Common.Model.StepModel.InsertCopy``1(``0,Xbim.Common.XbimInstanceHandleMap,Xbim.Common.PropertyTranformDelegate,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Inserts deep copy of an object into this model. The entity must originate from the same schema (the same EntityFactory). 
            This operation happens within a transaction which you have to handle yourself unless you set the parameter "noTransaction" to true.
            Insert will happen outside of transactional behaviour in that case. Resulting model is not guaranteed to be valid according to any
            model view definition. However, it is granted to be consistent. You can optionally bring in all inverse relationships. Be careful as it
            might easily bring in almost full model.
            
            </summary>
            <typeparam name="T">Type of the copied entity</typeparam>
            <param name="toCopy">Entity to be copied</param>
            <param name="mappings">Mappings of previous inserts</param>
            <param name="includeInverses">Option if to bring in all inverse entities (enumerations in original entity)</param>
            <param name="keepLabels">Option if to keep entity labels the same</param>
            <param name="propTransform">Optional delegate which you can use to filter the content which will get copied over.</param>
            <param name="noTransaction">If TRUE all operations inside this function will happen out of transaction. 
            Also no notifications will be fired from objects.</param>
            <returns>Copy from this model</returns>
        </member>
        <member name="P:Xbim.Common.Model.StepModel.InstanceHandles">
            <summary>
            Returns a list of the handles to only the entities in this model
            Note this do NOT include entities that are in any federated models
            </summary>
        </member>
        <member name="T:Xbim.Common.Model.TypeResolverDelegate">
            <summary>
            This delegate can be used to implement customized logic in type mapping.
            </summary>
            <param name="entity">Original entity</param>
            <returns>Express type which maps to the type of the original entity</returns>
        </member>
        <member name="T:Xbim.Common.Model.EntityFactoryResolverDelegate">
            <summary>
            Delegate to be used to set up metadata and entity factory from schema IDs
            </summary>
            <param name="schemas"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.Common.PersistEntity.ModelOf">
            <summary>
            This property is deprecated and likely to be removed. Use just 'Model' instead.
            </summary>
        </member>
        <member name="T:Xbim.Common.PlaceboTransaction">
            <summary>
            A class of transaction that has no impact and does nothing used when another transaction is normally running
            </summary>
        </member>
        <member name="T:Xbim.Common.ProjectUnits">
            <summary>
            Could do with Imperial :-)
            </summary>
        </member>
        <member name="T:Xbim.Common.Step21.IStepFileDescription">
            <summary>
            Represents the STEP FILE_DESCRIPTION entity which provides version information about the IFC file
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileDescription.Description">
            <summary>
            The formal definition of the underlying view definition(s). e.g 'ViewDefinition [CoordinationView]',
            or Options/Comments provided by the IFC authoring system.
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileDescription.ImplementationLevel">
            <summary>
            The STEP Implementation level. This should always be '2;1' for IFC files
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileDescription.EntityCount">
            <summary>
            The number of entities in this model
            </summary>
        </member>
        <member name="M:Xbim.Common.Step21.IStepFileDescription.Write(System.IO.BinaryWriter)">
            <summary>
            Writes the FILE_DESCRIPTION entity to a STEP IFC File
            </summary>
            <param name="binaryWriter"></param>
        </member>
        <member name="M:Xbim.Common.Step21.IStepFileDescription.Read(System.IO.BinaryReader)">
            <summary>
            Reads the FILE_DESCRIPTION entity from a STEP IFC File
            </summary>
            <param name="binaryReader"></param>
        </member>
        <member name="T:Xbim.Common.Step21.IStepFileName">
            <summary>
            Represents the STEP FILE_NAME entity which provides human readable information about the IFC
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.Name">
            <summary>
            The local path and file name of the IFC file
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.TimeStamp">
            <summary>
            The time of creation on the IFC file in ISO 8601 format
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.AuthorName">
            <summary>
            The name and mailing address of the person responsible for creating the IFC.
            </summary>
            <remarks>E.g. login or email address of the user</remarks>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.Organization">
            <summary>
            The group or organization with whom the author is associated.
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.PreprocessorVersion">
            <summary>
            Name and version of the toolbox used to create the IFC file, 
            </summary>
            <remarks>NOT the name of the application itself.</remarks>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.OriginatingSystem">
            <summary>
            Name and version and/or build number of the application which generates the IFC file
            </summary>
            <remarks>This is the name of the application. Note: The version and/or build number should be as 
            specific as possible.
            </remarks>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.AuthorizationName">
            <summary>
            The name and mailing address of the person who authorized the sending of the IFC File
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileName.AuthorizationMailingAddress">
            <summary>
            The name and mailing address of the person who authorized the sending of the IFC File
            </summary>
        </member>
        <member name="M:Xbim.Common.Step21.IStepFileName.Write(System.IO.BinaryWriter)">
            <summary>
            Writes the FILE_NAME entity to a STEP IFC File
            </summary>
            <param name="binaryWriter"></param>
        </member>
        <member name="M:Xbim.Common.Step21.IStepFileName.Read(System.IO.BinaryReader)">
            <summary>
            Reads the FILE_NAME entity from a STEP IFC File
            </summary>
            <param name="binaryReader"></param>
        </member>
        <member name="T:Xbim.Common.Step21.IStepFileSchema">
            <summary>
            Represents the STEP FILE_SCHEMA entity which identifies the EXPRESS schema information for the IFC file
            </summary>
        </member>
        <member name="P:Xbim.Common.Step21.IStepFileSchema.Schemas">
            <summary>
            The name of the IFC Schema the IFC file adheres to
            </summary>
        </member>
        <member name="M:Xbim.Common.Step21.IStepFileSchema.Write(System.IO.BinaryWriter)">
            <summary>
            Writes the FILE_SCHEMA entity to a STEP IFC File
            </summary>
            <param name="binaryWriter"></param>
        </member>
        <member name="M:Xbim.Common.Step21.IStepFileSchema.Read(System.IO.BinaryReader)">
            <summary>
            Reads the FILE_SCHEMA entity from a STEP IFC File
            </summary>
            <param name="binaryReader"></param>
        </member>
        <member name="T:Xbim.Common.Step21.XbimSchemaVersion">
            <summary>
            Indicates the version of IFC schema the model contains
            </summary>
        </member>
        <member name="T:Xbim.Common.XbimAssemblyInfo">
            <summary>
            This class can be useful to understand exact version of the xbim assemblies used.
            </summary>
        </member>
        <member name="M:Xbim.Common.XbimAssemblyInfo.AssemblyInformation(System.Reflection.Assembly)">
            <summary>
            Returns information suitable to identify the exact version of an xbim assembly
            </summary>
            <param name="theAssembly">The assembly to analyse</param>
            <returns></returns>
        </member>
        <member name="F:Xbim.Common.XbimAssemblyInfo.OverrideLocation">
            <summary>
            This property needs to be set when loading the assembly from a stream instead of a specific folder.
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimAssemblyInfo.CompilationTime">
            <summary>
            Returns the date and time of compilation, extracted from the fileversioninfo according to compilation policy.
            It returns DateTime.MinValue when the file properties can not be loaded. In this scenarios OverrideLocation needs to be set.
            </summary>
        </member>
        <member name="T:Xbim.Common.XbimExtensions.BinaryReaderExtensions">
            <summary>
            This class allow to extract a triangulated geometry from the binary streams in models.
            </summary>
        </member>
        <member name="M:Xbim.Common.XbimExtensions.StringExtensions.LevenshteinDistance(System.String,System.String)">
            <summary>
            Compute Levenshtein distance. Code origin: http://stackoverflow.com/questions/6944056/c-sharp-compare-string-similarity
            </summary>
            <param name="s">String 1</param>
            <param name="t">String 2</param>
            <returns>Distance between the two strings.
            The larger the number, the bigger the difference.
            </returns>
        </member>
        <member name="M:Xbim.Common.XbimExtensions.TimeSpanExtensions.Iso8601DurationToTimeSpan(System.String)">
            <summary>
            Convert a duration formatted as a ISO8601 string to a <see cref="T:System.TimeSpan"/>
            </summary>
            <param name="value"></param>
            <returns>The <see cref="T:System.TimeSpan"/></returns>
        </member>
        <member name="M:Xbim.Common.XbimExtensions.TimeSpanExtensions.ToIso8601Representation(System.TimeSpan)">
            <summary>
            Serialises this <see cref="T:System.TimeSpan"/> to an ISO8601 string representation.
            </summary>
            <param name="span"></param>
            <returns></returns>
        </member>
        <member name="T:Xbim.Common.XbimInstanceHandle">
            <summary>
            A lightweight structure for obtaining a handle to an Ifc Instance, the instance is not loaded into memory unless the GetInstance function is called
            IfcInstanceHandle are specific to the model they were generated from
            </summary>
        </member>
        <member name="T:Xbim.Common.XbimInstanceHandleMap">
            <summary>
            A class for holding mappings between instances in one model and instances in another model
            </summary>
        </member>
        <member name="T:Xbim.Common.XbimLogging">
            <summary>
            A helper class to centrally manage logging
            </summary>
        </member>
        <member name="P:Xbim.Common.XbimLogging.LoggerFactory">
            <summary>
            Gets and sets the <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/> used to construct <see cref="T:Microsoft.Extensions.Logging.ILogger"/> instances through the XBIM toolkit
            </summary>
            <remarks>Consumers can provide your own implementation, or add a Provider to the default  
            (<see cref="P:Xbim.Common.XbimLogging.LoggerFactory"/>) implementation</remarks>
        </member>
        <member name="M:Xbim.Common.XbimLogging.CreateLogger(System.String)">
            <summary>
            Creates a new <see cref="T:Microsoft.Extensions.Logging.ILogger"/> Instance
            </summary>
            <param name="categoryName"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.Common.XbimLogging.CreateLogger``1">
            <summary>
            Creates a new <see cref="T:Microsoft.Extensions.Logging.ILogger"/><typeparamref name="T"/> Instance
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="T:Xbim.IO.StorageType">
            <summary>
            The data format a model file is stored in
            </summary>
        </member>
        <member name="F:Xbim.IO.StorageType.Invalid">
            <summary>
            Invalid Xbim storage type
            </summary>
        </member>
        <member name="F:Xbim.IO.StorageType.IfcXml">
            <summary>
              IFC in XML format
            </summary>
        </member>
        <member name="F:Xbim.IO.StorageType.Ifc">
            <summary>
              Native IFC format
            </summary>
        </member>
        <member name="F:Xbim.IO.StorageType.IfcZip">
            <summary>
              compressed IFC format
            </summary>           
        </member>
        <member name="M:Xbim.IO.IfcStorageTypeExtensions.IsStepTextFile(System.String)">
            <summary>
            Returns true if ifc or stp file extension
            </summary>
            <param name="path"></param>
            <returns></returns>
        </member>
        <member name="T:Xbim.IO.XbimDBAccess">
            <summary>
            Indicates how a persisted model should be accessed
            </summary>
        </member>
        <member name="F:Xbim.IO.XbimDBAccess.Read">
            <summary>
            Opens the database for read only transactions
            </summary>
        </member>
        <member name="F:Xbim.IO.XbimDBAccess.ReadWrite">
            <summary>
            Opens the database for read and write 
            </summary>
        </member>
        <member name="F:Xbim.IO.XbimDBAccess.Exclusive">
            <summary>
            Opens the database exclusively, prevents access from any other processes.
            </summary>
        </member>
        <member name="T:Xbim.IO.XbimModelType">
            <summary>
            Enumeration indicating the type of model structure hosting the underlying model
            </summary>
        </member>
        <member name="T:Xbim.IO.IModelProvider">
            <summary>
            Interface defining a provider of <see cref="T:Xbim.Common.IModel"/>s that can be used to Create, Open and persist model data
            </summary>
            <remarks>The implementors can use this to provide the concrete implementation of the <see cref="T:Xbim.Common.IModel"/> without
            a direct reference to the actual type.</remarks>
        </member>
        <member name="M:Xbim.IO.IModelProvider.Close(Xbim.Common.IModel)">
            <summary>
            Closes a model and releases any resources
            </summary>
            <param name="model"></param>
        </member>
        <member name="M:Xbim.IO.IModelProvider.Create(Xbim.Common.Step21.XbimSchemaVersion,System.String)">
            <summary>
            Creates a new empty persistent model with the provided path
            </summary>
            <param name="ifcVersion"></param>
            <param name="dbPath"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.IO.IModelProvider.Create(Xbim.Common.Step21.XbimSchemaVersion,Xbim.IO.XbimStoreType)">
            <summary>
            Creates a new empty model, backed by the requested type
            </summary>
            <param name="ifcVersion"></param>
            <param name="storageType"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.IO.IModelProvider.GetXbimSchemaVersion(System.String)">
            <summary>
            Gets the <see cref="T:Xbim.Common.Step21.XbimSchemaVersion"/> of the provided model file
            </summary>
            <param name="modelPath"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.IO.IModelProvider.Open(System.IO.Stream,Xbim.IO.StorageType,Xbim.Common.Step21.XbimSchemaVersion,Xbim.IO.XbimModelType,Xbim.IO.XbimDBAccess,Xbim.Common.ReportProgressDelegate,System.Int32)">
            <summary>
            Opens a model from the provided <see cref="T:System.IO.Stream"/>
            </summary>
            <param name="stream"></param>
            <param name="dataType"></param>
            <param name="schemaVersion"></param>
            <param name="modelType"></param>
            <param name="accessMode"></param>
            <param name="progDelegate"></param>
            <param name="codePageOverride"></param>
            <returns></returns>
        </member>
        <member name="M:Xbim.IO.IModelProvider.Open(System.String,Xbim.Common.Step21.XbimSchemaVersion,System.Nullable{System.Double},Xbim.Common.ReportProgressDelegate,Xbim.IO.XbimDBAccess,System.Int32)">
            <summary>
            Opens a model from the given path
            </summary>
            <param name="path"></param>
            <param name="schemaVersion"></param>
            <param name="ifcDatabaseSizeThreshHold"></param>
            <param name="progDelegate"></param>
            <param name="accessMode"></param>
            <param name="codePageOverride"></param>
            <returns></returns>
            
        </member>
        <member name="P:Xbim.IO.IModelProvider.Capabilities">
            <summary>
            Describes the capabilities of the underlying model store(s)
            </summary>
        </member>
        <member name="M:Xbim.IO.IModelProvider.Persist(Xbim.Common.IModel,System.String,Xbim.Common.ReportProgressDelegate)">
            <summary>
            Saves the current model to a persistent store
            </summary>
            <param name="model"></param>
            <param name="fileName"></param>
            <param name="progDelegate"></param>
        </member>
        <member name="M:Xbim.IO.IModelProvider.GetLocation(Xbim.Common.IModel)">
            <summary>
            Gets the location any persisted backing store for the Model
            </summary>
            <remarks>For EsentModel this would be the location of the xbim file</remarks>
            <param name="model"></param>
            <returns></returns>
        </member>
        <member name="P:Xbim.IO.IModelProvider.EntityFactoryResolver">
            <summary>
            Gets and sets a delegate to allow consumers to determine the <see cref="T:Xbim.Common.IEntityFactory"/> to build 
            for a given <see cref="T:Xbim.Common.Step21.XbimSchemaVersion"/>
            </summary>
        </member>
        <member name="T:Xbim.IO.IModelProviderFactory">
            <summary>
            Factory to create an appropriate <see cref="T:Xbim.IO.IModelProvider"/>
            </summary>
        </member>
        <member name="T:Xbim.IO.Parser.Scanner">
            <summary>
            Summary Canonical example of GPLEX automaton
            </summary>
        </member>
        <member name="P:Xbim.IO.Parser.Scanner.Buffer">
            <summary>
            The input buffer for this scanner.
            </summary>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner.MkBuffCtx">
            <summary>
            This method creates a buffer context record from
            the current buffer object, together with some
            scanner state values. 
            </summary>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner.RestoreBuffCtx(Xbim.IO.Parser.Scanner.BufferContext)">
            <summary>
            This method restores the buffer value and allied
            scanner state from the given context record value.
            </summary>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner.SetSource(System.String,System.Int32)">
            <summary>
            Create and initialize a StringBuff buffer object for this scanner
            </summary>
            <param name="source">the input string</param>
            <param name="offset">starting offset in the string</param>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner.SetSource(System.Collections.Generic.IList{System.String})">
            <summary>
            Create and initialize a LineBuff buffer object for this scanner
            </summary>
            <param name="source">the list of input strings</param>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner.SetSource(System.IO.Stream)">
            <summary>
            Create and initialize a StreamBuff buffer object for this scanner.
            StreamBuff is buffer for 8-bit byte files.
            </summary>
            <param name="source">the input byte stream</param>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner.yyless(System.Int64)">
            <summary>
            Discards all but the first "n" codepoints in the recognized pattern.
            Resets the buffer position so that only n codepoints have been consumed;
            yytext is also re-evaluated. 
            </summary>
            <param name="n">The number of codepoints to consume</param>
        </member>
        <member name="M:Xbim.IO.Parser.Scanner._yytrunc(System.Int32)">
            <summary>
            Removes the last "n" code points from the pattern.
            </summary>
            <param name="n">The number to remove</param>
        </member>
        <member name="P:Xbim.IO.Parser.Scanner.yyleng">
            <summary>
            The length of the pattern in codepoints (not the same as 
            string-length if the pattern contains any surrogate pairs).
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.Parser.PropertyValue.NumberVal">
            <summary>
              Returns a double if the type parsed is any kind of number
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.Parser.StepP21Entity.ID">
            <summary>
              The identity number in the STEP P21 file
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.Parser.StepP21Entity.Name">
            <summary>
              The name of the Entity Class
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.Parser.StepP21Entity.Params">
            <summary>
              The unparsed string of parameters
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.Parser.StepP21Entity.Instance">
            <summary>
              The Ifc Model Instance
            </summary>
        </member>
        <member name="M:Xbim.IO.Step21.Parser.StepP21Entity.SetProperty(System.Object)">
            <summary>
              Sets the property at curent parseindex of the curent entity
            </summary>
        </member>
        <member name="M:Xbim.IO.Step21.Part21Writer.Write(Xbim.Common.IModel,System.IO.TextWriter,Xbim.Common.Metadata.ExpressMetaData,System.Collections.Generic.IDictionary{System.Int32,System.Int32},Xbim.Common.ReportProgressDelegate)">
            <summary>
            Writes full model into output writer as STEP21 file
            </summary>
            <param name="model">Model to be serialized</param>
            <param name="output">Output writer</param>
            <param name="metadata">Metadata to be used for serialization</param>
            <param name="map">Optional map can be used to map occurrences in the file</param>
            <param name="progress">A progress delegate</param>
        </member>
        <member name="M:Xbim.IO.Step21.Part21Writer.WriteHeader(Xbim.Common.Step21.IStepFileHeader,System.IO.TextWriter,System.String)">
            <summary>
            Writes STEP21 header to the output
            </summary>
            <param name="header">Header</param>
            <param name="output">Writer</param>
            <param name="overridingSchema">Schema to be written to the header instead of the schema defined in the header. 
            This is useful if the schema is not defined in the header.</param>
        </member>
        <member name="M:Xbim.IO.Step21.Part21Writer.WriteEntity(Xbim.Common.IPersistEntity,System.IO.TextWriter,Xbim.Common.Metadata.ExpressMetaData,System.Collections.Generic.IDictionary{System.Int32,System.Int32},System.Boolean)">
            <summary>
            Writes the entity to a TextWriter in the Part21 format
            </summary>
            <param name="output">The TextWriter</param>
            <param name="entity">The entity to write</param>
            <param name="metadata"></param>
            <param name="map"></param>
            <param name="writeEntityLabelAndType">Onits the #EntityLabel=IfcType part of the declaration</param>
        </member>
        <member name="M:Xbim.IO.Step21.Part21Writer.WriteProperty(System.Type,System.Object,System.IO.TextWriter,System.Collections.Generic.IDictionary{System.Int32,System.Int32},Xbim.Common.Metadata.ExpressMetaData)">
            <summary>
            Writes a property of an entity to the TextWriter in the Part21 format
            </summary>
            <param name="propType"></param>
            <param name="propVal"></param>
            <param name="output"></param>
            <param name="map"></param>
            <param name="metadata"></param>
        </member>
        <member name="M:Xbim.IO.Step21.Part21Writer.WriteValueType(System.Type,System.Object,System.IO.TextWriter)">
            <summary>
            Writes the value of a property to the TextWriter in the Part 21 format
            </summary>
            <param name="pInfoType"></param>
            <param name="pVal"></param>
            <param name="output"></param>
        </member>
        <member name="M:Xbim.IO.Step21.StepGuidHelper.ConvertToBase64(System.Guid)">
            <summary>
              Returns the 22 character length base 64 ifc compliant string
            </summary>
        </member>
        <member name="M:Xbim.IO.Step21.StepGuidHelper.To64String(System.UInt32,System.Int32)">
            <summary>
              Helper function to convert from Guid to base 64 string
            </summary>
        </member>
        <member name="T:Xbim.IO.Step21.StepText.WriteState">
            <summary>
            ISO 10646 encoding types
            </summary>
        </member>
        <member name="F:Xbim.IO.Step21.StepText.WriteState.Normal">
            <summary>
            Single Byte : \X\{hex2}
            </summary>
        </member>
        <member name="F:Xbim.IO.Step21.StepText.WriteState.TwoBytes">
            <summary>
            Double Byte : \X2\{hex4}+\X0\
            </summary>
        </member>
        <member name="F:Xbim.IO.Step21.StepText.WriteState.FourBytes">
            <summary>
            Quad Byte : \X4\{hex8}+\X0\
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.XbimP21Parser.CurrentPosition">
            <summary>
            Returns current position as [line, column] integer array. This is usefull when debuging misformatted files.
            </summary>
        </member>
        <member name="T:Xbim.IO.Step21.XbimP21Scanner">
            <summary>
            This class is meant to replace original parser which was generated using GPPG.
            Actual implementation of the original parser was actually only scanner with little
            added value but it had significant overhead on processing spead. This implementation
            uses the same methods but binds them to the scanner directly. This cuts off part of the
            structure security but it also cuts off processing time by about 20%.
            </summary>
        </member>
        <member name="P:Xbim.IO.Step21.XbimP21Scanner.AllowMissingReferences">
            <summary>
            Missing references will not be reported if this is true
            </summary>
        </member>
        <member name="M:Xbim.IO.Step21.XbimP21Scanner.NewEntity(System.String)">
            <summary>
            From the resiliance point of view this is a check point.
            It needs to make sure that previous entity was finished correctly.
            If it wasn't it should log the error, clear the state and start from local point.
            </summary>
            <param name="entityLabel">Entity Label to create for the new entity</param>
        </member>
        <member name="M:Xbim.IO.Step21.XbimP21Scanner.GetLabel(System.String)">
            <summary>
            We already know the shape of the input data exacly
            from scanner regex matching so we can convert directly
            without any security checks. This is significantly faster
            than Convert.ToInt32() which has to examine data again.
            This is very frequently called piece of code at the same time
            and brings considerable performance savings.
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="F:Xbim.IO.Step21.XbimP21Scanner.magnitudes">
            <summary>
            Direct magnitudes list for positions in the integer string
            </summary>
        </member>
        <member name="M:Xbim.IO.Step21.XbimP21Scanner.IsExtendedParameter">
            <summary>
            Step21 allows to extend objects at the end.
            </summary>
            <returns>True if current property index is beyond the entity implementation parameters</returns>
        </member>
        <member name="T:Xbim.IO.StoreCapabilities">
            <summary>
            Describes the capabilities of a Model Store
            </summary>
        </member>
        <member name="P:Xbim.IO.StoreCapabilities.IsTransient">
            <summary>
            Indicates whether the model store is transient. If true it's an in-memory model, otherwise has a persistant backing store
            </summary>
        </member>
        <member name="P:Xbim.IO.StoreCapabilities.SupportsTransactions">
            <summary>
            Indicates whether the model store supports transactions. 
            </summary>
        </member>
        <member name="T:Xbim.Presentation.EntitySelection">
            <summary>
            Provides a container for entity selections capable of undo/redo operations and notification of changes.
            </summary>
        </member>
        <member name="M:Xbim.Presentation.EntitySelection.#ctor(System.Boolean)">
            <summary>
            Initialises an empty selection;
            </summary>
            <param name="keepLogging">Set to True to enable activity logging for undo/redo operations.</param>
        </member>
        <member name="M:Xbim.Presentation.EntitySelection.Toggle(Xbim.Common.IPersistEntity)">
            <summary>
            Toggles the selection state of an IPersistEntity
            </summary>
            <param name="item">the IPersistEntity to add or remove from the selection</param>
            <returns>true if added; false if removed</returns>
        </member>
        <member name="T:System.Collections.Generic.XbimMultiValueDictionary`2">
            <summary>
            A MultiValueDictionary can be viewed as a <see cref="T:System.Collections.IDictionary" /> that allows multiple 
            values for any given unique key. While the MultiValueDictionary API is 
            mostly the same as that of a regular <see cref="T:System.Collections.IDictionary" />, there is a distinction
            in that getting the value for a key returns a <see cref="T:System.Collections.Generic.ICollection`1" /> of values
            rather than a single value associated with that key. Additionally, 
            there is functionality to allow adding or removing more than a single
            value at once. 
            
            The MultiValueDictionary can also be viewed as a IReadOnlyDictionary&lt;TKey,ICollection&lt;TValue&gt;t&gt;
            where the <see cref="T:System.Collections.Generic.ICollection`1" /> is abstracted from the view of the programmer.
            
            For a read-only MultiValueDictionary, see <see cref="T:System.Linq.ILookup`2" />.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="F:System.Collections.Generic.XbimMultiValueDictionary`2.dictionary">
            <summary>
            The private dictionary that this class effectively wraps around
            </summary>
        </member>
        <member name="F:System.Collections.Generic.XbimMultiValueDictionary`2.NewCollectionFactory">
            <summary>
            The function to construct a new <see cref="T:System.Collections.Generic.ICollection`1"/>
            </summary>
            <returns></returns>
        </member>
        <member name="F:System.Collections.Generic.XbimMultiValueDictionary`2.version">
            <summary>
            The current version of this MultiValueDictionary used to determine MultiValueDictionary modification
            during enumeration
            </summary>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the default initial capacity, and uses the default
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>.
            </summary>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that is 
            empty, has the specified initial capacity, and uses the default <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
            for <typeparamref name="TKey"/>.
            </summary>
            <param name="capacity">Initial number of keys that the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> will allocate space for</param>
            <exception cref="T:System.ArgumentOutOfRangeException">capacity must be >= 0</exception>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class 
            that is empty, has the default initial capacity, and uses the 
            specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.
            </summary>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class 
            that is empty, has the specified initial capacity, and uses the 
            specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.
            </summary>
            <param name="capacity">Initial number of keys that the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> will allocate space for</param>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Capacity must be >= 0</exception>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.ICollection{`1}}})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that contains 
            elements copied from the specified IEnumerable&lt;KeyValuePair&lt;TKey, ICollection&lt;TValue&gt;&gt;&gt; and uses the 
            default <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for the <typeparamref name="TKey"/> type.
            </summary>
            <param name="enumerable">IEnumerable to copy elements into this from</param>
            <exception cref="T:System.ArgumentNullException">enumerable must be non-null</exception>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.ICollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that contains 
            elements copied from the specified IEnumerable&lt;KeyValuePair&lt;TKey, ICollection&lt;TValue&gt;&gt;&gt; and uses the 
            specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.
            </summary>
            <param name="enumerable">IEnumerable to copy elements into this from</param>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <exception cref="T:System.ArgumentNullException">enumerable must be non-null</exception>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the default initial capacity, and uses the default
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TValueCollection"/> must not have
            IsReadOnly set to true by default.</exception>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Int32)">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the specified initial capacity, and uses the default
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="capacity">Initial number of keys that the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> will allocate space for</param>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Capacity must be >= 0</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TValueCollection"/> must not have
            IsReadOnly set to true by default.</exception>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the default initial capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TValueCollection"/> must not have
            IsReadOnly set to true by default.</exception>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the specified initial capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="capacity">Initial number of keys that the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> will allocate space for</param>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TValueCollection"/> must not have
            IsReadOnly set to true by default.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Capacity must be >= 0</exception>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.ICollection{`1}}})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that contains 
            elements copied from the specified IEnumerable&lt;KeyValuePair&lt;TKey, ICollection&lt;TValue&gt;&gt;&gt;
            and uses the default <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for the <typeparamref name="TKey"/> type.
            The internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="enumerable">IEnumerable to copy elements into this from</param>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TValueCollection"/> must not have
            IsReadOnly set to true by default.</exception>
            <exception cref="T:System.ArgumentNullException">enumerable must be non-null</exception>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.ICollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that contains 
            elements copied from the specified IEnumerable&lt;KeyValuePair&lt;TKey, ICollection&lt;TValue&gt;&gt;&gt;
            and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for the <typeparamref name="TKey"/> type.
            The internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="enumerable">IEnumerable to copy elements into this from</param>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TValueCollection"/> must not have
            IsReadOnly set to true by default.</exception>
            <exception cref="T:System.ArgumentNullException">enumerable must be non-null</exception>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Func{``0})">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the default initial capacity, and uses the default
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="collectionFactory">A function to create a new <see cref="T:System.Collections.Generic.ICollection`1"/> to use
            in the internal dictionary store of this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.</param>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><paramref name="collectionFactory"/> must create collections with
            IsReadOnly set to true by default.</exception>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Int32,System.Func{``0})">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the specified initial capacity, and uses the default
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="capacity">Initial number of keys that the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> will allocate space for</param>
            <param name="collectionFactory">A function to create a new <see cref="T:System.Collections.Generic.ICollection`1"/> to use
            in the internal dictionary store of this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.</param> 
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Capacity must be >= 0</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="collectionFactory"/> must create collections with
            IsReadOnly set to true by default.</exception>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the default initial capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <param name="collectionFactory">A function to create a new <see cref="T:System.Collections.Generic.ICollection`1"/> to use
            in the internal dictionary store of this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.</param> 
            <exception cref="T:System.InvalidOperationException"><paramref name="collectionFactory"/> must create collections with
            IsReadOnly set to true by default.</exception>
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})">
            <summary>
            Creates a new new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> 
            class that is empty, has the specified initial capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for <typeparamref name="TKey"/>. The 
            internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="capacity">Initial number of keys that the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> will allocate space for</param>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <param name="collectionFactory">A function to create a new <see cref="T:System.Collections.Generic.ICollection`1"/> to use
            in the internal dictionary store of this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.</param> 
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><paramref name="collectionFactory"/> must create collections with
            IsReadOnly set to true by default.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Capacity must be >= 0</exception>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.ICollection{`1}}},System.Func{``0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that contains 
            elements copied from the specified IEnumerable&lt;KeyValuePair&lt;TKey, ICollection&lt;TValue&gt;&gt;&gt;
            and uses the default <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for the <typeparamref name="TKey"/> type.
            The internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="enumerable">IEnumerable to copy elements into this from</param>
            <param name="collectionFactory">A function to create a new <see cref="T:System.Collections.Generic.ICollection`1"/> to use
            in the internal dictionary store of this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.</param> 
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><paramref name="collectionFactory"/> must create collections with
            IsReadOnly set to true by default.</exception>
            <exception cref="T:System.ArgumentNullException">enumerable must be non-null</exception>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.ICollection{`1}}},System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> class that contains 
            elements copied from the specified IEnumerable&lt;KeyValuePair&lt;TKey, ICollection&lt;TValue&gt;&gt;&gt;
            and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> for the <typeparamref name="TKey"/> type.
            The internal dictionary will use instances of the <typeparamref name="TValueCollection"/>
            class as its collection type.
            </summary>
            <typeparam name="TValueCollection">
            The collection type that this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />
            will contain in its internal dictionary.
            </typeparam>
            <param name="enumerable">IEnumerable to copy elements into this from</param>
            <param name="comparer">Specified comparer to use for the <typeparamref name="TKey"/>s</param>
            <param name="collectionFactory">A function to create a new <see cref="T:System.Collections.Generic.ICollection`1"/> to use
            in the internal dictionary store of this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.</param> 
            <returns>A new <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" /> with the specified
            parameters.</returns>
            <exception cref="T:System.InvalidOperationException"><paramref name="collectionFactory"/> must create collections with
            IsReadOnly set to true by default.</exception>
            <exception cref="T:System.ArgumentNullException">enumerable must be non-null</exception>
            <remarks>If <paramref name="comparer"/> is set to null, then the default <see cref="T:System.Collections.IEqualityComparer" /> for <typeparamref name="TKey"/> is used.</remarks>
            <remarks>
            Note that <typeparamref name="TValueCollection"/> must implement <see cref="T:System.Collections.Generic.ICollection`1"/>
            in addition to being constructable through new(). The collection returned from the constructor
            must also not have IsReadOnly set to True by default.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Add(`0,`1)">
            <summary>
            Adds the specified <typeparamref name="TKey"/> and <typeparamref name="TValue"/> to the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of the element to add.</param>
            <param name="value">The <typeparamref name="TValue"/> of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <c>null</c>.</exception>
            <remarks>
            Unlike the Add for <see cref="T:System.Collections.IDictionary" />, the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> Add will not
            throw any exceptions. If the given <typeparamref name="TKey"/> is already in the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>,
            then <typeparamref name="TValue"/> will be added to <see cref="T:System.Collections.Generic.ICollection`1"/> associated with <paramref name="key"/>
            </remarks>
            <remarks>
            A call to this Add method will always invalidate any currently running enumeration regardless
            of whether the Add method actually modified the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2" />.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.AddRange(`0,System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Adds a number of key-value pairs to this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>, where
            the key for each value is <paramref name="key"/>, and the value for a pair
            is an element from <paramref name="values"/>
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of all entries to add</param>
            <param name="values">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of values to add</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> and <paramref name="values"/> must be non-null</exception>
            <remarks>
            A call to this AddRange method will always invalidate any currently running enumeration regardless
            of whether the AddRange method actually modified the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Remove(`0)">
            <summary>
            Removes every <typeparamref name="TValue"/> associated with the given <typeparamref name="TKey"/>
            from the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of the elements to remove</param>
            <returns><c>true</c> if the removal was successful; otherwise <c>false</c></returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <c>null</c>.</exception>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Remove(`0,`1)">
            <summary>
            Removes the first instance (if any) of the given <typeparamref name="TKey"/>-<typeparamref name="TValue"/> 
            pair from this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>. 
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of the element to remove</param>
            <param name="value">The <typeparamref name="TValue"/> of the element to remove</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> must be non-null</exception>
            <returns><c>true</c> if the removal was successful; otherwise <c>false</c></returns>
            <remarks>
            If the <typeparamref name="TValue"/> being removed is the last one associated with its <typeparamref name="TKey"/>, then that 
            <typeparamref name="TKey"/> will be removed from the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> and its 
            associated <see cref="T:System.Collections.Generic.ICollection`1"/> will be freed as if a call to <see cref="M:System.Collections.Generic.XbimMultiValueDictionary`2.Remove(`0)"/>
            had been made.
            </remarks>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Contains(`0,`1)">
            <summary>
            Determines if the given <typeparamref name="TKey"/>-<typeparamref name="TValue"/> 
            pair exists within this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of the element.</param>
            <param name="value">The <typeparamref name="TValue"/> of the element.</param>
            <returns><c>true</c> if found; otherwise <c>false</c></returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> must be non-null</exception>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.ContainsValue(`1)">
            <summary>
            Determines if the given <typeparamref name="TValue"/> exists within this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
            <param name="value">A <typeparamref name="TValue"/> to search the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> for</param>
            <returns><c>true</c> if the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> contains the <paramref name="value"/>; otherwise <c>false</c></returns>      
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Clear">
            <summary>
            Removes every <typeparamref name="TKey"/> and <typeparamref name="TValue"/> from this 
            <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.ContainsKey(`0)">
            <summary>
            Determines if the given <typeparamref name="TKey"/> exists within this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> and has
            at least one <typeparamref name="TValue"/> associated with it.
            </summary>
            <param name="key">The <typeparamref name="TKey"/> to search the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> for</param>
            <returns><c>true</c> if the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> contains the requested <typeparamref name="TKey"/>;
            otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> must be non-null</exception>
        </member>
        <member name="P:System.Collections.Generic.XbimMultiValueDictionary`2.Keys">
            <summary>
            Gets each <typeparamref name="TKey"/> in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> that
            has one or more associated <typeparamref name="TValue"/>.
            </summary>
            <value>
            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing each <typeparamref name="TKey"/> 
            in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> that has one or more associated 
            <typeparamref name="TValue"/>.
            </value>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.TryGetValue(`0,System.Collections.Generic.ICollection{`1}@)">
            <summary>
            Attempts to get the <typeparamref name="TValue"/> associated with the given
            <typeparamref name="TKey"/> and place it into <paramref name="value"/>.
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of the element to retrieve</param>
            <param name="value">
            When this method returns, contains the <typeparamref name="TValue"/> associated with the specified
            <typeparamref name="TKey"/> if it is found; otherwise contains the default value of <typeparamref name="TValue"/>.
            </param>
            <returns>
            <c>true</c> if the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> contains an element with the specified 
            <typeparamref name="TKey"/>; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> must be non-null</exception>
        </member>
        <member name="P:System.Collections.Generic.XbimMultiValueDictionary`2.Values">
            <summary>
            Gets an enumerable of <see cref="T:System.Collections.Generic.ICollection`1"/> from this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>,
            where each <see cref="T:System.Collections.Generic.ICollection`1" /> is the collection of every <typeparamref name="TValue"/> associated
            with a <typeparamref name="TKey"/> present in the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>. 
            </summary>
            <value>An IEnumerable of each <see cref="T:System.Collections.Generic.ICollection`1"/> in this 
            <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/></value>
        </member>
        <member name="P:System.Collections.Generic.XbimMultiValueDictionary`2.Item(`0)">
            <summary>
            Get every <typeparamref name="TValue"/> associated with the given <typeparamref name="TKey"/>. If 
            <paramref name="key"/> is not found in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>, will 
            throw a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>.
            </summary>
            <param name="key">The <typeparamref name="TKey"/> of the elements to retrieve.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> must be non-null</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException"><paramref name="key"/> does not have any associated 
            <typeparamref name="TValue"/>s in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.</exception>
            <value>
            An <see cref="T:System.Collections.Generic.ICollection`1"/> containing every <typeparamref name="TValue"/>
            associated with <paramref name="key"/>.
            </value>
            <remarks>
            Note that the <see cref="T:System.Collections.Generic.ICollection`1"/> returned will change alongside any changes 
            to the <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/> 
            </remarks>
        </member>
        <member name="P:System.Collections.Generic.XbimMultiValueDictionary`2.Count">
            <summary>
            Returns the number of <typeparamref name="TKey"/>s with one or more associated <typeparamref name="TValue"/>
            in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
            <value>The number of <typeparamref name="TKey"/>s in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.</value>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.GetEnumerator">
            <summary>
            Get an Enumerator over the <typeparamref name="TKey"/>-<see cref="T:System.Collections.Generic.ICollection`1"/>
            pairs in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.
            </summary>
            <returns>an Enumerator over the <typeparamref name="TKey"/>-<see cref="T:System.Collections.Generic.ICollection`1"/>
            pairs in this <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>.</returns>
        </member>
        <member name="T:System.Collections.Generic.XbimMultiValueDictionary`2.Enumerator">
            <summary>
            The Enumerator class for a <see cref="T:System.Collections.Generic.XbimMultiValueDictionary`2"/>
            that iterates over <typeparamref name="TKey"/>-<see cref="T:System.Collections.Generic.ICollection`1"/>
            pairs.
            </summary>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Enumerator.#ctor(System.Collections.Generic.XbimMultiValueDictionary{`0,`1})">
            <summary>
            Constructor for the enumerator
            </summary>
            <param name="_xbimMultiValueDictionary">A MultiValueDictionary to iterate over</param>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Enumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>
            true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
            </returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created. </exception>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Enumerator.Reset">
            <summary>
            Sets the enumerator to its initial position, which is before the first element in the collection.
            </summary>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created. </exception>
        </member>
        <member name="M:System.Collections.Generic.XbimMultiValueDictionary`2.Enumerator.Dispose">
            <summary>
            Frees resources associated with this Enumerator
            </summary>
        </member>
        <member name="T:System.Collections.Generic.XbimMultiValueDictionary`2.InnerCollectionView">
            <summary>
            An inner class that functions as a view of an ICollection within a MultiValueDictionary
            </summary>
        </member>
        <member name="T:QUT.GplexBuffers.StringBuffer">
            <summary>
            This class reads characters from a single string as
            required, for example, by Visual Studio language services
            </summary>
        </member>
        <member name="M:QUT.GplexBuffers.BuildBuffer.Mark">
            <summary>
            Marks a conservative lower bound for the buffer,
            allowing space to be reclaimed.  If an application 
            needs to call GetString at arbitrary past locations 
            in the input stream, Mark() is not called.
            </summary>
        </member>
        <member name="M:QUT.GplexBuffers.BuildBuffer.Read">
            <summary>
            Read returns the ordinal number of the next char, or 
            EOF (-1) for an end of stream.  Note that the next
            code point may require *two* calls of Read().
            </summary>
            <returns></returns>
        </member>
        <member name="T:QUT.GplexBuffers.Guesser">
            <summary>
            This class provides a simple finite state automaton that
            scans the file looking for (1) valid UTF-8 byte patterns,
            (2) bytes >= 0x80 which are not part of a UTF-8 sequence.
            The method then guesses whether it is UTF-8 or maybe some 
            local machine default encoding.  This works well for the
            various Latin encodings.
            </summary>
        </member>
        <member name="T:QUT.Gppg.ShiftReduceParser`2">
            <summary>
            Abstract class for GPPG shift-reduce parsers.
            Parsers generated by GPPG derive from this base
            class, overriding the abstract Initialize() and
            DoAction() methods.
            </summary>
            <typeparam name="TValue">Semantic value type</typeparam>
            <typeparam name="TSpan">Location type</typeparam>
        </member>
        <member name="P:QUT.Gppg.ShiftReduceParser`2.Scanner">
            <summary>
            The abstract scanner for this parser.
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.#ctor(QUT.Gppg.AbstractScanner{`0,`1})">
            <summary>
            Constructor for base class
            </summary>
            <param name="scanner">Scanner instance for this parser</param>
        </member>
        <member name="F:QUT.Gppg.ShiftReduceParser`2.CurrentSemanticValue">
            <summary>
            The current value of the "$$" symbolic variable in the parser
            </summary>
        </member>
        <member name="F:QUT.Gppg.ShiftReduceParser`2.CurrentLocationSpan">
            <summary>
            The current value of the "@$" symbolic variable in the parser
            </summary>
        </member>
        <member name="P:QUT.Gppg.ShiftReduceParser`2.ValueStack">
            <summary>
            The stack of semantic value (YYSTYPE) values.
            </summary>
        </member>
        <member name="P:QUT.Gppg.ShiftReduceParser`2.LocationStack">
            <summary>
            The stack of location value (YYLTYPE) values.
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.InitRules(QUT.Gppg.Rule[])">
            <summary>
            Initialization method to allow derived classes
            to insert the rule list into this base class.
            </summary>
            <param name="rules">The array of Rule objects</param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.InitStates(QUT.Gppg.State[])">
            <summary>
            Initialization method to allow derived classes to
            insert the states table into this base class.
            </summary>
            <param name="states">The pre-initialized states table</param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.InitStateTable(System.Int32)">
            <summary>
            OBSOLETE FOR VERSION 1.4.0
            </summary>
            <param name="size"></param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.InitSpecialTokens(System.Int32,System.Int32)">
            <summary>
            Initialization method to allow derived classes
            to insert the special value for the error and EOF tokens.
            </summary>
            <param name="err">The error state ordinal</param>
            <param name="end">The EOF stat ordinal</param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.InitNonTerminals(System.String[])">
            <summary>
            Initialization method to allow derived classes to
            insert the non-terminal symbol names into this base class.
            </summary>
            <param name="names">Non-terminal symbol names</param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.YYAccept">
            <summary>
            Force parser to terminate, returning "true"
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.YYAbort">
            <summary>
            Force parser to terminate, returning "false"
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.YYError">
            <summary>
            Force parser to terminate, returning
            "false" if error recovery fails.
            </summary>
        </member>
        <member name="P:QUT.Gppg.ShiftReduceParser`2.YYRecovering">
            <summary>
            Check if parser in error recovery state.
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.Initialize">
            <summary>
            Abstract base method. ShiftReduceParser calls this
            to initialize the base class data structures.  Concrete
            parser classes must override this method.
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.Parse">
            <summary>
            Main entry point of the Shift-Reduce Parser.
            </summary>
            <returns>True if parse succeeds, else false for
            unrecoverable errors</returns>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.DoAction(System.Int32)">
            <summary>
            Execute the selected action from array.
            Must be overriden in derived classes.
            </summary>
            <param name="actionNumber">Index of the action to perform</param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.yyclearin">
            <summary>
            Traditional YACC method.  Discards the next input token.
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.yyerrok">
            <summary>
            Tradional YACC method. Clear the "recovering" flag.
            </summary>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.AddState(System.Int32,QUT.Gppg.State)">
            <summary>
            OBSOLETE FOR VERSION 1.4.0
            Method used by derived types to insert new
            state instances in the "states" array.
            </summary>
            <param name="stateNumber">index of the state</param>
            <param name="state">data for the state</param>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.TerminalToString(System.Int32)">
            <summary>
            Abstract state class naming terminal symbols.
            This is overridden by derived classes with the
            name (or alias) to be used in error messages.
            </summary>
            <param name="terminal">The terminal ordinal</param>
            <returns></returns>
        </member>
        <member name="M:QUT.Gppg.ShiftReduceParser`2.CharToString(System.Char)">
            <summary>
            Return text representation of argument character
            </summary>
            <param name="input">The character to convert</param>
            <returns>String representation of the character</returns>
        </member>
        <member name="T:QUT.Gppg.IMerge`1">
            <summary>
            Classes implementing this interface must supply a
            method that merges two location objects to return
            a new object of the same type.
            GPPG-generated parsers have the default location
            action equivalent to "@$ = @1.Merge(@N);" where N
            is the right-hand-side length of the production.
            </summary>
            <typeparam name="TSpan">The Location type</typeparam>
        </member>
        <member name="M:QUT.Gppg.IMerge`1.Merge(`0)">
            <summary>
            Interface method that creates a location object from
            the current and last object.  Typically used to create
            a location object extending from the start of the @1
            object to the end of the @N object.
            </summary>
            <param name="last">The lexically last object to merge</param>
            <returns>The merged location object</returns>
        </member>
        <member name="T:QUT.Gppg.LexLocation">
            <summary>
            This is the default class that carries location
            information from the scanner to the parser.
            If you don't declare "%YYLTYPE Foo" the parser
            will expect to deal with this type.
            </summary>
        </member>
        <member name="P:QUT.Gppg.LexLocation.StartLine">
            <summary>
            The line at which the text span starts.
            </summary>
        </member>
        <member name="P:QUT.Gppg.LexLocation.StartColumn">
            <summary>
            The column at which the text span starts.
            </summary>
        </member>
        <member name="P:QUT.Gppg.LexLocation.EndLine">
            <summary>
            The line on which the text span ends.
            </summary>
        </member>
        <member name="P:QUT.Gppg.LexLocation.EndColumn">
            <summary>
            The column of the first character
            beyond the end of the text span.
            </summary>
        </member>
        <member name="M:QUT.Gppg.LexLocation.#ctor">
            <summary>
            Default no-arg constructor.
            </summary>
        </member>
        <member name="M:QUT.Gppg.LexLocation.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Constructor for text-span with given start and end.
            </summary>
            <param name="sl">start line</param>
            <param name="sc">start column</param>
            <param name="el">end line </param>
            <param name="ec">end column</param>
        </member>
        <member name="M:QUT.Gppg.LexLocation.Merge(QUT.Gppg.LexLocation)">
            <summary>
            Create a text location which spans from the 
            start of "this" to the end of the argument "last"
            </summary>
            <param name="last">The last location in the result span</param>
            <returns>The merged span</returns>
        </member>
        <member name="T:QUT.Gppg.AbstractScanner`2">
            <summary>
            Abstract scanner class that GPPG expects its scanners to 
            extend.
            </summary>
            <typeparam name="TValue">Semantic value type YYSTYPE</typeparam>
            <typeparam name="TSpan">Source location type YYLTYPE</typeparam>
        </member>
        <member name="F:QUT.Gppg.AbstractScanner`2.yylval">
            <summary>
            Lexical value optionally set by the scanner. The value
            is of the %YYSTYPE type declared in the parser spec.
            </summary>
        </member>
        <member name="P:QUT.Gppg.AbstractScanner`2.yylloc">
            <summary>
            Current scanner location property. The value is of the
            type declared by %YYLTYPE in the parser specification.
            </summary>
        </member>
        <member name="M:QUT.Gppg.AbstractScanner`2.yylex">
            <summary>
            Main call point for LEX-like scanners.  Returns an int
            corresponding to the token recognized by the scanner.
            </summary>
            <returns>An int corresponding to the token</returns>
        </member>
        <member name="M:QUT.Gppg.AbstractScanner`2.yyerror(System.String,System.Object[])">
            <summary>
            Traditional error reporting provided by LEX-like scanners
            to their YACC-like clients.
            </summary>
            <param name="format">Message format string</param>
            <param name="args">Optional array of args</param>
        </member>
        <member name="T:QUT.Gppg.State">
            <summary>
            Encapsulated state for the parser.
            Opaque to users, visible to the tool-generated code.
            </summary>
        </member>
        <member name="F:QUT.Gppg.State.number">
            <summary>
            The index of this state in the states array.
            </summary>
        </member>
        <member name="M:QUT.Gppg.State.#ctor(System.Int32[],System.Int32[])">
            <summary>
            State transition data for this state. Pairs of elements of the 
            goto array associate symbol ordinals with next state indices.
            The actions array is passed to another constructor. 
            </summary>
            <param name="actions">The action list</param>c
            <param name="goToList">Next state data</param>
        </member>
        <member name="M:QUT.Gppg.State.#ctor(System.Int32[])">
            <summary>
            Action data for this state. Pairs of elements of the 
            action array associate action ordinals with each of
            those symbols that have actions in the current state.
            </summary>
            <param name="actions">The action array</param>
        </member>
        <member name="M:QUT.Gppg.State.#ctor(System.Int32)">
            <summary>
            Set the default action for this state.
            </summary>
            <param name="defaultAction">Ordinal of the default action</param>
        </member>
        <member name="M:QUT.Gppg.State.#ctor(System.Int32,System.Int32[])">
            <summary>
            Set the default action and the state transition table.
            </summary>
            <param name="defaultAction">The default action</param>
            <param name="goToList">Transitions from this state</param>
        </member>
        <member name="T:QUT.Gppg.Rule">
            <summary>
            Rule representation at runtime.
            </summary>
        </member>
        <member name="M:QUT.Gppg.Rule.#ctor(System.Int32,System.Int32[])">
            <summary>
            Rule constructor.  This holds the ordinal of
            the left hand side symbol, and the list of
            right hand side symbols, in lexical order.
            </summary>
            <param name="left">The LHS non-terminal</param>
            <param name="right">The RHS symbols, in lexical order</param>
        </member>
        <member name="T:QUT.Gppg.PushdownPrefixState`1">
            <summary>
            Stack utility for the shift-reduce parser.
            GPPG parsers have three instances:
            (1) The parser state stack, T = QUT.Gppg.State,
            (2) The semantic value stack, T = TValue,
            (3) The location stack, T = TSpan.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="P:QUT.Gppg.PushdownPrefixState`1.Item(System.Int32)">
            <summary>
            Indexer for values of the stack below the top.
            </summary>
            <param name="index">index of the element, starting from the bottom</param>
            <returns>the selected element</returns>
        </member>
        <member name="P:QUT.Gppg.PushdownPrefixState`1.Depth">
            <summary>
            The current depth of the stack.
            </summary>
        </member>
    </members>
</doc>
