Class ModelHelper
Inheritance
Inherited Members
Namespace: Xbim.Common
Assembly: Xbim.Common.dll
Syntax
public class ModelHelper
Methods
| Improve this Doc View SourceDelete(IModel, IPersistEntity, Func<IPersistEntity, Boolean>)
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.
Declaration
public static void Delete(IModel model, IPersistEntity entity, Func<IPersistEntity, bool> instanceRemoval)
Parameters
Type | Name | Description |
---|---|---|
IModel | model | Model from which the entity should be deleted |
IPersistEntity | entity | Entity to be deleted |
System.Func<IPersistEntity, System.Boolean> | instanceRemoval | Delegate to be used to remove entity from instance collection. This should be reversable action within a transaction. |
Delete(IModel, IPersistEntity[], Action<IPersistEntity[]>)
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.
Declaration
public static void Delete(IModel model, IPersistEntity[] entities, Action<IPersistEntity[]> instanceRemoval)
Parameters
Type | Name | Description |
---|---|---|
IModel | model | Model from which the entity should be deleted |
IPersistEntity[] | entities | Entities to be deleted |
System.Action<IPersistEntity[]> | instanceRemoval | Delegate to be used to remove entity from instance collection. This should be reversable action within a transaction. |
Expand<IParentEntity, IUniqueEntity>(IModel, Func<IParentEntity, ICollection<IUniqueEntity>>)
Declaration
public static void Expand<IParentEntity, IUniqueEntity>(IModel model, Func<IParentEntity, ICollection<IUniqueEntity>> accessor)
where IParentEntity : IPersistEntity where IUniqueEntity : IPersistEntity
Parameters
Type | Name | Description |
---|---|---|
IModel | model | |
System.Func<IParentEntity, System.Collections.Generic.ICollection<IUniqueEntity>> | accessor |
Type Parameters
Name | Description |
---|---|
IParentEntity | |
IUniqueEntity |
GetStepFileSchemaVersion(Stream)
Declaration
public static List<string> GetStepFileSchemaVersion(Stream stream)
Parameters
Type | Name | Description |
---|---|---|
System.IO.Stream | stream |
Returns
Type | Description |
---|---|
System.Collections.Generic.List<System.String> |
InsertCopy<T>(IModel, T, XbimInstanceHandleMap, PropertyTranformDelegate, Boolean, Boolean, Func<Type, Int32, IPersistEntity>)
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.
Declaration
public static T InsertCopy<T>(IModel model, T toCopy, XbimInstanceHandleMap mappings, PropertyTranformDelegate propTransform, bool includeInverses, bool keepLabels, Func<Type, int, IPersistEntity> getLabeledEntity)
where T : IPersistEntity
Parameters
Type | Name | Description |
---|---|---|
IModel | model | Model to be used as a target |
T | toCopy | Entity to be copied |
XbimInstanceHandleMap | mappings | Mappings of previous inserts |
PropertyTranformDelegate | propTransform | Optional delegate which you can use to filter the content which will get coppied over. |
System.Boolean | includeInverses | Option if to bring in all inverse entities (enumerations in original entity) |
System.Boolean | keepLabels | Option if to keep entity labels the same |
System.Func<System.Type, System.Int32, IPersistEntity> | getLabeledEntity | Functor to be used to create entity with specified label |
Returns
Type | Description |
---|---|
T | Copy from this model |
Type Parameters
Name | Description |
---|---|
T | Type of the copied entity |
Replace<TEntity, TReplacement>(IModel, TEntity, TReplacement, Func<IPersistEntity, Boolean>)
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.
Declaration
public static void Replace<TEntity, TReplacement>(IModel model, TEntity entity, TReplacement replacement, Func<IPersistEntity, bool> instanceRemoval = null)
where TEntity : IPersistEntity where TReplacement : TEntity
Parameters
Type | Name | Description |
---|---|---|
IModel | model | Model from which the entity should be deleted |
TEntity | entity | Entity to be replaces |
TReplacement | replacement | Entity to replace first entity |
System.Func<IPersistEntity, System.Boolean> | instanceRemoval | Optional delegate to be used to remove entity from the instance collection. This should be reversable action within a transaction. |
Type Parameters
Name | Description |
---|---|
TEntity | |
TReplacement |
WritePartialFile(IModel, IPersistEntity, TextWriter, HashSet<Int32>)
Writes data island of direct references into the writer
Declaration
public static void WritePartialFile(IModel model, IPersistEntity root, TextWriter writer, HashSet<int> written)
Parameters
Type | Name | Description |
---|---|---|
IModel | model | Model to be used |
IPersistEntity | root | Entity from the model to be used as the root of data island |
System.IO.TextWriter | writer | Writer to be used |
System.Collections.Generic.HashSet<System.Int32> | 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. |