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 data of several types on a rhino object and in an in-memory SQL database. This is accomplished through a series of AntFarm specific Rhino commands that can also be accessed through a UI providing 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 plug-in 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 usability enhancements, data manipulation and analysis enhancements 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.
AntFarm and associated plugins are availabe in the Package Manager.
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 graphically in a familar excel like table view of columns (attributes) and rows (geometry objects).
Data Object | Description / Properties | |||||
---|---|---|---|---|---|---|
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. | ||||
⤷ | Type | |||||
⤷ | Boolean | Base data type | ||||
⤷ | Category | AntFarm specific data type | ||||
⤷ | DateTime | Base data type | ||||
⤷ | Double | Base data type | ||||
⤷ | Float | Base data type | ||||
⤷ | Geometric | AntFarm specific 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. | ||||
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. | ||||
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. | ||||
⤷ | Type | AntFarm Property Type are AntFarm specific data types. | ||||
⤷ | Value | A value based on the AntFarm Property Type. | ||||
Property Type | An AntFarm specific data type to assign to Category Element Properties. | |||||
⤷ | Name | AntFarm Property Type names are not case sensitive and must be unique. | ||||
⤷ | Base Type | |||||
⤷ | 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 a Rhino Object. | |||||
⤷ | None | default value | ||||
⤷ | Length | Evaluates the length of an object if property is supported. | ||||
⤷ | Line/Curve | Evaluates the length. | ||||
⤷ | Surface/Brep | Evaluates the perimeter. | ||||
⤷ | Area | Evaluates the area of an object if property is supported. | ||||
⤷ | Surface | Evaluates the area. | ||||
⤷ | Brep | Evaluates the surface area. | ||||
⤷ | Volume | Evaluates the volume of an object if property is supported. | ||||
⤷ | Brep | Evaluates the volume if closed. | ||||
⤷ | X_Value | Evaluates the x-coordinate of an object if property is supported. | ||||
⤷ | Point | Evaluates x-coordinate. | ||||
⤷ | Polyline/Curve | Evaluates x-coordinate of centroid if closed. | ||||
⤷ | Surface | Evaluates x-coordinate of centroid. | ||||
⤷ | Brep | Evaluates x-coordinate of centroid. | ||||
⤷ | Y_Value | Evaluates the y-coordinate of an object if property is supported. | ||||
⤷ | Point | Evaluates y-coordinate. | ||||
⤷ | Polyline/Curve | Evaluates y-coordinate of centroid if closed. | ||||
⤷ | Surface | Evaluates y-coordinate of centroid. | ||||
⤷ | Brep | Evaluates y-coordinate of centroid. | ||||
⤷ | Z_Value | Evaluates the z-coordinate of an object if property is supported. | ||||
⤷ | Point | Evaluates z-coordinate. | ||||
⤷ | Polyline/Curve | Evaluates z-coordinate of centroid if closed. | ||||
⤷ | Surface | Evaluates z-coordinate of centroid. | ||||
⤷ | Brep | Evaluates z-coordinate of centroid. | ||||
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 |
Any interaction with AntFarm related functionality is using Rhino commands. The provided UI is calling the same Rhino commands.
Rhino Command | Description / Command Options | ||||
---|---|---|---|---|---|
General | |||||
AntFarm | Opens the main AntFarm dockable panel. | ||||
AF_Settings | Opens the AntFarm settings dialog. | ||||
AF_SchemaExport | Exports a *.af xml-based schema file. Only data structure gets exported, no data. | ||||
⤷ | Browse | Opens a FileSaveDialog to specify the file path. | |||
⤷ | ExportAll | ||||
⤷ | Yes | All DataSet schemas, Categories and Property Types get exported. | |||
⤷ | No | Only one selected DataSet schema with associated Categories and Property Types gets exported. | |||
⤷ | DataSet | Name of DataSet to export. | |||
AF_SchemaImport | Imports a *.af xml-based schema file. Opens a file dialog to select a valid file. | ||||
Commands related to DataSets. | |||||
AF_DataSetAddTo | Adds Rhino objects to a DataSet. This allows the user to store additional data on a Rhino object. | ||||
⤷ | 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 DataSet. Remove all DataSets from tabcontrol. | ||||
AF_DataSetCloseAllButThis | Close all displayed DataSets but the current selected. | ||||
⤷ | DataSet | Name of DataSet to stay open. | |||
AF_DataSetCSVExport | Exports the data of an AntFarm DataSet to csv file. | ||||
⤷ | DataSet | Name of DataSet to export. | |||
⤷ | Browse | Opens a file dialog to specify file to export to. | |||
AF_DataSetCSVImport | Imports a csv file. Opens a file dialog to select a valid file. | ||||
AF_DataSetDelete | Delete a DataSet and its related data. Optional deleting of associated rhino objects. | ||||
⤷ | DataSet | Name of DataSet to delete. | |||
⤷ | DeleteRhinoObjects | ||||
⤷ | Yes | All Rhino objects will get deleted. If rhino objects exist in other DataSets, object reference 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 database table. | ||||
⤷ | Filter | Rhino object filter based on Rhino ObjectType | |||
AF_DataSetOpen | Opens an existing before closed DataSet and brings it to display in the tab control. | ||||
⤷ | DataSet | Name of DataSet. | |||
AF_DataSetRemoveFrom | Removes a Rhino object from a DataSet. | ||||
⤷ | DataSet | Name of DataSet to remove Rhino objects from. | |||
AF_DataSetRename | Rename an DataSet (default: current selected DataSet). | ||||
⤷ | DataSet | Name of DataSet to rename. | |||
Commands related to Attributes. | |||||
AF_AttributeAdd | Adds a new Attribute (Column) to the DataSet. | ||||
⤷ | DataSet | Name of DataSet to add to. | |||
⤷ | Type | Type of Attribute. | |||
AF_AttributeMove | Not yet implemented. | ||||
AF_AttributeRemove | Removes an Attribute from a DataSet and removes the associated data from the Rhino object. | ||||
⤷ | DataSet | Name of DataSet that holds the Attribute. | |||
⤷ | Attribute | Name of the Attribute to remove. | |||
AF_AttributeRename | Rename an existing Attribute. | ||||
⤷ | DataSet | Name of DataSet that holds the Attribute. | |||
⤷ | Attribute | Name of the Attribute to rename. | |||
Commands related to Categories. | |||||
AF_Categories | Displays the Category window, which provides an UI interface to add Categories, Category Elements, Category Element Properties and Property Types. | ||||
AF_CategoriesExport | Exports all existing Categories including Category Elements, Category Element Properties and Property Types to a *.afc file. | ||||
⤷ | Browse | Opens a FileSaveDialog to specify the file path. | |||
AF_CategoriesImport | Opens a file window dialog to import an AntFarmCategory *.afc file. | ||||
AF_CategoryDelete | Deletes a Category from AntFarm. Categories in use can not be deleted. | ||||
⤷ | Category | Name of Category to delete. | |||
AF_CategoryNew | Create a new Category in AntFarm. | ||||
AF_CategoryRename | Rename a Category in AntFarm. | ||||
⤷ | Category | Name of Category to rename. | |||
Commands related to Category Elements. | |||||
AF_ElementAdd | Adds a new Category Element to AntFarm. | ||||
⤷ | Category | Name of Category to add to the Category Element. | |||
AF_ElementCopy | Copies a Category Element from one Category to another including all attached Element Properties. | ||||
⤷ | 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. A Category Element in use will not be removed. | ||||
⤷ | Category | Name of Category that holds the Category Element. | |||
⤷ | Element | Name of Category Element to remove. | |||
AF_ElementRename | Rename a Category Element. | ||||
⤷ | Category | Name of Category that holds the Category Element. | |||
⤷ | Element | Name of Category Element to rename. | |||
Commands related to Category Element Properties. | |||||
AF_PropertyAdd | Adds a new Category Element Property to AntFarm. | ||||
⤷ | Category | Name of Category that holds the Category Element to add to the Category Element Property. | |||
⤷ | Element | Name of Category Element to add to the Category Element Property. | |||
AF_PropertyRemove | Removes a Category Element Property from a Category Element. | ||||
⤷ | Category | Name of Category that holds the Category Element. | |||
⤷ | Element | Name of Category Element to remove from the Category Element Property. | |||
AF_PropertyRename | Rename a Category Element Property. | ||||
⤷ | Category | Name of Category that holds the Category Element. | |||
⤷ | Element | Name of Category Element that holds the Category Element Property to rename. | |||
AF_PropertyUpdateValue | Sets or updates the stored value on a Category Element Property. | ||||
⤷ | Category | Name of Category that holds the Category Element. | |||
⤷ | Element | Name of Category Element that holds the Category Element Property. | |||
⤷ | Property | Name of Category Element Property to set or update the value. For Properties of Property Type DateTime or Colour a dialog gets displayed to set the value. | |||
Commands related to Property Types. | |||||
AF_PropertyTypeDelete | Delete a Property Type from AntFarm. Property Types in use can not be deleted. | ||||
⤷ | PropertyType | Name of Property Type to delete. | |||
AF_PropertyTypeNew | Create a new Property Type in AntFarm. | ||||
⤷ | BaseType | Specify Property Type Base Type. | |||
AF_PropertyTypeRename | Rename a Property Type. | ||||
⤷ | PropertyType | Name of Property Type to rename. |
Copyright 2020-2021 © InCore Design.