Date post: | 25-Feb-2018 |
Category: |
Documents |
Upload: | pepitoperezpeludo |
View: | 237 times |
Download: | 1 times |
of 61
7/25/2019 Bumblebee Primer
1/61
7/25/2019 Bumblebee Primer
2/61
1. About
2. Application Nodes
i. Read Dataii. Write Data
3. Graphic Styles
i. Fill Style
ii. Text Style
iii. Border Style
iv. Legend Style
v. Graph Style
vi. Label Style
vii. Chart Style
4. Conditional Formatting
i. Overviewii. Cell Value
iii. Expression
iv. 2 Color
v. 3 Color
vi. Top/Bottom Percentile
vii. Data Bar
5. Charts
i. Pie Chart
6. Extras
i. Search Value GetRow
ii. Clear Contents
Table of Contents
Bumblebee Primer
2
7/25/2019 Bumblebee Primer
3/61
Bumblebee is an Excel Interop extension for Dynamo.
This is an Open Source project and all code for both Bumblebee nodes as well as this primer can be found at GitHub.
Majority of Bumblebee was written by Konrad K Sobon, but also majority of it was either previously developed by David
Mans, or was developed after some great brainstorming sessions with David.
More information about Bumblebee and other great Open Source projects can be found at my blog website:
http://www.archi-lab.net
Also, thanks to folks at Grimshaw Architects for letting me work on this plug-in while there was usually plenty of projects in
the office that could have used someone to move some toilets around. :-)
DynamoThis plug-in was developed and tested with the Version 0.8.0.
UI++is a plugin developed by Adam Sheather that allows you to select colors with great ease. You can see his ColorUI
Bumblebee Primer
First Edition V1.0
Bumblebee and Bumblebee Primer Project
Software and Resources
Bumblebee Primer
3About
http://www.archi-lab.net/7/25/2019 Bumblebee Primer
4/61
node used throughout this Primer. You can download UI++ from Package Manager.
A special thanks to David Mans for making such an awesome Excel Interop plug-in for Grasshopper that was not only an
inspiration for this project but also a great resource and a learning tool. You can access David's website here:
http://www.neoarchaic.net/
Also, special thanks to my crew at BadMonkey for doing some early Bumblebee implementation tests and being a great
resource when developing better functionality. Yes, Adam, I am looking at you and your UI++ tool that is probably the best
thing that happened to Dynamo in a while.
Acknowledgements
Bumblebee Primer
4About
http://www.neoarchaic.net/7/25/2019 Bumblebee Primer
5/61
These are nodes that support basic Excel Interop functionality like Read and Write.
1.0.0 Application Nodes
Bumblebee Primer
5Application Nodes
7/25/2019 Bumblebee Primer
6/61
You can read Excel files in a number of different ways using Bumblebee. You can read an entire sheet contents, read fromspecified origin point, read only a specific range of data or do all of the former but for multiple sheets.
FilePath:[FilePath] Use FilePath node to point at Excel file that you wish to read data from.
RunIt:[Boolean] Set this to True to enable this node and read data from file. Set this to False to disable this node.
SheetName:[String or List[String]] Set this input to a single sheet name or use a list of sheet names to read multiple
sheets.
ByColumn:[Boolean] Set this input to True to read excel data "by column" instead of default excel behavior "by row"
Origin:[String or List[String]] Leave this input blank and default origin is set to start at A1. You can either supply an
excel address format: "A1" or a cell index format List[1,1] to set the origin cell from which data will be read
Extent:[String or List[String]] Leave this input blank and default extent is set to read the whole sheet. You can either
supply an excel address format: "A13" or a cell index format List[1,13] to constrain the extent of document that you
want to read.
1.1.0 Read Data from Excel
1.1.1 Read Single Sheet - Entire Content
1.1.2 Read Single Sheet - From Specific Origin
Bumblebee Primer
6Read Data
7/25/2019 Bumblebee Primer
7/61
In this example we are setting the Origin to be at A6 so data will only be read from that point out since Extent was
unspecified.
1.1.3 Read Single Sheet - Specific Range Only
Bumblebee Primer
7Read Data
7/25/2019 Bumblebee Primer
8/61
In this example we are setting both the Origin and Extent effectively creating a Range of data that we want to read.
In this example we are setting the Extent only effectively creating a range that starts at the origin of the document: A1 and
extends to our specified extent input.
1.1.4 Read Single Sheet - From Specific Extent
Bumblebee Primer
8Read Data
7/25/2019 Bumblebee Primer
9/61
Tip:You can create the list of sheet names in veriaty of ways. I personally prefer Code Blocks but its not a must andother ways will work just fine. Here's another one:
1.1.5 Read Multiple Sheets - Entire Content
Bumblebee Primer
9Read Data
7/25/2019 Bumblebee Primer
10/61
Please make sure that if you are specifying multiple sheet names (List[]) and multiple origins/extents to match their lengths.
For example if I have a List["FirstSheet","SecondSheet"] and you want to specify a different origin for each sheet to do it
like so: List["A1","B1"]. You can of course leave the origin/extent inputs blank and defaults discussed earlier will apply.
Here's an example:
Tip:As you can see in the image above there is bunch of elements returned that are "Null". This is perfectly normal
as all empty cells will return a Null value. You can remove all Null values using a seperate utility (Clear List) that can
be found in Archi-lab (Grimshaw) Package. Please see below:
Tip:You can use a Cell Index node which is also part of Bumblebee package to convert an excel address from string
format "A1" to index format [1,1]
1.1.6 Read Multiple Sheets - From Specific Origin
Tips and Tricks
Bumblebee Primer
10Read Data
7/25/2019 Bumblebee Primer
11/61
Tip:While reading multiple sheets from an Excel file it might be a time saver to be able to query up all sheet names
that file contains without having to open it first. Please use Get Worksheet Names node to do just that, but DO NOT
use its output to set up Read Excel node as it will cause a conflict.
Bumblebee Primer
11Read Data
7/25/2019 Bumblebee Primer
12/61
This is probably the most common application for Bumblebee - writing a nested list of data to multiple columns or rows toan Excel spreadsheet. Here's how its done:
File Path:[FilePath] If file path does not exist, please navigate to directory that you wish to create a new file in and
instead of selecting it just type in its name and Excel file extension *.xlsx
RunIt:[Boolean] If set to False it will disable this node. If set to True it will enable this node and execute the write
process.
ByColumn:[Boolean] If set to False this file will be written "By Row" which is a standard Excel writing method.
Setting it to True will be equivelant to performing a Transpose function on data before writing it.
BBData:[BBData] This is a BBData input. Please see below for how this node can be set up.
1.2.0 Write Data to Excel
1.2.1 Write Multiple Rows of Data to Excel
There is only one rule here: please close Excel when trying to override a file. :-)
1.2.2 Setting Up BB Data Node
Bumblebee Primer
12Write Data
7/25/2019 Bumblebee Primer
13/61
For any of the inputs please make sure that you always match their data types. What I mean by that is if you define
SheetName to be a list of two items: ["Sheet1","Sheet2"] then make sure that Origin is also a matching list: ["A1","A1"] and
Data is a Nested List of Lists: [[[1,2],[1,2]],[[2,2],[2,2]]].
SheetName:[String or List[String]] If Sheet Name is a single item, Origin and Data input have to match that. This is a
Sheet that Data will be written into. If sheet with specified name doesn't exist a new sheet with that name will be
added to specified Excel document.
Origin:[String or List[String]] This is origin cell that data writing will start at. By default this input is specified at A1 but
it can be changed to begin writing from any other location.
Data:[List[] or Nested List[[]]] This is data that you wish to write to Excel. For now Bumblebee was only tested writing
Numbers and Strings.
Bumblebee has ability to write more than one sheet at the time. You can generate a single BB Data node for each sheet
and then use List.Create to combine them into a list of BB Data objects that can be used as an input to Write Excel node.
You can also achieve this functionality using a single BB Data node like so:
You can also combine BB Data nodes in this fashion to write not only to multiple sheets but also to the same sheet but from
1.2.3 Combining BB Data Nodes to Write Multiple Sheets
1.2.4 Additional Example
Bumblebee Primer
13Write Data
7/25/2019 Bumblebee Primer
14/61
a different origin.
Given large community outcry (yes, I am looking at you - Shane Burger) I decided to include this node in Bumblebee. It will
allow you to stream data to Excel while Excel is open and results will display/update in Excel instantly - or as fast as it takes
Excel to refresh.
This is probably the most common application for Bumblebee - writing a nested list of data to multiple columns or rows to
an Excel spreadsheet. Here's how its done:
1.3.0 Write Data to Excel in Live Mode
One rule here is to have ONLY the document that you intend to override open,
since this node will write to first Excel file that it encounters in the ROT (Running
Objects Table).
1.3.1 Write Multiple Rows of Data to Excel
Bumblebee Primer
14Write Data
7/25/2019 Bumblebee Primer
15/61
RunIt:[Boolean] If set to False it will disable this node. If set to True it will enable this node and execute the write
process.
ByColumn:[Boolean] If set to False this file will be written "By Row" which is a standard Excel writing method.
Setting it to True will be equivelant to performing a Transpose function on data before writing it.
BBData:[BBData] This is a BBData input. Please see below for how this node can be set up.
For any of the inputs please make sure that you always match their data types. What I mean by that is if you define
SheetName to be a list of two items: ["Sheet1","Sheet2"] then make sure that Origin is also a matching list: ["A1","A1"] and
Data is a Nested List of Lists: [[[1,2],[1,2]],[[2,2],[2,2]]].
SheetName:[String or List[String]] If Sheet Name is a single item, Origin and Data input have to match that. This is a
Sheet that Data will be written into. If sheet with specified name doesn't exist a new sheet with that name will be
added to specified Excel document.
Origin:[String or List[String]] This is origin cell that data writing will start at. By default this input is specified at A1 but
it can be changed to begin writing from any other location.
Data:[List[] or Nested List[[]]] This is data that you wish to write to Excel. For now Bumblebee was only tested writing
Numbers and Strings.
If by any chance you want to create a new Sheet in the current Excel file, just use a SheetName (BB Data input) that
doesn't exist yet and it will be added.
1.3.2 Setting Up BB Data Node
1.3.3 Adding new sheets to Excel.
Bumblebee Primer
15Write Data
7/25/2019 Bumblebee Primer
16/61
While defining Graphic Style you can chose to either override one or all of the available styles. If you wish to not overrideBorder Style then just leave that input empty.
FillStyle:[Fill Style] If you supply a fill style to this input it will be overriden to whatever fill style settings were defined
for that fill style.
TextStyle:[Text Style] If you supply a text style to this input it will be overridden to whatever text style settings were
defined for that text style.
BorderStyle:[Border Style] If you supply a border style to this input it will be overridden to whatever border style
settings were defined for that text style.
2.0.0 Graphic Styles
2.0.1 Define Graphic Style
Bumblebee Primer
16Graphic Styles
7/25/2019 Bumblebee Primer
17/61
PatternType:[Pattern Type] If you wish to apply fill pattern to a cell use this input to specify it.
BackgroundColor:[Color] If you wish to specify a background color in a cell use Color.ByARGB node to do so.
PatternColor:[Color] If you wish to specify pattern color use Color.ByARGB node to do so.
Bevel:[Bevel Type] Currently unavailable
Opacity:[Integer] Currently unavailable
Tip:When defining Pattern Color one has to specify a background color. Pattern color will only "take" when
Background is defined. I usually define background to be White.
Tip2:When you chose a "xlSolid" that means that you only have to define BackgroundColor.
2.1.0 Define Fill Style
Bumblebee Primer
17Fill Style
7/25/2019 Bumblebee Primer
18/61
Bumblebee Primer
18Fill Style
7/25/2019 Bumblebee Primer
19/61
Name:[String] This input has to be a name of a font that is currently installed on your machine.
Size:[String] Please specify a size of font to be used as a String. For example: "12" and NOT 12 which would be an
integer.
FontColor:[Color] If you wish to specify different than black font color use Color.ByARGB node to do so.
HorizontalAlignType: [Horizontal Align Type] This can be set to Left, Center or Right.
VerticalAlignType:[Vertical Align Type] This can be set to Top, Middle or Bottom.
Bold:[Boolean] Set it to True for font to be bold.
Italic:[Boolean] Set it to True for font to be italic.
Underline:[Boolean] Set it to True for font to have an underline.
Strikethrough:[Boolean] Set it to True for font to have a strikethrough.
2.2.0 Define Text Style
Bumblebee Primer
19Text Style
7/25/2019 Bumblebee Primer
20/61
LineType:[Line Type] If you wish to define a line type different than a solid use this input to do so.
LineWeightType:[Line Weight Type] Line weights can only be one of the following types: Hairline, Medium, Thick or
Think.
LineColor:[Color] If you wish to specify line color use Color.ByARGB node to do so.
2.3.0 Define Border Style
Bumblebee Primer
20Border Style
7/25/2019 Bumblebee Primer
21/61
LineType:[Line Type] If you wish to define a line type different than a solid use this input to do so.
LineWeightType:[Line Weight Type] Line weights can only be one of the following types: Hairline, Medium, Thick or
Think.
LineColor:[Color] If you wish to specify line color use Color.ByARGB node to do so.
2.4.0 Define Legend Style
Bumblebee Primer
21Legend Style
7/25/2019 Bumblebee Primer
22/61
FillStyle:[Fill Style] See Fill Style section for more details.
TextStyle:[Text Style] See Text Style section for more details.
BorderStyle:[Border Style] See Border Style section for more details.
LabelStyle:[Label Style] See Label Style section for more details.
Explosion:[Integer] Use this input to set the amount of explosion that will be added to Pie Chart.
2.5.0 Define Graph Style
2.5.1 Example of a chart with labels and large amount of explosion:
Bumblebee Primer
22Graph Style
http://konradsobon.gitbooks.io/bumblebee-primer/content/260_label_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/230_border_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/220_text_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/210_fill_style.html7/25/2019 Bumblebee Primer
23/61
FillStyle:[Fill Style] See Fill Style section for more details.
TextStyle:[Text Style] See Text Style section for more details.
BorderStyle:[Border Style] See Border Style section for more details.
ShowSeriesName:[Boolean] If set to True a label text will include data Series Name.
ShowValue:[Boolean] If set to True a label text will include a value from data range that corresponds to this data
point.
ShowPercentage:[Boolean] Ifset to True a label text will include a percentage that this data point is in relation to
the whole data set.
ShowLeaderLines:[Boolean] If set to True and Label Position is set to Best Fit, for labels that were seperated from
the data point, there will be a leader line.
ShowLegendKey:[Boolean] If set to True a label will include a Legend Key next to label text.
Separator:[String] A string that will be used to separate each value in the label if more than one value is displayed.
For example: SeriesName, Percentage, Value etc.
LabelPosition:[Label Position Type] Use Label Position Types to define a location for labels.
2.6.0 Define Label Style
2.6.1 Example of a chart with labels set to Best Fit:
Bumblebee Primer
23Label Style
http://konradsobon.gitbooks.io/bumblebee-primer/content/230_border_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/230_border_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/220_text_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/210_fill_style.html7/25/2019 Bumblebee Primer
24/61
7/25/2019 Bumblebee Primer
25/61
FillStyle:[Fill Style] See Fill Style section for more details.
TextStyle:[Text Style] See Text Style section for more details.
BorderStyle:[Border Style] See Border Style section for more details.
RoundedCorners:[Boolean] If this input is set to True AND Border Style is supplied it will make the border aroundchart have rounded corners.
2.7.0 Define Chart Style
2.7.1 Example of pie chart with Border and RoundedCorners defined:
Bumblebee Primer
25Chart Style
http://konradsobon.gitbooks.io/bumblebee-primer/content/230_border_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/220_text_style.htmlhttp://konradsobon.gitbooks.io/bumblebee-primer/content/210_fill_style.html7/25/2019 Bumblebee Primer
26/61
This node allow you to create conditional formatting styles in Excel for better data visualizations.
3.0.0 Conditional Formatting Nodes
Bumblebee Primer
26Conditional Formatting
7/25/2019 Bumblebee Primer
27/61
Conditional Formatting in Excel can be a really powerful tool. If you ever wanted to use Excel as a model checking or model
management tool on Revit projects then this will come really handy for you. I use it to extract all kinds of data and
parameters and then apply conditional formatting to it, to quickly identify mistakes and imissions. Conditional Formattingrequires 4 main steps to be defined. Here they are:
1. Choose Conditional Formatting Condition. This can be a Cell Value, Expression or 2/3 Color Gradient Scheme.
2. Define rules that will govern whether Graphic Style will be applied to a cell or not.
3. Create a Graphic Style that will be applied to a cell in case that cell evaluates to True based on formatting rule.
4. Apply it to Excel Document/Range.
Let's go over these four steps using Cell Value Formatting Condition as an example.
3.1.0 Conditional Formatting Overview
3.1.1 Set Up
Bumblebee Primer
27Overview
7/25/2019 Bumblebee Primer
28/61
FilePath:[FilePath] Use this input to specify excel file that formatting will be applied to.
RunIt:[Boolean] Set this input to True to enable this node and execute it. Set it to False to disable it.
SheetName:[String] Use this input to specify what sheet you want to apply the formatting to.
CellRange:[String or List[String]] Use this node to define a specific range that you want the formatting to be applied
to. Typical Excel syntax applies where range is defined like so: "A1:B1".
FormatConditions:[FormatCondition or List[FormatCondition]] Use this input to supply a single Format Condition
object (for example a Cell Value FC) or a list of multiple Format Conditions. This allows you to combine multiple Cell
Value format conditions or apply them to multiple ranges.
Multiple Formatting Conditions applied to multiple ranges in an Excel file helping me identify parameters in my Drawing List
that were not set or set incorrectly.
3.1.2 Example:
Bumblebee Primer
28Overview
7/25/2019 Bumblebee Primer
29/61
Rules Box in Excel that reflects all of the Conditions applied.
Bumblebee Primer
29Overview
7/25/2019 Bumblebee Primer
30/61
Cell Value Formatting allows you to set up a formatting condition that relies on a value that is contained within each cell that
formatting is applied to. This basically allows you to compare each cell to some value and based on some simple
comparison operators like "equals" or "less than" you can apply certain style to cell based on that comparison result.
Based on what Operator Type you chose, you will either have to supply one or more values that each cell will be evaluated
against. Operator Types available are pretty straight forward and are mostly similar to some of the logical operators that
you have already seen in Excel:
3.2.0 Cell Value Formatting
3.2.1 Choose Operator Type and Values
Bumblebee Primer
30Cell Value
7/25/2019 Bumblebee Primer
31/61
1. Equal - requires (1) value for comparison.
2. NotEqual - requires (1) value for comparison.
3. Greater - requires (1) value for comparison.
4. GreaterEqual - requires (1) value for comparison.
5. Less - requires (1) value for comparison.
6. LessEqual - requires (1) value for comparison.
7. Between - requires (2) values for comparison.
8. NotBetween - requires (2) values for comparison.
Values can be either Strings or Numbers and it simply depends on what data you want to compare it to in Excel. For thisexample I will use a String. My objective is to check a range of values in Excel and determine if its equal to "Author". If it is
then I want to apply a specific Graphic Style to that cell.
You can either use a Code Block or a String Node like so:
Bumblebee Primer
31Cell Value
7/25/2019 Bumblebee Primer
32/61
Once we have our condition defined we can move on to defining Graphic Style that will be applied to cells that evaluate to
True for the given condition.
Please see section 3.0.0 for detail instructions on how to define Graphic Styles. This Graphic Style will be used if cell
evaluates to True based on rules defined in previous section.
This is what the final result will look like:
3.2.2 Define Graphic Style
3.2.3 Cell Value Format Condition - Single Range/Single Format Condition
Bumblebee Primer
32Cell Value
7/25/2019 Bumblebee Primer
33/61
You can also stack more than one Format Condition on top of each other and formatting will be applied based on order thatthey were added in case that both Format Conditions evaluate to True. Here's an example:
This is what the final result will look like:
3.2.4 Cell Value Format Condition - Single Range/Multiple Format Conditions
Bumblebee Primer
33Cell Value
7/25/2019 Bumblebee Primer
34/61
You can also apply different Format Conditions to more than one range at the time while maintaining ability to add more
than one Format Condition per Range. Just create lists of lists of Format Conditions and you will be good to go.
3.2.5 Cell Value Format Condition - Multiple Ranges/Multiple Format Conditions
Bumblebee Primer
34Cell Value
7/25/2019 Bumblebee Primer
35/61
This is what the final result will look like:
Bumblebee Primer
35Cell Value
7/25/2019 Bumblebee Primer
36/61
The trick is to match the length of the Cell Range list with the Format Conditions list like so:
Bumblebee Primer
36Cell Value
7/25/2019 Bumblebee Primer
37/61
Expression Formatting allows you to set up a formatting condition that will evaluate an Excel expression as if it was applied
to every cell and apply certain style to cell based on that evaluation result.
This is Excel based expression written out as if you were typing it into Excel's formula bar. All Excel formatting/syntax
applies here as well. I am not an Excel formulas guru but here is a simple one that evaluates whether a cell is empty simply
by measuring length of string contained within it. If there is no string, this expression will evaluate to True:
Tip:Keep in mind that cell that is being used for evaluation here (C1) needs to be within the range that this
expression formatting is being applied to (C1:C31). If my range was A1:A31 then my expression would have to be"=LEN(TRIM(A1))=0".
Again I am not an excel guru, but this rule holds true even when you try applying conditional formatting using Excel's user
interface. As a matter of fact this is the best way to test something - try it in Excel first.
Please see 3.1.0 Define Graphic Style section of this book for more details on how to define Graphic Style.
This is what the final result would look like:
3.3.0 Expression Formatting
3.3.1 Define an Expression
# "=LEN(TRIM(C1))=0"
3.3.2 Define Graphic Style
Bumblebee Primer
37Expression
7/25/2019 Bumblebee Primer
38/61
Exactly the same rules apply to Expression Formatting as to Cell Value Formatting. You can stack multiple formatconditions on top of each other or apply them to different ranges at the same time. Please see section 4.1.0 Cell Value
Formatting to see multiple condition formats in action. Here's an example of stacking Cell Value Format Condition and
Expression Condition in the same Range.
3.3.3 Putting it together...
Bumblebee Primer
38Expression
7/25/2019 Bumblebee Primer
39/61
(2) Color Scale Formatting allows you to set up a formatting condition that will evaluate a range of numbers and then based
on some simple rules will color all of the values with an appropriate color defined in a two color gradient.
You can define rules of how this color gradient will be applied to range of numbers by specifying Min and Max value types.
This can either be as simple as "automatic" or as custom as inputting an actual number for a min/max value.
Let's have a quick look at available options and their meaning.
3.4.0 (2) Color Scale Formatting
3.4.1 Define Min and Max Value Types
Bumblebee Primer
392 Color
7/25/2019 Bumblebee Primer
40/61
LowestValue:If you chose this option, Excel will automatically chose the lowest value in the specified range and use
that as a Minimum. Choosing this option means that you DO NOT have to supply MinValue. LowestValue can ONLY
be applied to MinValueType input.
Number: If you chose this option, you will have to also supply MinValue/MaxValue input that will determine the
minimum number.
Percent:If you chose this option you will have to supply MinValue/MaxValue and it will have to be between 0-100.
Formula: You can use a Formula to determine a MinValue/MaxValue. If you chose to use the formula then, you have
to supply it to MinValue/MaxValue input. Something to keep in mind when using Formulas with 2-Color Formatting is
that they cannot be referencing other cells. That means that a formula like this: =1, will work just fine while something
like this: =$B1=1, will not.
Percentile:If you chose this option you will have to supply MinValue/MaxValue and it will have to be between 1-99.
HighestValue:If you chose this option, Excel will automatically choose the highest value in the specified range and
use that as a Maximum. Choosing this option means that you DO NOT have to supply MaxValue. HighestValue can
ONLY be applied to MaxValueType input.
AutomaticMax:This option is NOT available for use with (2) Color Scale Formatting.
AutomaticMin:This option is NOT available for use with (2) Color Scale Formatting.
None:This option is NOT available for use with (2) Color Scale Formatting.
Based on chosen Min/Max Values Types you might have to specify a numerical or formula value that will be used with this
formatting style. Here's what the example above will look like:
3.4.2 Define Min and Max Values
Bumblebee Primer
402 Color
7/25/2019 Bumblebee Primer
41/61
Here's an additional example that will color only top 20% of the specified range with orange color while applying a blue
color to lower 80%.
Bumblebee Primer
412 Color
7/25/2019 Bumblebee Primer
42/61
Here's what this set up will evaluate to:
Bumblebee Primer
422 Color
7/25/2019 Bumblebee Primer
43/61
Bumblebee Primer
432 Color
7/25/2019 Bumblebee Primer
44/61
7/25/2019 Bumblebee Primer
45/61
LowestValue:If you chose this option, Excel will automatically chose the lowest value in the specified range and use
that as a Minimum. Choosing this option means that you DO NOT have to supply MinValue. LowestValue can ONLY
be applied to MinValueType input.
Number: If you chose this option, you will have to also supply MinValue/MidValue/MaxValue input that will determine
the minimum number.
Percent:If you chose this option you will have to supply MinValue/MidValue/MaxValue and it will have to be between
0-100.
Formula: You can use a Formula to determine a MinValue/MidValue/MaxValue. If you chose to use the formula then,
you have to supply it to MinValue/MidValue/MaxValue input. Something to keep in mind when using Formulas with 3-
Color Formatting is that they cannot be referencing other cells. That means that a formula like this: =1, will work just
fine while something like this: =$B1=1, will not.
Percentile:If you chose this option you will have to supply MinValue/MidValue/MaxValue and it will have to be
between 0-100.
HighestValue:If you chose this option, Excel will automatically choose the highest value in the specified range and
use that as a Maximum. Choosing this option means that you DO NOT have to supply MaxValue. HighestValue canONLY be applied to MaxValueType input.
AutomaticMax:This option is NOT available for use with (2) Color Scale Formatting.
AutomaticMin:This option is NOT available for use with (2) Color Scale Formatting.
None:This option is NOT available for use with (2) Color Scale Formatting.
What this means that Lowest and Highest Value selections can only be made for Min and Max respectively. Mid value type
can only be a Number, Percent, Percentile or Formula.
Based on chosen Min/Max Values Types you might have to specify a numerical or formula value that will be used with this
3.5.2 Define Min and Max Values
Bumblebee Primer
453 Color
7/25/2019 Bumblebee Primer
46/61
formatting style. Here's what the example above will look like:
Bumblebee Primer
463 Color
7/25/2019 Bumblebee Primer
47/61
Top/Bottom Percentile Formatting allows you to set up a formatting condition that will either highlight a top or bottom
percentile of values in a given range, or it will highlight a number of top or bottom values.
Percent:[Boolean] If Boolean set to True this formatting condition will use a top/bottom percentage of values in the
supplied range. If Boolean set to False it will take a number of top/bottom values according to Integer value specified
in Rank input.
Rank:[Integer] If Percent input is True then this will determine the percentage of values while if Percent is False this
will be a number of top/bottom values.
Top:[Boolean] If set to True it will highlight Top values while if set to False it will highlight Bottom values.
GraphicStyle:[Graphic Style] This Graphic Style will be applied to all values that fall within specified range of
top/bottom performers in a given range.
Please see section 3.0.0 for detail instructions on how to define Graphic Styles. This Graphic Style will be used if cellevaluates to True based on rules defined in previous section.
In this example we highlight Bottom 15% of all numbers in the specified range.
3.6.0 Top/Bottom Percentile Formatting
3.6.1 Define Formatting Condition rules
3.6.2 Define Graphic Style
3.6.3 Top Percentile Values
Bumblebee Primer
47Top/Bottom Percentile
7/25/2019 Bumblebee Primer
48/61
In this example we highlight exactly 15 of the top values in the specified range.
3.6.4 Top Number of Values
Bumblebee Primer
48Top/Bottom Percentile
7/25/2019 Bumblebee Primer
49/61
Bumblebee Primer
49Top/Bottom Percentile
7/25/2019 Bumblebee Primer
50/61
Top/Bottom Percentile Formatting allows you to set up a formatting condition that will either highlight a top or bottom
percentile of values in a given range, or it will highlight a number of top or bottom values.
MinType:[Condition Value Type] If this input is LowestValue or AutomaticMin Excel will automatically assign the
minimum value from the range of numbers specified. MinValue will NOT need to be supplied if either one of the two
values are used.
MinValue:[Integer] Only needed if MinType IS NOT LowestValue or AutomaticMin
MaxType:[[Condition Value Type] If this input is HeighestValue or AutomaticMax Excel will automatically assign the
maximum value from the range of numbers specified. MaxValue will NOT need to be supplied if either one of the two
values are used.
MaxValue:[Integer] Only needed if MaxType IS NOT HeighestValue or AutomaticMax
DirectionType:[Direction Type] Use this input to specify direction of the data bar.
GradientFill:[Boolean] If set to True, generated data bar will have a gradient fill style fading from FillColor specified
to White.
FillColor:[Color] Color of the Data Bar
BorderColor:[Color] If supplied, it will set the border color for each cell in the specified range.
In this example we highlight cells in the specified range using a gradient data bar that has no border. It also has automatic
min and max values assigned that were generated based on the values in the supplied range.
3.7.0 Data Bar Formatting
3.7.1 Define Formatting Condition Rules
3.6.2 Data Bar with Gradient no Border
Bumblebee Primer
50Data Bar
7/25/2019 Bumblebee Primer
51/61
3.6.3 Data Bar with Border and no Gradient
Bumblebee Primer
51Data Bar
7/25/2019 Bumblebee Primer
52/61
In this example we highlight cells in the specified range using a data bar that has a border. It also has automatic min and
max values assigned that were generated based on the values in the supplied range.
Bumblebee Primer
52Data Bar
7/25/2019 Bumblebee Primer
53/61
Bumblebee Primer
53Data Bar
7/25/2019 Bumblebee Primer
54/61
This is a section that will contain all charts as they are being added to Bumblebee.
4.0.0 Charts
Bumblebee Primer
54Charts
7/25/2019 Bumblebee Primer
55/61
Pie Charts are some of the most useful and easy to understand charts available to us in Excel. They are also one of the
simpler charts that you can generate using Excel. That's because they can really display a single range of data at a time.
Even though you can use them to generate data for 2D Arrays, you can only show one of them at a time, so its kind oflimited. Keep that in mind when dealing with charts.
RunIt:[Boolean] Set this input to True to enable this node.
SheetName:[String] Name of the Excel Worksheet that you want to place/update the chart on.
SizeRange:[String]
Use this input to define a range in Excel that chart will be scaled to fit. Typical Excel syntax applies where range is
defined like so: "A1:D11".
Title:[String] This will be the text in the title on top of the chart.
DataRange:[String] Use this input to define a range in Excel that chart will get its data source from. Charts can only
be applied to numbers so keep that in mind.
PieChartType:[Pie Chart Type] This can be one of the available outputs from Pie Chart Types node.
LegendStyle:[Legend Style] Use this input to specify Legend formatting options.
ChartStyle:[Chart Style] Use this input to specify Chart formatting options.
GraphStyle:[Graph Style] Use this input to specify Graph formatting options.
4.1.0 Pie Chart
4.1.1 Defining Pie Chart Inputs
4.1.2 Defining Pie Chart Styling Options
Bumblebee Primer
55Pie Chart
7/25/2019 Bumblebee Primer
56/61
Pie Charts have a handful of parts that can be individually formatted with some unique aesthetics. I am not a huge fan of
doing too much when it comes to aesthetics but there are a few things that I like and I will outline them below.
First and foremost, if you DO NOT supply a Legend Style to Pie Chart node, it will result in a chart without a legend.
If you however, decided that legend is what you want, you have a few options here. I personally like to adjust Text Style to
make sure that the fond is exactly what I like. Then you can pick a Legend Position, and there are basically (4) options to
choose from: Left, Top, Right and Bottom. If you do not specify any of these inputs they will be assigned automatically by
Excel. Last thing that I define here is Legend Labels. By default they will be just a series of numbers, but you can use a
Range to define custom names for each legend item.
Of course you can also add Fill and Border Styles to create this god awful look with a little frame around your legend. Feel
free to do that as well if your heart desires so.
4.1.3 Legend Styling
4.1.4 Graph and Label Styling
Bumblebee Primer
56Pie Chart
7/25/2019 Bumblebee Primer
57/61
Again, if you decide NOT TO supply a Graph Style input into a Pie Chart a default setting will be applied. That means you
will be seeing a very colorful, non-exploded and labeless chart.
In case that you do, want to supply a Graph Style it actually consists of two parts. First part is controlling the Graph itself
and second is controlling the labels that you see around the Graph. For the second part we will be using a node called
Label Style.
First thing that I like to do, is input an integer into Explosion input of Graph Style. That will control how much the each pie
pieces fly apart. Keep in mind that the bigger the number the smaller the pie chart pieces, because no matter what, it will
not go beyond the specified size. I also like to add a delicate border around each slice - use Border Style node to specify
that. Finally, I add a Fill Style to make all of the colors in my chart the same. :-) I know, this kind of defeats the purpose of
making a chart in a first place - but hey, its my chart so I can do whatever I like.
I also, do some Label Styling. You can use the Label Style node to control what shows up in the labels and where exactlythey are created. I set the Text Style for my labels. I then set labels to display a percentage that each slice is in relation to
the whole data set. Finally I use the Label Position Types node to place each node on the Outside End of the chart.
Bumblebee Primer
57Pie Chart
7/25/2019 Bumblebee Primer
58/61
This time the default setting is a white background and a solid border around the whole chart. If you however, supply an
empty Chart Style, that in-itself will make the background become transparent and will remove the border. For the sake of
illustration I have added a dashed border around the chart area, just so its clear what we are actually dealing with here.
My personal preference here is to just plug an empty Chart Style node into the Pie Chart node and move on, but for this
illustration I have added a little border styling with Rounded Corners and dashed style.
4.1.5 Chart Styling
Bumblebee Primer
58Pie Chart
7/25/2019 Bumblebee Primer
59/61
This is a section that will contain all extra and un-categorized nodes that are part of the
5.0.0 Extras
Bumblebee Primer
59Extras
7/25/2019 Bumblebee Primer
60/61
This node allows you to search for a single value (string) and it will return an entire row of data that this key value was
found in. For example you searched for a string "A500" and it was found at cell address A15, this node will return all data
that was contained in row 15.
FilePath:[FilePath>File.FromPath] This input requires two nodes File Path and File.FromPath arranged in a
sequence. If file specified doesn't exist yet it will cause an error.
RunIt: [Boolean] Toggle it to True to execute the node. Toggle it to False to disable the node.
SheetName:[String] This is the Name of the Sheet in Excel file that will be read from.
SearchFor: [String or List[String]] If single string is supplied then it will return a flat list of data from a single row. If
List of Strings is supplied it will return a Nested List of Data for each search key.
5.1.0 Search Value Get Row
5.1.1 Set Up
Bumblebee Primer
60Search Value Get Row
7/25/2019 Bumblebee Primer
61/61
Clear Contents is a node that will allow you to do few things. One of them is to clear data or cell content from a range of
Excel sheet. It can also clear any formatting applied to those cells (color fills, text style overrides etc.).
FilePath:[File Path] Use FilePath node to point at Excel file that you wish to read data from.
RunIt:[Boolean] Set this to True to enable this node and read data from file. Set this to False to disable this node.
SheetName:[String] Set this input to a single sheet name or use a list of sheet names to read multiple sheets.
ClearContent:[Boolean] If set to True all Cell Content will be removed. This means that data contained inside of
cells which includes formulas will be deleted.
ClearFormatting:[Boolean] If set to True all formatting for specified range will be cleared. Formatting constitutes of
things such as Cell Fills or Text Styles.
Range:[String] An Excel Range in format: "A1:B10" that if supplied will apply clear functions only to range specified.
If this input is empty clear funtions will be applied over entire document.
5.2.0 Clear Contents
There is only one rule here: please close Excel when trying to override a file. :-)
5.2.1 Set up
Bumblebee Primer