You are on page 1of 14

6/20/2020 create your own tab and buttons in revit | archi-lab

Home
About me
Services
Examples
Portfolio
Reading
Membership

create your own tab and buttons in revit


By Konrad K Sobon / 29 Nov 2015 / 33 Comments
image by archi-lab

In the last few posts I have outlined in great detail how to make a simple Revit Add-in using the IExternalCommand implementation. Doing that is a great and really
fast way of adding new tools to Revit, but after a while we will realize that we just need a little more organization. Luckily for us Revit API offers a way to create
our own tab in Revit and an array of different ways to add buttons to it. For the sake of keeping this tutorial simple and easy to follow, I will only show you how to
convert our all-ready CurveTotalLength tool to a button.

In this post we will cover a few things like:

IExternalApplication implementation
new RibbonPanel
new PushButton
resource management

First let’s open our Visual Studio session that we worked on last week. It should look like this:

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 1/14
6/20/2020 create your own tab and buttons in revit | archi-lab
On the right hand side, in our Solution Explorer I will first change the name of the CurveTotalLength cs file from Class1.cs to CurveTotalLength.cs.

1. Right click on Class1.cs


2. Click on Rename and type in “CurveTotalLength.cs”

Now, let’s just “Build it” and we can close that file.

This was just a quick maintenance procedure to make sure that our file is named properly because next what we will do is import that file into a new Project in
Visual Studio. Unfortunately there isn’t an easy way to just take an existing project in Visual Studio and rename it. The easiest way is to actually just create a new
project and add an existing one to it if needed. At least that’s what I have been doing.

So let’s create a new project in Visual Studio. This step was described before here. We will call it GrimshawRibbon, but you can call it whatever you want – just
remember that it’s not easy to rename the project folder structure after it was created.

Next, just like we discussed before we need to reference in Revit API and Revit APIUI libraries. Again, look at this link here.

Now, let’s just quickly rename the default Class1.cs to App.cs like so(see image above):

Click Yes, to confirm.

Next, let’s add our existing CurveTotalLength project to this solution (SHIFT + ALT + A). When the window pops up we need to navigate to our CurveTotalLength
project location and look for CurveTotalLength.cs file. You should see a new file appear in your Solution Explorer like so:

Next let’s quickly add a new folder to our project and then move(drag and drop) the CurveTotalLength to that folder to keep our application nicely organized:

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 2/14
6/20/2020 create your own tab and buttons in revit | archi-lab

1. Right click on our project.


2. Hover over Add…
3. Click on New Folder

Before we start implementing the IExternalApplication, we need to make sure that we have all of the “using” statements as well as one more assembly loaded
(PresentationCore), that we will need to define an icon/image for our button.

1. Right click on References in Solution Explorer, then click on Add Reference…

1. Click on “Assemblies” on the left side.

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 3/14
6/20/2020 create your own tab and buttons in revit | archi-lab
2. In search field type in “Presentation”.
3. Select PresentationCore from the list.
4. Click OK.

Now, that we have all of the assemblies needed*, we can get to implementing IExternalApplication. First let’s create a “road map” using pseudo code before we start
filling in the blanks:

*You will notice that we also defined using System.Reflection in code below. System is loaded in by default so there was no need to add it in, and all we needed to
do was just type “using System.Reflection” to start using methods defined in that assembly.

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using System.Reflection;
7
8 using Autodesk.Revit.DB;
9 using Autodesk.Revit.UI;
10 using System.Windows.Media.Imaging;
11
12 namespace GrimshawRibbon
13 {
14 class App : IExternalApplication
15 {
16 // define a method that will create our tab and button
17
18 public Result OnShutdown(UIControlledApplication application)
19 {
20 // do nothing
21 // return result.succeeded
22 }
23
24 public Result OnStartup(UIControlledApplication application)
25 {
26 // call our method that will load up our toolbar
27 // return result.succeeded
28 }
29 }
30 }

externalApp.cs hosted with ❤ by GitHub view raw

This is a basic outline for our method. We haven’t done any heavy lifting yet, but we have a good idea about what needs to be done. We already loaded in
PresentationCore and I mentioned that we will need it to define an image for our button. Before we get to code and explain how to define that image, let’s create the
image and load it into our project first: I usually make my images roughly 320 x 320 pixels. That’s too big for the icon (32 x 32), but it’s much easier to work with
that in Illustrator or Photoshop. Save your image to PNG (with transparency) and then you can easily create a 32px icon version of the file using online service

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 4/14
6/20/2020 create your own tab and buttons in revit | archi-lab
called ICO Converter. For a single push button, we need a 32 pixel image so these settings will be fine:

1. Select a PNG file.


2. Select pixel size needed
3. Select Bit Depth
4. Click Convert

Files will be automatically saved in our Downloads folder and will be called favicon.ico so all we need to do is rename that file to totalLength.png. You will be
prompted if you want to change the file extension to PNG so please click yes to confirm. Now, let’s add it into our Visual Studio project. First create a new folder in
our Solution Explorer and call it “Resources” then add our file like so:

1. Right click on Resources folder


2. Hover over Add
3. Click on Existing Item…

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 5/14
6/20/2020 create your own tab and buttons in revit | archi-lab
Now we just need to navigate to the image that we want to use as our icon and select it. Once the image is inserted we need to change its BuildAction:

1. Select our image in the Solution Explorer


2. Change Build Action to Resource

Our image is ready, so are all of the assemblies needed, so we can go ahead and define our method that will create the tab and a new button:

1 static void AddRibbonPanel(UIControlledApplication application)


2 {
3 // Create a custom ribbon tab
4 String tabName = "Grimshaw";
5 application.CreateRibbonTab(tabName);
6
7 // Add a new ribbon panel
8 RibbonPanel ribbonPanel = application.CreateRibbonPanel(tabName, "Tools");
9
10 // Get dll assembly path
11 string thisAssemblyPath = Assembly.GetExecutingAssembly().Location;
12
13 // create push button for CurveTotalLength
14 PushButtonData b1Data = new PushButtonData(
15 "cmdCurveTotalLength",
16 "Total" + System.Environment.NewLine + " Length ",
17 thisAssemblyPath,
18 "GrimshawRibbon.CurveTotalLength");
19
20 PushButton pb1 = ribbonPanel.AddItem(b1Data) as PushButton;
21 pb1.ToolTip = "Select Multiple Lines to Obtain Total Length";
22 BitmapImage pb1Image = new BitmapImage(new Uri("pack://application:,,,/GrimshawRibbon;component/Resources/totalLength.png"));
23 pb1.LargeImage = pb1Image;
24 }

addPanel.cs hosted with ❤ by GitHub view raw

Let’s go over it line by line:

1. This defines what kind of method we want to create. For our purpose a “static”, “void” method will suffice. Static means that we are creating a method that
can be invoked without first creating an instance of its parent class. Void means that our method will not return anything.
2. .
3. .
4. This will be the name displayed on our tab.
5. Here we create an instance of a new tab with the given name.
6. .
7. .
8. Here we create a new Panel which will be added to our Tab. We call this panel Tools.
9. .
10. .
11. Here we use Reflection method called Assembly to get a path to folder that our application is being compiled to.
12. .
13. .
14. Before we create a new PushButton we need to create a PushButtonData instance
15. first input is a unique name/id for our new button
16. this is text that will be displayed under our button. I wanted our name to be two lines hence the System.Environment.NewLine piece of code.
17. this is a location of a dll that will be called when button is pushed
18. this is the name of the method that will be called including a namespace.
19. .
https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 6/14
6/20/2020 create your own tab and buttons in revit | archi-lab
20. Here we add the new PushButton to our Panel.
21. Here we define a tooltip message that will be displayed when user hovers over our button.
22. Here we define a BitmapImage from the source. Bear in mind that it has to be defined as a URI source so we are creating a new instance of URI like so: new
Uri(“pack://application:,,,/GrimshawRibbon;component/Resources/totalLength.png“) where “GrimshawRibbon” is the name of our current project followed
by “;component” and then a “/Resources” which is the name of the folder we put our image into, then finally “/totalLength.png” which is the name of the file
itself.
23. Here we set the LargeImage property of the button to our image.
24. .

This is really the gist of our application. Just to make sure that it all makes sense here’s where our variable are coming from:

Now that we have a method defined that will create the tab, all we have to do is call it when our plug-in is loaded into Revit – every time Revit starts. Here’s the full
code:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using System.Reflection;
7
8 using Autodesk.Revit.DB;
9 using Autodesk.Revit.UI;
10 using System.Windows.Media.Imaging;
11
12 namespace GrimshawRibbon
13 {
14 class App : IExternalApplication
15 {
16 // define a method that will create our tab and button
17 static void AddRibbonPanel(UIControlledApplication application)
18 {
19 // Create a custom ribbon tab
20 String tabName = "Grimshaw";
21 application.CreateRibbonTab(tabName);
22
23 // Add a new ribbon panel
24 RibbonPanel ribbonPanel = application.CreateRibbonPanel(tabName, "Tools");
25
26 // Get dll assembly path
27 string thisAssemblyPath = Assembly.GetExecutingAssembly().Location;
28
29 // create push button for CurveTotalLength
30 PushButtonData b1Data = new PushButtonData(
31 "cmdCurveTotalLength",
32 "Total" + System.Environment.NewLine + " Length ",
33 thisAssemblyPath,
34 "TotalLength.CurveTotalLength");
35
36 PushButton pb1 = ribbonPanel.AddItem(b1Data) as PushButton;
37 pb1.ToolTip = "Select Multiple Lines to Obtain Total Length";
38 BitmapImage pb1Image = new BitmapImage(new Uri("pack://application:,,,/GrimshawRibbon;component/Resources/totalLength.png"));
39 pb1.LargeImage = pb1Image;
40 }
41
42 public Result OnShutdown(UIControlledApplication application)
43 {
44 // do nothing
45 return Result.Succeeded;

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 7/14
6/20/2020 create your own tab and buttons in revit | archi-lab
46 }
47
48 public Result OnStartup(UIControlledApplication application)
49 {
50 // call our method that will load up our toolbar
51 AddRibbonPanel(application);
52 return Result.Succeeded;
53 }
54 }
55 }

finalExternalApp.cs hosted with ❤ by GitHub view raw

The last step before we can fire up Revit is making sure that we have a addin manifest file that will register our application with Revit. Just like we did in the
previous tutorial let’s just add a new TextFile to our project and call it GrimshawRibbon.addin. You can reference the steps from here. Here’s the code for this addin
file (it differs slightly from an ExternalCommand registration):
1 <?xml version="1.0" encoding="utf-8" standalone="no"?>
2 <RevitAddIns>
3 <AddIn Type="Application">
4 <Name>SampleApplication</Name>
5 <Assembly>GrimshawRibbon.dll</Assembly>
6 <AddInId>604b1052-f742-4951-8576-c261d1993108</AddInId>
7 <FullClassName>GrimshawRibbon.App</FullClassName>
8 <VendorId>Konrad K Sobon</VendorId>
9 <VendorDescription>archi-lab http://www.archi-lab.net</VendorDescription>
10 </AddIn>
11 </RevitAddIns>

applicationAddin.addin hosted with ❤ by GitHub view raw

Make sure that you are changing the addin file Build Action to Content and its Copy to Output Directory to Copy if newer.

Now, if we build our project we should have two files, that we can copy to our Revit addins location. Again, if you don’t know where that is, please reference
previous tutorials here. Truth is that you should really read the previous three tutorials before attempting this one. :-)

Now, if you fire up Revit, you will have something like this:

Adding your own tab will probably make you realize that having a whole new tab just for one tool is kind of meaningless and you will set out on the path to fill it up
with things that will make your life as a Revit user that much more easier. I have been doing this for a few months now, but I am up to 15 custom tools that I created
for our office. Some are really simple like the one we were working with during this tutorial series, and some are a little bit more involved. Either way, having your
own toolbar in your favorite application will for sure give you at least a small reason to be proud of yourself.

Thanks for sticking it out with me. It has been a long tutorial, lots of steps involved, but if you got through then its all it matters. Also, if I have missed anything –
forgot to post an important image, skipped an important step – please let me know.

You can download the final DLL files from here:

GrimshawDT - GrimshawRibbon2016 (2293 downloads)

Support archi-lab on Patreon!

Share this:

 Twitter  Facebook  LinkedIn  Pinterest  Print

Posted in: C#, Revit / Tagged: C++, computational design, IExternalApplication, programming, revit api, revit button, revit plug-in, revit tab

33 Comments

1.
Brian Nickel says:
December 5, 2015 at 9:48 pm · Reply

Absolutely enjoy these posts Konrad. It’s about time someone explains the process in a easy to follow way! Kudos!

Konrad K Sobon says:


December 6, 2015 at 1:08 am · Reply

Agree, I had to learn the hard way so you guys have it easy. :-) You are welcome!

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 8/14
6/20/2020 create your own tab and buttons in revit | archi-lab

2.
Daniel Viero says:
December 7, 2015 at 5:09 pm · Reply

Konrad,

I’ve been struggling months trying to figure out a proper way to include my macros in an organized panel within the ribbon. Thanks a lot and congrats for the
amazing job.

Konrad K Sobon says:


December 7, 2015 at 8:34 pm · Reply

You are welcome! I do accept gifts of gratitude, usually in form of free drinks. :-)

3.
Adam Smith says:
December 22, 2015 at 6:52 pm · Reply

Hi Konrad!
Great post, thank you!
For Revit 2016 it work like a charm, but when I’ve tested it for Revit 2014 it doesn’t work.
Have you any advice how apopt it for Revit 2014?

Konrad K Sobon says:


December 22, 2015 at 7:05 pm · Reply

Adam,

Yes, I would recommend going to Start>Control Panel> Programs> Revit 2014 and hitting that Uninstall button on top of the window. :-) After the
initial shock and nostalgia passes, believe me, life is better in year 2016 AD. But, seriously I can’t help you here. I refuse to provide backwards
compatibility and localization issues help. I know, I am a horrible person. I will burn in hell, but at least it will be a modern one. Peace!

4.
Adam Smith says:
December 23, 2015 at 7:48 am · Reply

Konrad, you make me laugh!


I’m totally agree with you, but unfortunately, those who are creating content for Revit MEP are forced to use Revit 2014 or even worse Revit 2012 to insure
backward compatibility. That’s why I was looking for a solution at least for Revit 2014.
Nonetheless, thank you for your reply!

Konrad K Sobon says:


December 26, 2015 at 10:41 pm · Reply

Adam, first thing that I would check is to make sure that you are referencing in RevitAPI and RevitAPIUI dlls from the 2014 location. Then try and
compile. If everything works then you won’t have to anything else. If however, it doesn’t compile because I used some methods that were added to
Revit API post 2014 version (I am not sure if I did, since I never built this particular plug-in for older versions) then you will have to replace them with
their older versions, or it might not even be possible. I can’t tell because I never tried it myself.

Good luck!

5.
Adam says:
March 10, 2016 at 6:00 pm · Reply

Konrad – thanks for the great tutorial, I was able to get my first button and got it to work great, what I am struggling with is adding a second button. I’m trying
to add the Legend Duplicator and I keep getting a lot of errors when I copy the Push Button Data section and try to add it for a second button…

Thanks again

Konrad K Sobon says:


September 1, 2016 at 2:19 pm · Reply

Please see the answer below.

6.
Mitch says:
September 1, 2016 at 1:10 pm · Reply

Konrad, Anything special when adding multiple Push buttons to the same panel (separate panels seems to work ok)? I defined the PB data, and image.
“AddItem” will not produce another button on the panel. It will build without errors, just all buttons after that will not load. Should I be able to copy (using
your code above as an example):
// create push button for CurveTotalLength
PushButtonData b1Data = new PushButtonData(

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 9/14
6/20/2020 create your own tab and buttons in revit | archi-lab
“cmdCurveTotalLength”,
“Total” + System.Environment.NewLine + ” Length “,
thisAssemblyPath,
“TotalLength.CurveTotalLength”);

PushButton pb1 = ribbonPanel.AddItem(b1Data) as PushButton;


pb1.ToolTip = “Select Multiple Lines to Obtain Total Length”;
BitmapImage pb1Image = new BitmapImage(new Uri(“pack://application:,,,/GrimshawRibbon;component/Resources/totalLength.png”));
pb1.LargeImage = pb1Image;

And redefine a new button, then add it to the same panel?

I am looking at some examples here:


http://spiderinnet.typepad.com/blog/2011/03/ribbon-panel-ribbonpanel-and-items-ribbonitem-of-revit-api-part-7-manipulate-panels-created-by-other-
addins.html

It doesn’t look like these examples are doing anything different. Defining the push button data, then adding it to the panel. Next button, defining the push
button data, then adding it to the panel.

Looks like I’m missing something somewhere. If you have any thoughts on this, much appreciated.

Thanks,

Konrad K Sobon says:


September 1, 2016 at 2:19 pm · Reply

You need to define a new PushButtonData for the new button. Then you just add it to the same panel by calling the RibbonPanel.AddItem() method. It
looks like this

Attachment: Capture.png

7.
Kristian Kvistgaard says:
November 16, 2016 at 1:36 pm · Reply

Absolutely amazing Konrad

I have just followed the three steps to create a Addin, and finally this to create my own Tab!

There where some bumps on the way. But with a little logic, and help from Visual Studio. You guide is perfect!
Thanks for the good post. Introducing us to true Addins!! :D

Konrad K Sobon says:


November 16, 2016 at 5:37 pm · Reply

I am glad you liked it.

8.
Tom James says:
April 7, 2017 at 8:27 am · Reply

Hi Konrad,

Thanks for the posts they’re very informative.

I was wondering if it is possible to amend your code so I can add scripts which I have made in dynamo to the ribbon.

I’m not that savvy with coding so I haven’t figured it out yet, a bit of a learning curve but I’ve been wanting to learn for a while now so this will push me!

Thanks,

TJ

9.
Ollie says:
May 1, 2017 at 11:25 am · Reply

Awesome tutorial, Konrad! Thanks for making this so very easy to comprehend.
Best of luck at the new place!
Ollie

Konrad K Sobon says:


May 4, 2017 at 9:14 pm · Reply

Thanks!

10.
nick says:

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 10/14
6/20/2020 create your own tab and buttons in revit | archi-lab
November 29, 2017 at 9:23 pm · Reply

Hey. Thanks for this tutorial. I’ve been getting one error that is preventing the app from loading, any thoughts? :

There was a mismatch between the processor architecture of the project being built “MSIL” and the processor architecture of the reference “RevitAPI”,
“AMD64”. This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration
Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that
matches the targeted processor architecture of your project.

Konrad K Sobon says:


December 14, 2017 at 2:11 pm · Reply

This is just a warning. You can ignore it. As far as I remember I have been getting it for the past 5 years.

11.
nick says:
November 30, 2017 at 6:33 pm · Reply

The issue above was solved by changing the debugger target framework to 4.5 and processor to x64.

However I have one more question. Is there a way to add python scripts to these buttons. I’ve written a few python scripts that I would like to make into a
button. Advice?

Konrad K Sobon says:


December 14, 2017 at 2:12 pm · Reply

There is a great project called pyRevit that makes this super easy. https://github.com/eirannejad/pyRevit

12.
vanLion says:
July 4, 2018 at 9:56 am · Reply

Hi,

Thanks for this very useful tutorial. Finally a good example :-)

But i did everything you said and when i start Revit 2018 i get the message shown in the picture? Can this be solved or has it something to do with the Revit
version?

Thanks!

Attachment: Capture.jpg

13.
Purus says:
September 26, 2018 at 6:23 pm · Reply

This is the first time i am visiting your website. And this post is really helpful for beginners like me.

Thank you Konrad!

14.
Mark Ackerley says:
July 15, 2019 at 10:55 am · Reply

Thanks Konrad, great work!

Konrad K Sobon says:


July 15, 2019 at 5:29 pm · Reply

You are welcome!

15.
David Mena says:
May 18, 2020 at 6:50 pm · Reply

Hi Konrad, this information was very useful for me!


I have a problem when traying to share muy .dll and .addin files with my coworkers in the office. They get this message “Revit Cannot run the external
application”. Is there any extra step when sharing the plugin with other computers having the same Revit Version?

Thank you for your help!

Attachment: FAIL.jpg

Konrad K Sobon says:

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 11/14
6/20/2020 create your own tab and buttons in revit | archi-lab
May 25, 2020 at 7:21 pm · Reply

It looks like one of the dependencies is missing. You have to share them as well. Your plugin might have a dependency on something like
Newtonsoft.Json.dll or MvvmLight.dll. Whatever 3rd party libraries you use, please share them along with the plugin dll.

16.
Dave Burwell says:
May 27, 2020 at 6:51 pm · Reply

Konrad, it took me a day or so but I finally got through these tutorials with a working menu!

My question is, have you ever run an external IronPython script from within C#? I have a bunch of scripts that I’d like to add to the menu but I keep getting
the attached error when I try to run it.

Here’s what I have in the script (yes, trying to figure this out on my own and not sure what to do)…

using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;

namespace FamilyVersions
{
[Transaction(TransactionMode.Manual)]
public class FV : IExternalCommand
{
private static void doPython()
{
ScriptEngine engine = Python.CreateEngine();
engine.ExecuteFile(@”Z:\Revit\Visual Studio\Python\Family Versions.py”);
}

Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)


{
throw new NotImplementedException();
}
}
}

Any help would be greatly appreciated. AND, fantastic work you’ve done!!!

Attachment: Screen-Shot-2020-05-27-at-10.02.56-AM.jpg

Konrad K Sobon says:


June 18, 2020 at 3:30 pm · Reply

I haven’t tried running Python code in C# like that using the ScriptEngine. I did run Python code via command line in C#. I am not sure what you are
trying to accomplish, but if the goal is to use Python code and then execute it inside of External Command so that you can expose it via buttons on the
Ribbon, then perhaps look into pyRevit. You can work in Python and still build a Ribbon.

Dave Burwell says:


June 18, 2020 at 4:21 pm · Reply

Thanks for getting back to me Konrad. I appreciate it. I use pyRevit, but what I was trying to learn was to create my own menu system without
pyRevit, then still be able to run some of my python scripts I have. I just don’t know a way to use C# (which is what you need to create the menu
according to your example – correct?) to point to a python file on the computer and run it. My end goal is to create our own menu to distribute to
others in our office without installing pyRevit and/or RevitPythonShell. Still learning, that’s why I asked.

Appreciate what you’ve done, it’s quite well written.

Konrad K Sobon says:


June 18, 2020 at 4:32 pm · Reply

Like I said, I haven’t tried running Python code inside of External Command, but you can do that. Here’s an example of what the Dynamo
team did:
https://github.com/DynamoDS/Dynamo/blob/b842a9edb06055000150f64aa963ade6cbb0dd2d/src/Libraries/DSIronPython/IronPythonEvalua

17.
Dave Burwell says:
May 27, 2020 at 6:54 pm · Reply

Uh, sorry, wrong screen shot!

Attachment: Screen-Shot-2020-05-27-at-2.46.53-PM.jpg

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 12/14
6/20/2020 create your own tab and buttons in revit | archi-lab
Trackbacks

1. Création d’un plug-in REVIT #2 plug-in d’application – batcave.insa-rouen.fr

Leave a Comment

Name *

Email *

Website

Save my name, email, and website in this browser for the next time I comment.

Upload Attachment (Allowed file types: jpg, gif, png, pdf, doc, docx, ppt, pptx, pps, ppsx, odt, xls, xlsx, rar, zip, mp3, m4a, ogg, wav, wma, mp4, m4v, mov, wmv, avi, mpg, ogv, 3gp, 3g2,
flv, webm, apk, maximum file size: 2MB.

Choose File No file chosen

Notify me of follow-up comments by email.

Notify me of new posts by email.

Submit Comment

Search

To search type and hit enter

Categories

Select Category

Recent Posts

Comparing View Templates in Dynamo June 18, 2020


how to maintain Revit plugins for multiple versions continued… May 25, 2020
create ceiling plan by room April 19, 2020
In depth look at Dynamo and Revit relationship w/ Bimbeats March 28, 2020
creating curtain wall plans/elevations pt2 March 18, 2020

Calendar

June 2020
M T W T F S S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
« May

Tags

AEC archi-lab architecture autodesk automation BIM C++ coding community computation computational computational BIM computational design curtain
wall d3 design development documentation dynamo excel grasshopper hackathon html mandrill mantis shrimp open source parsing programming
data delete

python revit revit api revit plug-in rhino schedules scripting symposium tags technology view template visualization visual programming visual studio warnings
← building revit plug-ins with visual studio: part three
playing with materials in dynamo while drinking heavily →

archi-lab tweets:
RT @archikaos: @arch_laboratory Absolutely a win! It's such a pleasure working with @arch_laboratory and honor to contribute to open source19 Jun 2020
Comparing View Templates inDynamo https://t.co/sxWkyu4zmV18 Jun 2020
RT @Gytaco: Pretty cool when some of the tech you've been working on makes the local news. Been great to build the backend platform to inte12 Jun 2020
RT @MGortat: https://t.co/jdYIUo2rjU polecam ! Cala prawda o czowieku zarzdzajcym Polska koszykwka. 03 Jun 2020
@gtalarico Yours is one of a kind...sorry, but no documentation for one offs. Next time try and order at least two. Congrats! 31 May 2020
@60secondrevit @DynamoBIM Yeah, I agree. Its useless and quite heidious too.27 May 2020

Project Gallery

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 13/14
6/20/2020 create your own tab and buttons in revit | archi-lab

Membership:

Search:

To search type and hit enter

Categories:

Select Category

Tags:

AEC archi-lab architecture autodesk automation BIM C++ coding community computation computational computational BIM computational design curtain
wall d3 design development documentation dynamo excel grasshopper hackathon html mandrill mantis shrimp open source parsing programming
data delete

python revit revit api revit plug-in rhino schedules scripting symposium tags technology view template visualization visual programming visual studio warnings
© Copyright 2020. Powered by WordPress

Viewport Theme by ThemeZilla

https://archi-lab.net/create-your-own-tab-and-buttons-in-revit/ 14/14

You might also like