AntFarm Documentation

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.


CoreData Model features Include:

  • Create DataSets & Attributes to add to Rhino geometry objects.
  • Serialize all data to .3dm files.
  • Copy/Paste Rhino geometry objects and associated Antfarm data within and between Rhino files.
  • Add/Remove Antfarm Data to/from Rhino geometry objects.
  • Track Rhino geometry attributes such as area, location, volume and length for appropriate geometries.
  • Internal SQL interpreter.
  • Public API for further Domain specific tools and enhancements.
    • Antfarm Urban Data (GIS).
    • Antfarm Grasshopper (Manipulate/Create Antfarm Data in Grasshopper).

Roadmap Currently Includes:

  • Core Datamodel bug fixes and optimizations.
    • Optimize data creation and manipulation to ensure that massive datasets do not impact performance and viewport frames.
  • UI & UX refinement and feature enhancements.
    • DataSet tab and gridview for querying, grouping and analysis of Antfarm data in simple easy to accomplish ways.
    • Data visualization tools in the AntFarm tabview and within the Rhino Viewport.
    • Data conversion tools such as converting between datatypes (auto catagorize data as an example).
    • Refine the integration to excel and other external data analysis tools to leverage existing tools and knowledge.
    • Provide a simple Visual SQL Query Tool in Rhino and Grasshopper.
      • Provide advanced data analysis, “Business Intelegence” & “Machine Learning” tools to the Grasshopper plugin.
    • Provide a SQL runtime text interpretor for data exploration and manipulation for advanced users.
  • Provide quality of life and additional features based on user feedback.

  • 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 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

    Rhino Commands

    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.