AntFarm

AntFarm

AntFarm is a Rhino 3D v7 (Currently Windows Only) plugin written in C# using the Mircosofts .net framework (4.8). It permits the user to store select data of several types on a rhino object and in an in-memory SQL database. This is accomplished through a series of new Rhino commands that can also be accessed through a UI providging complete integration with the standard Rhino experience inlcuding save/open, import/export, copy/paste between files and full undo/redo integration. Additionally Antfarm provides an API and a plugin system to further enhance the core datamodel with domain specific tools and functions.

Currently in public open Beta the core datamodel and functions are considered to be feature complete, but we are still developing the tools as we push for our initial release and API with the current focus on usaiblity inhancements, data manipulation and analysis inhancements and core optimizations. While in beta all Antfarm tools will be available to the general public. We have not yet settled on final licensing and price terms.

CoreData Model features Include:

Roadmap Currently Includes:


Table of Contents


Installation

AntFarm and associated plugins are availabe in the Package Manager


Data Structure

AntFarm data is held in SQL tables and keyed to Rhino geometry and objects as grouped themes of data collections called “DataSets”. They are represented graphicaly in a familar excel like table view of columns(Attributes) and rows(Geometry Objects).

Data Object Description
DataSet

An AntFarm DataSet is represented as a table view and stored as an in-memory data table. AntFarm is developed using SQLite and as such has a full SQL backend. A DataSet can hold additional data specified in the Attributes. The data not only gets stored in the database but also keyed to referenced Rhino object where is serialzied and saved in the Rhino file. A DataSet must be of unique name and can have the following settings.

Name AntFarm DataSet names are not case sensitive and must be unique.
Settings
Filter Rhino Object Type Filter which defines the type of geometrical object to be referenced in the DataSet.
Colour AntFarm DataSet colour
Attribute

AntFarm DataSets can hold additional data in Attributes (DataSet columns).

Name AntFarm DataSet Attribute names are not case sensitive and must be unique.
Attribute types
Boolean base data type
Category AntFarm specific data type.
Double base data type
Float base data type
Geometric AntFarm specific data type.
Integer base data type
String base data type
Category

AntFarm Category is a custom data type that can hold AntFarm Category Elements.

Name - AntFarm Category names are not case sensitive and must be unique.
Category Element

An AntFarm Category Element is a value in an AntFarm Category. An AntFarm Category ELement can hold predefined AntFarm Category Element Properties.

Name AntFarm Category Element names are not case sensitive and must be unique.
Category Element Property

An AntFarm Category Element Property can hold additional data on an AntFarm Category Element.

Name AntFarm Category Element Property names are not case sensitive and must be unique.
Property Type AntFarm Property Type are AntFarm specific data types.
Value A value based on the AntFarm Property Type.
Property Type

An AntFarm Category Element Property can hold additional data on an AntFarm Category Element.

Name AntFarm Property Type names are not case sensitive and must be unique.
Base data types
Boolean base data type
Colour AntFarm specific data type.
DateTime base data type
Double base data type
Integer base data type
String base data type
Geometric

An AntFarm specific data type that exposes geometrical data evaluated on the Rhino Object.

None default value
Length Evaluates the length of an object if property is supported.
Area Evaluates the area of an object if property is supported.
Volume Evaluates the volume of an object if property is supported.
X_Value Evaluates the x-coordinate of an object if property is supported.
Y_Value Evaluates the y-coordinate of an object if property is supported.
Z_Value Evaluates the z-coordinate of an object if property is supported.
Colour

An AntFarm specific data type to hold a colour value (serializable).

A - Transparency value of type byte.
R - Red value of type byte.
G - Green value of type byte.
B - Blue value of type byte.

Rhino Commands

Any interaction with AntFarm related functionality is using Rhino commands. The provided UI is calling the same Rhino commands.

Command Description
General Commands
AntFarm Opens the main AntFarm dockable panel.
AF_Settings Opens the AntFarm settings dialog.
AF_SchemaExport needs work.
AF_SchemaImport needs work.
Commands related to DataSets.
AF_DataSetAddTo

Adds Rhino objects to a DataSet. This allows the user to store additional data on a Rhino object.

Command options
DataSet Name of DataSet to add to.
AF_DataSetChangeColor

Allows for changing the DataSet color.

AF_DataSetClose

Close a displayed DataSet (default: current selected DataSet). Removes DataSet display from tabcontrol.

AF_DataSetCloseAll

Close all displayed DataSets. Remove all DataSets from tabcontrol.

AF_DataSetCloseAllButThis

Close all displayed DataSets but the current selected.

AF_DataSetCSVExport

Exports the data of an AntFarm DataSet to csv file.

Command options
DataSet Name of DataSet to add to.
Browse Opens a file dialog to specify file to export to
AF_DataSetCSVImport

Imports data from a csv file to an AntFarm DataSet.

Command options
DataSet Name of DataSet to export
Browse Opens a file dialog to specify file to export to
AF_DataSetDelete

Delete a DataSet and its related data. Allows deleting of associated rhino objects.

Command options
DataSet Name of DataSet to delete.
DeleteRhinoObjects

Yes - All Rhino objects will get deleted. If rhino objects exist in other DataSets, entries will also get removed from other DataSets

No - Rhino objects keep existing, but AntFarm data will get removed from the objects.

AF_DataSetNew

Creates a new DataSet in AntFarm with in-memory data element and SQLite table.

Command options
DataSet Name of DataSet (names respect case-sensitive spelling and must be alphanumeric)
Filter Rhino objects filter based on Rhino ObjectType
AF_DataSetOpen

Opens an existing before closed dataset from the SQLite in-memory database and adds it to the tab control.

Command options
DataSet Name of DataSet (names respect case-sensitive spelling and must be alphanumeric)
AF_DataSetRemoveFrom

Removes a Rhino object from a DataSet.

Command options
DataSet Name of DataSet to remove Rhino geometry objects from.
AF_DataSetRename

Rename an DataSet (default: current selected DataSet).

Command options
DataSet Name of DataSet to rename.
Commands related to Attributes.
AF_AttributeAdd

Adds a new Attribute (Column) to the DataSet.

Command options
DataSet Name of DataSet to add the Attribute.
Type Type of Attribute.
AF_AttributeMove Not supported.
AF_AttributeRename

Rename an existing Attribute.

Command options
DataSet Name of DataSet that holds the Attribute.
Attribute Name of the Attribute to be renamed.
AF_AttributeRemove

Removes an Attribute from a DataSet and removes the associated data from the Rhino object.

Command options
DataSet Name of DataSet that holds the Attribute.
Attribute Name of the Attribute to be removed.
Commands related to Categories.
AF_Categories

Displays the Category window which provides a UI interface to add Categories, Category Elements, Category Element Properties and Property Types.

AF_CategoriesImport

Opens a file window dialog to import an AntFarmCategory (*.afc) file.

AF_CategoriesExport

Exports all existing Categories including Category Elements, Category Element Properties and Property Types.

Command options
Browse Opens a file window dialog to specify the file (*.afc) location and name.
AF_CategoryDelete

Deletes a Category from AntFarm. Categories in use can not be deleted.

Command options
Category Name of Category to delete.
AF_CategoryNew

Create a new Category in AntFarm.

Command options
Name Name of Category to create.
AF_CategoryRename

Rename a Category in AntFarm.

Command options
Category Name of Category to rename.
Commands related to Category Elements.
AF_ElementAdd

Adds a new Category Elements to a Category.

Command options
Name Name of Category Element.
Category Name of Category to add to the Category Element.
AF_ElementCopy

Copies a Category Element from one Category to another including all attached Category Element Properties.

Command options
FromCategory Name of Category to copy from.
ToCategory Name of Category to copy to.
Element Name of Category Element to copy.
AF_ElementRemove

Removes a Category Element from a Category. Category Element in use will not be removed.

Command options
Category Name of Category of Category Element.
Element Name of Category Element to remove.
AF_ElementRename

Rename a Category Element.

Command options
Category Name of Category of Category Element.
Element Name of Category Element to rename.
Commands related to Category Element Properties.
AF_PropertyAdd

Adds a new Category Element Property to an exisiting Category Element.

Command options
Category Name of Category hosting the Category Element to add to the Category Element Property.
Element Name of the Category Element to add to the Category Element Property.
AF_PropertyRemove

Remove a Category Element Property from a Category Element.

Command options
Category Name of Category hosting the Category Element to remove from the Category Element Property.
Element Name of the Category Element to remove from the Category Element Property.
Property Name of the Category Element Property to remove.
AF_PropertyRename

Rename a Category Element Property.

Command options
Category Name of Category hosting the Category Element that hosts the Category Element Property to rename.
Element Name of the Category Element hosting the Category Element Property to rename.
Property Name of the Category Element Property to rename.
AF_PropertyUpdateValue

Update the stored value in a Category Element Property.

Command options
Category Name of Category hosting the Category Element that hosts the Category Element Property.
Element Name of the Category Element hosting the Category Element Property.
Property Name of the Category Element Property to update the value.
Commands related to Property Types.
AF_PropertyTypeDelete

Delete a Property Type.

Command options
PropertyType Name of Property Type to delete.
AF_PropertyTypeNew

Create a new Property Type.

Command options
Name Name of Property Type.
BaseType Name of Property Base Type.
AF_PropertyTypeRename

Rename a Property Type.

Command options
PropertyType Name of Property Type to rename.

API

Please refer to AntFarm API for further information.


Plugins