Nummi website is online
Screenshot_iphone4s_s

Together with my sister we've released the website for the iOS application nummi! Shortly we will be able to publish the app in the AppStore. We're also working on an Android version which we'll publish within a few weeks. Please head over to the website and press the Facebook like button to receive the latest updates.

nummi website

Free Auto Number Add-in and x86 add-ins
Auto-number

The Auto Number Add-in is now available for free, a sort of Christmas present! This add-in can Mark any element which has a Mark parameter. You can use interval, prefix, postfix and offset options to get the output you want.

I've also added the x86 versions of the add-ins. So feel free to try these add-ins if you use 32bit!

Save Selection Add-in
Save-selection2

Yesterday Mark Wieringa of cepezed pointed out the blog posting of Luke Johnson at What Revit Wants. We thought this way of remembering a selection within Revit is a bit cumbersome. That's why I created the Revit Save Selection Add-in and it is free to download from the Revit Save Section page. To speed up the selection process you can put the icons in the Quick Access Toolbar or assign Keyboard Shortcuts to it. Please leave a comment with your findings.

Gradient calculation in Ruby
 

For one of my projects I needed to calculate color values between two colors. This is what I came up with:

class Gradient
  attr_accessor :resolution, :R0, :G0, :B0, :R1, :G1, :B1

  def initialize(start, stop, resolution)
    @resolution = Float(resolution)

    @R0 = (start & 0xff0000) >> 16;
    @G0 = (start & 0x00ff00) >> 8;
    @B0 = (start & 0x0000ff) >> 0;

    @R1 = (stop & 0xff0000) >> 16;
    @G1 = (stop & 0x00ff00) >> 8;
    @B1 = (stop & 0x0000ff) >> 0;
  end

  def gradient(step)
    r = interpolate(@R0, @R1, step);
    g = interpolate(@G0, @G1, step);
    b = interpolate(@B0, @B1, step);

    (((r << 8) | g) << 8) | b;
  end

  def interpolate(start, stop, step)
    if (start < stop)
      return (((stop - start) * (step / @resolution)) + start).round;
    else
      return (((start - stop) * (1 - (step / @resolution))) + stop).round;
    end
  end
end

You can use it like this:

g = Gradient.new(0xe6ebf9, 0x33abe3, 100)
g.gradient(50)

And with the optional to_s(16) it will return a hex value, which can be used in the CSS code.

Custom Revit Add-ins explained
Unknown

Today I've posted a page on my site explaining how the process of developing a Revit add-in works. With this page I hope I can take away the fear of developing your own add-ins.

Read here