Grooper.Core.ContentModel

A Content Model defines the taxonomy of a document set, in terms of the Document Types it contains, and the Data Elements which appear on each document type. Content Models and the Content Types they contain also store classification training data, and define various settings which control how document classification and data extraction are performed.

Defining Document Types

Document Types are created as children of a Content Model, and can optionally be organized into a hirearchy of Content Categories. A simple Content Model might be a flat list of 5 document types, while a more complex one might have hundreds of document types organized into dozens of categories.

Classifying Documents

Classification is the process of assigning a Document Type to a Batch Folder object. Before documents can be classified, the Document Types must be trained with samples or configured with classification rules. The Classify activity can then be used to assign the document types to objects in a batch.

Defining Data Elements

A Data Model may be created at any level of the content model to define data elements such as Data Sections, Data Tables, and Data Fields. This can be done using the Content Type - Create Data Model commmand, which will create a child object named "(data model)". Data Elements can then be added as children of the Data Model.

Data Element Inheritance

Each document type will inherit all data elements defined on parent content types. This means that the total set of data elements for a document type will include all elements defined directly on the document type, plus all data elements defined on parent content types all the way to the root of the cotntent model.

For example, if the content model defines a field named 'Scan Date', then all document types in the content model will inherit that field. If a data element is defined on a Content Category then all document types inside the category will inherit it.


Inherits from: Grooper.Core.ContentType

Constructors

Signature Description
New (gdb As GrooperDb) Initializes a new instance of the ContentModel class.
Parameters
gdb
          Type: GrooperDb
          The associated Grooper database.
New (gdb As GrooperDb, dr As IDataReader) Initializes a new instance of the ContentModel class from a DataReader object.
Parameters
gdb
          Type: GrooperDb
          The associated Grooper Database.
 
dr
          Type: IDataReader
          The DataReader object.

Fields

Field Name Field Type Description
Database As Grooper.GrooperDb Grooper.GrooperDb
IsDeleted As System.Boolean System.Boolean

Properties

Property Name Property Type Description
ACL Grooper.AccessControlList Returns the effective ACL for this node. If no ACL has been set directly on the node, the tree structure is traversed up to the root and the first ACL encountered is returned. If no ACL is found, null/Nothing will be returned.
AllChildContentTypes System.Collections.Generic.IEnumerable(Of T) Iterates all descendant content types.
AllChildren System.Collections.Generic.IEnumerable(Of T) Iterates recursively through all nodes below this node.
AllChildrenOfType(Type As Type) System.Collections.Generic.IEnumerable(Of T) Returns all nodes at any level below the current node which have a TypeName matching the supplied parameter.
Parameters
Type
          Type: Type
          The type to filter by.
AllowedChildTypes System.Collections.Generic.IEnumerable(Of T) Iterates the list of types which can be added as children.
AllTrainingPages System.Collections.Generic.IEnumerable(Of T) Iterates all descendent TrainingPage objects.
AllZones System.Collections.Generic.IEnumerable(Of T) Iterates all zones existing in all DataElementProfiles on this ContentType.
Attributes Grooper.GrooperNode.NodeAttributes The attributes of this node.A combination of the following flags:
  • None: No attributes are set.
  • ReadOnly: If set, the properties of the object are not editable.
  • FixedContents: If set, child objects cannot be added, removed, or reordered.
  • Sorted: If set, child objects will be automatically sorted by name.
  • HasACL: Indicates whether this node has an Access Control List attached to it.
  • System: Indicates whether this node is a system object.
AutoName System.Boolean Indicates whether this node type uses automatic name generation. Node types which use auto name generation: (a) do not prompt for a name on creation; and (b) disable user renaming.
BaseContentType Grooper.Core.ContentType.BaseContentTypeEnum The base content type.Can be one of the following values:
  • Document: The content type represents a document, and will be displayed in a batch using a document icon.
  • Folder: The content type represents a folder, and will be displayed in a batch using a folder icon.
BranchResourceFolders System.Collections.Generic.IEnumerable(Of T) Iterates the set of resource folders existing between this node and the root of the ContentModel.
CanAddChildren System.Boolean Returns true if this node has child types defined, the current user has appropriate write permissions, and the 'ContentsReadOnly' flag is not set.
CanHaveChildren System.Boolean Indicates whether this node type can have children.
CanScript System.Boolean Indicates whether this node type can have a script.
ChildContentTypes System.Collections.Generic.IEnumerable(Of T) Iterates content types which are immediate children of this content type.
ChildrenAtLevel(Level As Int32) System.Collections.Generic.IEnumerable(Of T) Iterates though children at a specific level below this node.
Parameters
Level
          Type: Int32
          The number of levels below this node to generate a list for.
ChildrenOfType(Type As Type) System.Collections.Generic.IEnumerable(Of T) Returns all immediate children of this node which have a TypeName matching the supplied parameter.
Parameters
Type
          Type: Type
          The TypeName to filter by.
ClassificationPageScope System.Int32 Controls which pages in a document are used for Classification purposes. An integer value can be entered to limit the number of pages loaded during the Classify activity in cases where OCR has been performed on all pages in a large document, but the Classification is only relevant to the first few pages. A value of 0 indicates unlimited scope.
CodeName System.String Returns the Name for this element, formatted as a valid identifier name.
ContentModel Grooper.Core.ContentModel Returns the ContentModel object at the root of this ContentType hierarchy..
ContentTypesAtLevel(Level As Int32) System.Collections.Generic.IEnumerable(Of T) Returns all nodes derived from ContentModelNode at the specified level below this node.
Parameters
Level
          Type: Int32
          The 0-based level below this node to search.
DataElementProfiles System.Collections.Generic.Dictionary(Of TKey, TValue) Iterates the list of DataElementProfiles stored on this ContentType.
DataModelScope System.Int32 The maximum number of pages to be included in the scope from which data extraction is performed. This setting can be used to limit the number of pages loaded during data extraction and data review in cases where OCR has been performed on all pages in a large document, but the data extraction is only relevant to the first few pages. A value of 0 indicates unlimited scope.
DefaultContentType Grooper.Core.ContentType Specifies a Content Type to be assigned when a document cannot be confidently classified, or when no Classification Method is specified. If no default content type is specified, documents which do not meet the minimum confidence requirements will be left unclassifiedr.
Description System.String Generic property allowing an administrator to document the purpose of this Grooper Node.
DirtyFields Grooper.GrooperNode.DirtyFieldMask Returns a bit mask specifying which database fields have been modified.A combination of the following flags:
  • None
  • NonField
  • Name
  • ParentId
  • NodeIndex
  • NumChildren
  • Attributes
  • NodeValues
  • Files
  • Properties
DisplayName System.String The human-readable display name for this node. Derived classes can override this property to provide dynamically generated names rather than stored names. For example, BatchPage overrides this property to return "Page 1", "Page 2", etc. using the NodeIndex rather than trying to keep up with renaming nodes each time a page is inserted. Please note that all nodes must have a unique name, so if dynamic name generation is to be implemented, use the node's unique id as the name.
FileNames System.Collections.Generic.IEnumerable(Of T) Provides a list of filenames for files associated with this node.
Files System.Collections.Generic.IEnumerable(Of T) Iterates the list of file objects stored on this node.
FilesDirty System.Boolean Gets or sets a value indicating whether the properties of this node have changes which should be written to the database on the next call to SaveChanges().
FilesString System.String Gets JSON string which contains the serialized file entries for this node.
FullDisplayName System.String Returns the full display path and display name for this node.
HasACL System.Boolean Returns true or false to indicate whether this node has an ACL attached to it.
HasCircularReference System.Boolean Returns True if this node references any Grooper Nodes that reference this node.
HasCompiledScript System.Boolean Determines whether this node has a compiled script associated with it.
HasContentsReadOnlyFlag System.Boolean Indicates whether this node has the ContentsReadOnly attribute set.
HasContentsSortedFlag System.Boolean Indicates whether this node has the ContentsSorted attribute set.
HasDbRow System.Boolean A boolean value indicating whether this node has been written to the database.
HasReferenceProperties System.Boolean Returns true if the object has properties which reference Grooper Node objects.
HasScript System.Boolean Returns a value indicating whether this node has a script associated with it.
IconImage System.Drawing.Image Returns a 16x16 icon image which represents this object.
IconKey System.String Returns a unique identifier representing the icon image used for this object.
Id System.Guid Unique Node ID. This value is read only. Every node in the Grooper tree structure is identified by a GUID.
ImmediateChildCount System.Int32 Cmis Convenience method to return a count of the immediate children of this node.
IsDirty System.Boolean Gets or sets a value indicating whether this node has been changed and needs to be written to the database. Please note that value is set automatically when any properties of a node are changed.
IsEmpty System.Boolean Returns true if all properties with a ViewableAttribute are set to their default value.
IsExportable System.Boolean Indicates whether this node may be exported.
IsReadOnly System.Boolean Indicates whether this node has the ReadOnly attribute set.
IsRenameable System.Boolean Returns False if this node depends on a fixed name.
IsSystem System.Boolean Indicates whether this node has the System attribute set.
IsWriteable System.Boolean Indicates whether this node is writable. To be writable, a node must not have the ReadOnly or System attribute set, and the current user must have Write access to it.
Item(Name As String) Grooper.GrooperNode Returns the child node with the provided name.
Parameters
Name
          Type: String
          The name of the child node.
Item(Index As Int32) Grooper.GrooperNode Returns the child node with the provided name.
Parameters
Index
          Type: Int32
          The 0-based index of the child node.
LocalDataModel Grooper.Core.DataModel Returns the Data Model which is an immediate child of this ContentType, or null if no Data Model exists.
LocalResourcesFolder Grooper.Folder Returns the local resource folder for this content type, or null if none exists.
Locked System.Boolean Returns true if the node is locked.
LockedByMe System.Boolean Returns true if the node is locked by the current running process.
Method Grooper.Core.ClassifyMethod Specifies the method to be used for training and classifying documents. If no classification method is specified, all documents will be classified as the Default Content Type.
MinDifference System.Double The minimum difference between the top classification candidate and the next closest candidate. This setting allows close ties to be identified and placed in front of a human operator for review. This setting prevents confident classification in cases where a document is similar to multiple document types in the Content Model.  It indicates the minimum difference in confidence between the best result and the second best result required for confident classification.  For example, if a document has a similarity value of .97 for  Document Type A and .94 for Document Type B, then .03 is the difference.  Setting the minimum difference to .05 would flag the classification result as non-confident, requiring user intervention.
MinSimilarity System.Double The minimum similarity required for confident classification of a page or document. When a document is classified with a similarity below this value, it will be left as an unclassified folder unless the Default Content Type property is set, in which case the document will be classified as the Default Content Type.
MinTrainingSimilarity System.Double The minimum similarity between a document being trained and an existing Form Type. If the document is below the minimum similarity, it will be trained as a new Form Type, rather than being merged with an existing Form Type. Form Types are children of Document Type objects, and represent different versions of the Document Type. When Grooper is trained with a new document, the following logic is applied:
  • If no Form Types exist with the same number of pages as the document being trained, create a new Form Type.
  • For each existing Form Type, perform a page-by-page comparison.
  • If a Form Type is found where every page is above the Minimum Training Similarity, merge with that Form Type.
  • Otherwise, create a new Form Type.
ModelLevel System.Int32 Returns the level of this ContentType in the ContentModel. The ContentModel itself represents level 0.
Name System.String The name of the node. Names must be unique within the parent container node. Use DisplayName when displaying in a user interface. Some object types generate the name displayed to users dynamically by overriding the DisplayName property. For example, a BatchPage node uses the unique GUID Id as its actual name, but for display purposes uses its position within the parent folder to produce "Page 1", "Page 2", etc.
NextNode Grooper.GrooperNode The sibling node following this node.
NodeIndex System.Int32 The index of this node within the parent container.
NumChildren System.Int32 The number of children this node contains.
PageRegistrationZones(PageNo As Int32) System.Collections.Generic.IEnumerable(Of T) Iterates all page registration zones existing in all DataElementProfiles on this ContentType for a specific page number.
Parameters
PageNo
          Type: Int32
          The page number for which to find RegistrationZone objects.
ParentId System.Guid The ID of the parent node. Use the ParentNode property to access the parent.
ParentNode Grooper.GrooperNode Returns the parent node.
PrevNode Grooper.GrooperNode The sibling node preceding this node.
PropertiesJson System.String Gets or sets the JSON string which contains the serialized properties for this node. Do not set this property unless you know what you are doing.
PropsDirty System.Boolean Gets or sets a value indicating whether the properties of this node have changes which should be written to the database on the next call to SaveChanges().
Root Grooper.GrooperRoot Returns the root node
RowId System.Int32 Unique identifier for the database row associated with this node. This value is read only. A Grooper tree structure can make use of multiple database tables. The Id value is a GUID that uniquely identifies the node globally. The RowId is an integer identity value which uniquely identifies the row in a specific database table.
RowVersion System.String Unique value that indicates the version of the database row. Used to detect changes written to the database by another process. This value is read only.
RuntimeDataModel Grooper.Core.DataModel Gets the DataModel associated with this node, including any DataModel inherited from a parent node.
RuntimeDataModelScope System.Int32 The value returned will be the first scope encountered that is not set to unlimited (0), beginning with this content type, and climbing it's ancestry until reaching the Content Model.
TypeDisplayName System.String A human-readable name for the type of this node.
TypeName System.String The typename of the current node. This property is read only. Type names are the name of the class inherited from GrooperNode.
UseCount System.Int32 Returns the count of nodes referencing this node.
ValueNames System.Collections.Generic.IEnumerable(Of T) Iterates through the list of value names associated with this node.
ValuesString System.String Gets JSON string which contains the serialized values for this node.

Methods

Method Name Description
AppendNode(NewNode As GrooperNode) As Boolean Appends a new node as child of this node.
Parameters
NewNode
          Type: GrooperNode
          The node to append.
AppendTextFile(FileName As String, Value As String)
Parameters
FileName
          Type: String
          
 
Value
          Type: String
          
CcAppendChild(NewNode As GrooperNode, ipd As IProgressDisplay) As Boolean Appends the specified node as a child of this node.
Parameters
NewNode
          Type: GrooperNode
          The node to append to the child list.
 
ipd
          Type: IProgressDisplay
          
CcAppendChildren(NewNodes As IEnumerable(Of GrooperNode), ipd As IProgressDisplay) As Boolean Appends the specified items as a children of this node.
Parameters
NewNodes
          Type: IEnumerable`1
          
 
ipd
          Type: IProgressDisplay
          
CcDeleteChild(Id As Guid, ipd As IProgressDisplay) As Boolean Deletes the specified child node.
Parameters
Id
          Type: Guid
          The ID of the node to delete.
 
ipd
          Type: IProgressDisplay
          Progress display object.
CcDeleteChildren(Ids As IEnumerable(Of Guid), ipd As IProgressDisplay) As Boolean
Parameters
Ids
          Type: IEnumerable`1
          
 
ipd
          Type: IProgressDisplay
          
CcInsertChild(NewNode As GrooperNode, InsertIndex As Int32) As Boolean Appends the specified node as a child of this node at a specific position.
Parameters
NewNode
          Type: GrooperNode
          The node to insert.
 
InsertIndex
          Type: Int32
          The 0-based index at which the node should be inserted.
CcMove(NewParent As GrooperNode, InsertIndex As Int32) As Boolean Moves the node to a new parent, optionally inserting it at a specific index.
Parameters
NewParent
          Type: GrooperNode
          The new parent node.
 
InsertIndex
          Type: Int32
          The 0-based index at which the node should inserted.
CcRenameChild(Id As Guid, NewName As String, EnsureUnique As Boolean) As Boolean Renames the child node with the specified ID.
Parameters
Id
          Type: Guid
          The ID of the node to rename.
 
NewName
          Type: String
          The new name.
 
EnsureUnique
          Type: Boolean
          If set to true, a unique name will be automatically generated if needed. If set to false, and the provided name is already in use, an error will be generated.
ChangeFileStore(NewFileStore As FileStore) As Int32 Moves the files for this node to the indicated filestore.
Parameters
NewFileStore
          Type: FileStore
          The new file store.
Clear() Removes a value from this node.
ClearValue(ValueName As String) Removes a value from this node.
Parameters
ValueName
          Type: String
          The name of the value to remove.
Clone(gdbDst As GrooperDb, KeepId As Boolean) As GrooperNode Creates a clone of this node.
Parameters
gdbDst
          Type: GrooperDb
          
 
KeepId
          Type: Boolean
          
CloneBranch(gdbDst As GrooperDb, ipd As IProgressDisplay, KeepIds As Boolean) As GrooperNode Clones this branch of the tree.
Parameters
gdbDst
          Type: GrooperDb
          
 
ipd
          Type: IProgressDisplay
          
 
KeepIds
          Type: Boolean
          
ContainsId(Id As Guid) As Boolean Determines if a node with the specified Id value is present as an immediate child of this node.
Parameters
Id
          Type: Guid
          The Id to search for.
ContainsName(Name As String) As Boolean Determines if a node with the specified name is present as an immediate child of this node.
Parameters
Name
          Type: String
          The Id to search for.
CopyFileTo(SrcFileName As String, DstNode As GrooperNode, DstFileName As String) As Boolean Copies a file from this node to another GrooperNode.
Parameters
SrcFileName
          Type: String
          The filename to copy.
 
DstNode
          Type: GrooperNode
          The destination node.
 
DstFileName
          Type: String
          The destination filename.
CopyPropertiesFrom(Node As GrooperNode) Copies the properties from another GrooperNode.
Parameters
Node
          Type: GrooperNode
          
CreateChild(ItemType As Type, ItemName As String) As GrooperNode Creates a new child node with the specified type and appends it to the current node.
Parameters
ItemType
          Type: Type
          The type of the new node.
 
ItemName
          Type: String
          The name of the new node.
CreateChildren(ItemType As Type, ItemNames As IEnumerable(Of String)) As List(Of GrooperNode) Creates multiple child nodes with the specified type and appends it to the current node.
Parameters
ItemType
          Type: Type
          The type of nodes to create.
 
ItemNames
          Type: IEnumerable`1
          The name of the new node.
CreateDataElementProfile(Element As DataElement) As DataElementProfile Creates a new DataElementProfile for the specified DataElement.
Parameters
Element
          Type: DataElement
          The DataElement for which to add a profile.
CreateFileCopy(SrcFileName As String, DstFileName As String) As Boolean Copies the specified file to a new file with a different name.
Parameters
SrcFileName
          Type: String
          The source file name.
 
DstFileName
          Type: String
          The destination file name.
Delete() As Boolean Deletes the database row associated with this node, as well as all file objects associated with this node.
DeleteDataElementProfile(Element As DataElement) Deletes the DataElementProfile for the specified DataElement.
Parameters
Element
          Type: DataElement
          The DataElement for which to delete the profile.
DeleteFeatures() Deletes all classification features stored on this content type.
DeleteFile(FileName As String, IgnoreErrors As Boolean) As Boolean Deletes a file associated with this node.
Parameters
FileName
          Type: String
          The filename under which the file was previously stored.
 
IgnoreErrors
          Type: Boolean
          
DisableScript() Disables the script associated with this node by deleting the compiled assemblies.
EnsureLoaded(Recursive As Boolean) Ensures that the contents of the current node have been loaded at least 1 level deep.
Parameters
Recursive
          Type: Boolean
          If true, the entire branch is loaded. Otherwise, only immediate children will be loaded.
FileEntryExists(FileName As String) As Boolean Determines if file entry exists with the specified name.
Parameters
FileName
          Type: String
          The name of the file.
Finalize()
GetAncestor(LevelsAbove As Int32) As GrooperNode Returns the ancestor node a specific number of levels above this node.
Parameters
LevelsAbove
          Type: Int32
          The number of levels. A value of 1 will return the parent of this node.
GetAncestorOfType(Type As Type) As GrooperNode Returns the first ancestor up the tree which has the indicated type, or which derived from the indicated type.
Parameters
Type
          Type: Type
          The type of GrooperNode object to find.
GetBranchReferenceCount(TargetRefId As Guid) As Int32 Returns the number of references from this Branch to Node indicated by TargetRefId.
Parameters
TargetRefId
          Type: Guid
          
GetBranchReferences() As List(Of Guid) Returns a consolidated list of references to this node or any of its children.
GetBranchReferencesToMe() As List(Of Guid) Returns a consolidated list of references to this node or any of its children.
GetContentTypes(Level As ClassificationLevel) As IEnumerable(Of ContentType) Iterates the set of content types at the indicated level below this content type.
Parameters
Level
          Type: ClassificationLevel
          The level to use.
GetDataElementProfile(Element As DataElement) As DataElementProfile Returns the DataElementProfile for the specified DataElement.
Parameters
Element
          Type: DataElement
          The DataElement for which to retrieve the profile.
GetDisplayPathFrom(Ancestor As GrooperNode) As String Returns a string representing the path (made from display names) between this node and an ancestor node above it in the tree structure.
Parameters
Ancestor
          Type: GrooperNode
          The node to calculate a path from. This node must be an ancestor of the current node.
GetFileEntry(FileName As String) As ContentFile Retrieves a file entry by name.
Parameters
FileName
          Type: String
          The name of the file.
GetLastError() As String Returns the last error message which was set with SetLastError() or WriteToLog().
GetLevelsBelow(Type As Type) As Int32 Gets the number of levels between this node and a node above it of a specific type.
Parameters
Type
          Type: Type
          The node type to measure from.
GetLevelsBelow(Node As GrooperNode) As Int32 Gets the number of levels between this node and a specific ancestor node.
Parameters
Node
          Type: GrooperNode
          The node to measure from.
GetLock() As NodeLock Obtains the lock object for this node.
GetNode(IdToFind As Guid) As GrooperNode Finds a node with the specified Id value.
Parameters
IdToFind
          Type: Guid
          The unique Id value to find.
GetPathFrom(Ancestor As GrooperNode) As String Returns a string representing the path between this node and an ancestor node above it in the tree structure.
Parameters
Ancestor
          Type: GrooperNode
          The node to calculate a path from. This node must be an ancestor of the current node.
GetPathFromRoot() As String Returns a string representing the path between this node the root node.
GetPathTypesFromRoot() As String Returns a string representing the path types between this node and the root node.
GetProperties() As PropertyDescriptorCollection
GetReferences() As List(Of GrooperNode) Returns a list of references to this node.
GetReferencesToMe() As List(Of Guid) Returns a list of references to this node.
GetShadowNode(IncludePath As Boolean) As ShadowNode
Parameters
IncludePath
          Type: Boolean
          
GetTrainingPages(LanguageCode As String) As IEnumerable(Of TrainingPage)
Parameters
LanguageCode
          Type: String
          
GetUniqueName(BaseName As String) As String Creates a unique name for a child node, starting from a base name and adding a number at the end if needed.
Parameters
BaseName
          Type: String
          The base name.
GetValue(ValueName As String) As TheType Reads a serialized JSON object from a value.
Parameters
ValueName
          Type: String
          The value name under which the object was previously stored.
GetValue(ValueName As String) As String Reads a string value from this node.
Parameters
ValueName
          Type: String
          The value name under which the string was previously stored.
HasChanged() As Boolean Determines if the database row associated with this node has been modified by another process since the time it was read.
HasLocalDataElementProfile(Element As DataElement) As Boolean Returns true if a DataElementProfile for the specified DataElement is stored on this ContentType.
Parameters
Element
          Type: DataElement
          The DataElement to check.
HasRegistrationZones(PageNo As Int32) As Boolean Returns true if a page-level RegistrationZone exists for the indicated page number.
Parameters
PageNo
          Type: Int32
          The page number to fund registation zones for.
HasValue(ValueName As String) As Boolean Determines if a value exists on this node.
Parameters
ValueName
          Type: String
          The name of the value to check.
InitScript() As Boolean Initializes the script associated with this node.
InsertNode(NewNode As GrooperNode, im As InsertMethod) As Boolean Inserts a node as a child of this node.
Parameters
NewNode
          Type: GrooperNode
          The node to insert.
 
im
          Type: InsertMethod
          The insert method.
InsertNode(NewNode As GrooperNode, InsertIndex As Int32) As Boolean Inserts a node as a child of this node.
Parameters
NewNode
          Type: GrooperNode
          The node to insert.
 
InsertIndex
          Type: Int32
          The index at which the item should be inserted, or the constant GrooperNode.Append.
IsDescendantOf(Node As GrooperNode) As Boolean Determines if the specified node is an ancestor of this node.
Parameters
Node
          Type: GrooperNode
          The node to check.
IsDescendantOf(Type As Type) As Boolean Determines if a node with the specified type or deriving from the specified type is an ancestor of this node.
Parameters
Type
          Type: Type
          The type to check.
IsPropertyEnabled(PropertyName As String) As Nullable(Of Boolean) Defines whether a property is currently enabled.
Parameters
PropertyName
          Type: String
          The name of the property to determine the enabled state for.
IsPropertyVisible(PropertyName As String) As Nullable(Of Boolean) Defines whether a property is currently visible.
Parameters
PropertyName
          Type: String
          The name of the property to determine the visible state for.
IsType(Type As Type) As Boolean Returns true if the object is of the type specified, or if it derives from the type specfied.
Parameters
Type
          Type: Type
          The type to check.
LoadFeatures(Culture As CultureData) As FeatureDictionary
Parameters
Culture
          Type: CultureData
          
LoadFile(FileName As String) As ContentStream Loads a file as a stream.
Parameters
FileName
          Type: String
          The filename to read.
LoadFileObject(FileName As String, AdditionalTypes As IEnumerable(Of Type)) As TheType Loads a JSON-serialized object from the file store.
Parameters
FileName
          Type: String
          Filename the object was previously stored under.
 
AdditionalTypes
          Type: IEnumerable`1
          
LoadImage(FileName As String) As GrooperImage Loads an image from the specified filename.
Parameters
FileName
          Type: String
          
LoadTextFile(FileName As String) As String Loads a text file from the file store.
Parameters
FileName
          Type: String
          The filename under which the file was previously saved.
Lock(ProcedureName As String) As Boolean
Parameters
ProcedureName
          Type: String
          
Lock(ProcedureName As String, ReloadIfChanged As Boolean) As Boolean
Parameters
ProcedureName
          Type: String
          
 
ReloadIfChanged
          Type: Boolean
          
Lock(ProcedureName As String, ReloadIfChanged As Boolean, Timeout As Int32) As Boolean Attempts to obtain an exclusive lock on the node.
Parameters
ProcedureName
          Type: String
          The name of the procedure requesting the lock.
 
ReloadIfChanged
          Type: Boolean
          If true, the node will be checked to see if it has changed since it was read from the database. If so, it will be reloaded.
 
Timeout
          Type: Int32
          
Move(NewParent As GrooperNode, InsertIndex As Int32) As Boolean Moves this node from its current location in the tree structure to a new location.
Parameters
NewParent
          Type: GrooperNode
          The parent node that this node should be moved to.
 
InsertIndex
          Type: Int32
          The index at which the item should be inserted, or the constant GrooperNode.Append.
MoveChildren(NewParent As GrooperNode) As Boolean Moves all children of this node to another node.
Parameters
NewParent
          Type: GrooperNode
          
MoveItemsHere(OldParent As GrooperNode, Items As IEnumerable(Of GrooperNode)) As Boolean
Parameters
OldParent
          Type: GrooperNode
          
 
Items
          Type: IEnumerable`1
          
NameIsConflict(NewName As String) As Boolean Determines if renaming this node to the specified value will create a name conflict with another node in the same parent container.
Parameters
NewName
          Type: String
          The name to check.
NodeFromPath(Path As String, FromRoot As Boolean) As GrooperNode Finds a child node using a path string.
Parameters
Path
          Type: String
          A GrooperNode object, or Null/Nothing if the path is not found.
 
FromRoot
          Type: Boolean
          If true, then search from root, otherwise search from the current node.
PathExists(Path As String) As Boolean Determines if a node exists for a specific path.
Parameters
Path
          Type: String
          The path to check.
Purge(ipd As IProgressDisplay) As Boolean Purges all training data.
Parameters
ipd
          Type: IProgressDisplay
          Progress display object
Reload(ReloadChildren As Boolean) As Boolean Reloads this node from the database.
Parameters
ReloadChildren
          Type: Boolean
          
Remove() Removes this node and marks it for deletion on the next call to GrooperDb.SaveChanges().
RenameFile(OldFileName As String, NewFileName As String) As Boolean Renames a file associated with this node.
Parameters
OldFileName
          Type: String
          The current filename.
 
NewFileName
          Type: String
          The new filename.
SaveFile(Stream As Stream, MimeType As String, DstFileName As String, AllowOverwrite As Boolean) Saves a file from a stream to Grooper.
Parameters
Stream
          Type: Stream
          
 
MimeType
          Type: String
          
 
DstFileName
          Type: String
          
 
AllowOverwrite
          Type: Boolean
          
SaveFileObject(FileName As String, Item As TheType, AdditionalTypes As IEnumerable(Of Type), AllowOverwrite As Boolean) Saves an object to the file store using JSON serialization.
Parameters
FileName
          Type: String
          The filename to store the object under.
 
Item
          Type: TheType
          The object to be stored.
 
AdditionalTypes
          Type: IEnumerable`1
          
 
AllowOverwrite
          Type: Boolean
          
SaveImageFile(Image As GrooperImage, DstFileName As String, AllowOverwrite As Boolean) Save an image file on this node under the specified filename.
Parameters
Image
          Type: GrooperImage
          The image to save.
 
DstFileName
          Type: String
          The filename under which to save the image.
 
AllowOverwrite
          Type: Boolean
          If set to false, the method will fail if a file with the same name already exists.
SaveTextFile(DstFileName As String, TextContent As String, MimeType As String, AllowOverwrite As Boolean) Saves text data to a file in the file store.
Parameters
DstFileName
          Type: String
          The filename to store the file under.
 
TextContent
          Type: String
          The text content to save.
 
MimeType
          Type: String
          The MIME type to associate with the data.
 
AllowOverwrite
          Type: Boolean
          
Serialize() As String Serializes the object.
SetBranchAttributes(Value As NodeAttributes) Sets the attributes on this node and all nodes below it.
Parameters
Value
          Type: NodeAttributes
          Attributes to set.
SetDatabase(Database As GrooperDb) Sets the database connection of the object.
Parameters
Database
          Type: GrooperDb
          
SetLastError(Message As String, pa() As Object()) Sets an error message which can be retrieved by calling code via GetLastError().
Parameters
Message
          Type: String
          The message. Uses String.Format syntax.
 
pa
          Type: Object
          The String.Format parameters.
SetValue(ValueName As String, Value As TheType) Saves an object to a value using JSON serialization.
Parameters
ValueName
          Type: String
          The value name to store the object under.
 
Value
          Type: TheType
          The object to store.
SetValue(ValueName As String, Value As String) Saves a string value to this node.
Parameters
ValueName
          Type: String
          The value name under which to store the string.
 
Value
          Type: String
          The string to store.
SortChildren(SortByIndex As Boolean) Sorts the children of this node on name.
Parameters
SortByIndex
          Type: Boolean
          
TopChildren() As IEnumerable(Of NodeType) Returns the highest level nodes which have a type matching the supplied parameter. Items of the supplied type which are below another item of the same type will not be returned.
ToString() As String Returns the display name for the node.
Unload() Unloads the children of this node. Call this method to free up the memory associated with large branches of the tree.
Unlock() Unlocks a previously locked node.
Update() As Boolean Updates the database row associated with this node with any fields which have been changed.
ValidateProperties() As ValidationErrorList Validates the properties of the object, returning a list of validation errors.
WriteToLog(Type As EventType, Message As String, pa() As Object()) Writes an entry to the log table in the database.
Parameters
Type
          Type: EventType
          The type of event to log.
 
Message
          Type: String
          The message, or message format. Uses String.Format syntax.
 
pa
          Type: Object
          Parameters for String.Format
WriteToLog(ex As Exception, Message As String, pa() As Object()) Writes an error to the Grooper event log, using the stack trace from the provided exception and the specified message.
Parameters
ex
          Type: Exception
          The exception.
 
Message
          Type: String
          The message to log.
 
pa
          Type: Object
          String.Format() params.
WriteToLog(ex As Exception) Writes an error to the Grooper event log, using the stack trace and message contained the provided exception.
Parameters
ex
          Type: Exception
          The exception to log.

Commands

Command Name Description
Add Multiple Items Creates multiple items as children of the selected object.
Clear Children Deletes all children of the selected object(s).
Content Type - Create Data Model Creates a new data model object on this content type.
Content Type - Create Local Resources Folder Creates a new Local Resources Folder on this content type.
Export to Zip Archive Exports a set of Grooper nodes to a ZIP archive.
Content Type - Generate Control Sheets Creates a new Grooper Control Sheet for this content type.
Publish to Grooper Repository Publishes one or more Nodes to one or more Target Grooper Repositories.
Content Type - Purge Training Purges all classification training and samples from this item and all items below it.
Content Type - Rebuild Training Rebuilds classification training for this item and all items below it.
Unpublish Unpublishes a set of Grooper Nodes to a Target Grooper Repository.