Introduction to DevTech

I’m very pleased to be part of a great team at Autodesk: DevTech, the Developer Technical Services team. Our focus is on providing high quality services to members of ADN, the Autodesk Developer Network. Aside from providing technical support for programming-related questions, we also write technical solutions, which we call DevNotes, present at technical conferences, provide API training and mentoring, i.e. short-term consulting, and liaise regularly with our engineering teams.

The team is spread around the world, so we have groups in the Americas, China, Europe, India, and Japan, split into ‘virtual’ workgroups for the architectural, mechanical, basic platform and media & entertainment products. I am a member of the architectural or AEC workgroup.

Everyone in the team is a programming expert focusing on multiple products and wearing many hats. We believe very strongly that providing hands-on support is a great way to develop strong technical skills that are of use in other parts of our job, so everyone in the team is involved in answering questions from our ADN members.

You’ll hopefully get to know other members of the AEC DevTech team as time goes on, when some of the tips and techniques they use (and discover) as part of their respective jobs appear to be of general interest.


Comments

3 responses to “Introduction to DevTech”

  1. jeremy,
    i am working on a facade design project and my facade geometry is driven by the ecotect analysis data, based on that data my facade panel parameters change, I am using divided surface tool to tessellate the panels on surface of the building, since my building surface is based on double curve i am having a lot of difficulty in populating my panels, its weird but sometimes it fails giving me the error saying “Not a Rect2DTilePattern”, Is there a work around for this? My code is based on one of your massing examples,
    private void assignDistParam(double[] excelOrientArray)
    {
    List dsList = GetElements();
    foreach (DividedSurface ds in dsList)
    // here, ds is the panel which needs the distance parameter changed according to the values from array, to control the aperture of it.
    {
    GridNode gn = new GridNode();
    int uCount = ds.NumberOfUGridlines;
    int vCount = ds.NumberOfVGridlines;
    int u = (uCount – 3);
    while (u > 0)
    {
    gn.UIndex = u;
    int v = 0;
    while (v 0))
    {
    int i;
    double paramValue;
    i = (((vCount – 3) * (u – 1)) + v);
    //correspond with excel data array
    double angleHolder = excelOrientArray[i – 1];
    int lowbound = 155;
    int upperbound = 205;
    double R1;
    double R2;
    double R3;
    double R4;
    if (lowbound <= angleHolder & angleHolder < upperbound)
    {
    R1 = (angleHolder – 180);
    if (R1 != 0)
    {
    R2 = (180 / R1);
    R3 = (90 / R2);
    if (R1 < 0)
    {
    R4 = (90 + R3);
    }
    else
    {
    R4 = (90 – R3);
    }
    param.Set(R4);
    }
    else
    {
    param.Set(R1);
    }
    }
    else
    {
    paramValue = 30;
    param.Set(paramValue);
    }
    }
    else
    {
    }
    }
    }
    }
    v = v + 1;
    }
    u = u – 1;
    }
    }
    }

  2. Jeremy,
    seems like some parts of the code is missing in my previous comment,so i am posting it again,
    private void assignDistParam(double[] excelOrientArray)
    {
    List dsList = GetElements();
    foreach (DividedSurface ds in dsList)
    // this part of the code reads the analysis values from the array and assings them to parameters those which are matching the criteria.
    {
    GridNode gn = new GridNode();
    int uCount = ds.NumberOfUGridlines;
    int vCount = ds.NumberOfVGridlines;
    int u = (uCount – 3);
    while (u > 0)
    {
    gn.UIndex = u;
    int v = 0;
    while (v 0))
    {
    int i;
    double paramValue;
    i = (((vCount – 3) * (u – 1)) + v);
    double angleHolder = excelOrientArray[i – 1];
    int lowbound = 155;
    int upperbound = 205;
    double R1;
    double R2;
    double R3;
    double R4;
    // panels which meet this criteria will update the parameters..
    if (lowbound GetElements() where T : Autodesk.Revit.Element
    {
    List elements = new List();
    ElementIterator eit = m_doc.get_Elements(typeof(T));
    eit.Reset();
    while (eit.MoveNext())
    {
    T element = eit.Current as T;
    if (element != null)
    {
    elements.Add(element);
    }
    }
    return elements;
    }
    }
    }

  3. Dear Adi,
    Sorry for the late response. As you may have seen, I am travelling right now and will continue doing so for the rest of the year, so I have not been able to look into your issue. By the way, I searched my samples globally for the string ‘assignDistParam’ but cannot find it, so I do not know what sample you are referring to. I hope that you have been able to make some progress in spite of my lack of response.
    Cheers, Jeremy.

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading