An add-in will often need to retrieve the elements that it just created for further processing.
Frequently, the Revit API method used to create them will return their element ids.
Sometimes, that is not the case.
We already discussed a simple and effective method to retrieve all newly created elements following a call to
the PromptForFamilyInstancePlacement
method by
subscribing to the DocumentChanged
event just
beforehand in the discussion
on placing family instances.
Now this topic arose again in a couple of cases and brought some other aspects to mind:
- Using the element lister
- Consecutive element ids
- Retrieving recently added elements
- AEC job openings in Munich and elsewhere
Using the Element Lister
The element lister provides an easy way to discover element relationships between related objects that are added to Revit by certain operations.
It is included in AdnRevitApiLabsXtra, the ADN Revit API Training Labs including Xtra.
All it does is grab all elements in the entire database and list whatever properties you are interested in, e.g., element id, category, level, .NET class, etc.
Then you can use
a Unix diff
tool to
compare states before and after doing your thing.
It can be well combined with the built-in parameter checker BipChecker to explore the properties in further depth.
Of course, the most intimate database exploration requires a live read-evaluate-print console.
Consecutive Element Ids
Using any of the techniques listed above, you will quickly determine that Revit element ids are basically consecutive numbers.
There is no guarantee for this, of course, and they can be mixed up by work-sharing operations.
They can only be used to identify an element within one single Revit document.
Because they are assigned consecutively, Revit automatically generates
many undocumented ElementId
relationships.
For more persistent identification, a UniqueId
is recommended.
For the sake of completeness, Revit elements have two identifiers:
We discuss their uses in lots of places, e.g.,
understanding the use of the UniqueId
.
For connecting with an external database, I would suggest using the UniqueId.
One simple sample that shows the whole connection strategy is provided by the FireRatingCloud add-in.
Retrieving Recently Added Elements
So let us summarise the above again to answer
the Revit API discussion forum thread
on how to get a merged part after merging with some parts and
the StackOverflow question
on Python Revit Part.Utils
how to get append the results out:
Question 1: I have merged some parts using PartUtils.CreateMergedPart
.
The output is not a Part
, but a PartMaker
.
I need a part output.
Is there any way to get a merged part object?
Question 2: I am using PartUtils.CreateParts
to create parts and would like to collect the results as a list of element ids.
How can I achieve that, please?
Answer: As said above, you can subscribe to
the DocumentChanged
event just before calling CreateParts
, and unsubscribe just afterwards.
That will tell you all the element ids added to the database during the call.
This is demonstrated in the discussion on retrieving newly placed family instances.
Hot Job Openings in Munich and Elsewhere
I see Autodesk offering several AEC related job openings.
Below are two located in Munich, Germany, for offsite and home office.
For more, please check the Autodesk job search site.
Industry Program Manager, AEC
Requisition ID: 18WD26910
Are you interested in a marketing job at Autodesk and wondering if this is the right one? Start by answering these five questions:
- Are you one of those unique people who can see the big picture and look after the smallest of details all at the same time?
- Do you like complex and sometimes ambiguous problems, and digging for data and insights that might help solve those problems?
- Do you work with a sense of purpose and urgency, motivating others to join your mission?
- Do you like working on a wide variety of projects, and find doing the same work day after day boring?
- Are you continually challenging yourself to do more, do it better, and do it faster?
If you said yes to all these questions, you may be the perfect fit for the role of Industry Program Manager for AEC (Architecture, Engineering, and Construction).
Position Overview
This is a unique individual contributor position at Autodesk. Your job is to make the EMEA cross-functional marketing teams (Account-based Marketing, Lead Gen Marketing, Digital Direct, Channel Marketing) successful by being the interface between them and the global industry strategy teams. You will coordinate industry strategy, programs and assets across the different sales channels (ABM, Digital Direct, Territory).
You will work with smart, global industry teams that are responsible for building and managing marketing programs and campaigns for our AEC industries. It will be your mission to:
- Communicate and coordinate the execution of campaigns across the country teams
- Gather input from the field
- Represent EMEA Demand Gen teams back to the industry strategy teams
It requires a unique combination of marketing experience, business acumen, industry know-how, project management, communication, and leadership skills. And at the heart of it, you have love to get things done.
Responsibilities
- Communicate global programs and campaigns to align marketing initiatives in EMEA and execute to the AEC strategic vision
- Ensure the availability of assets for Account-based Marketing, Lead Gen Marketing, Digital Direct teams and support Channel Marketing in communicating strategic goals to partners
- Lead the annual planning process for EMEA with the key Sales, Marketing and Industry stakeholders
- Develop and deliver professional written and spoken communications that ensure team members and leadership have clear, concise, and up-to-date information on progress
- Monitor performance of campaigns and recommend changes to continuously improve them
- Ensure clear definition of program success and present results against targets on a regular basis to Sales and Marketing leaders in EMEA
- Identify and communicate program scope and ensure critical paths, milestones and all objectives are met
- Work with teams and individuals to mitigate conflicts and resolve issues as needed. Leverage cross-organizational relationships for support and escalate in a savvy manner
- Collaborate with industry business development groups
Minimum Qualifications
- Excellent communication & collaboration skills and organizational talent to manage projects from start to end successfully
- Business acumen and industry knowledge to drive thought-leadership for the Architecture, Engineering, and Construction
- Change champion, motivator, and coach; demonstrated success delivering meaningful results through teams
- Strong analytical and problem-solving skills
- Excellent relationship management and expectation setting skills
- Familiarity with selling concepts and best practices; experience working with sales teams
- Strong ability to manage and prioritize multiple, concurrent tasks while meeting aggressive deadlines in a fast-paced environment with unending optimism
- Proficient with MS Office tools and familiar with Marketo and/or SFDC
- Comfortable with remote video collaboration tools e.g., Skype, Zoom, Go-to-Meeting, etc.
- BA/BS degree in marketing or communications
- 5+ years professional marketing experience in the high-tech industry (software industry experience preferred)
BIM Implementation Consultant
Requisition ID: 17WD25466
Position Overview
As a BIM Technical Consultant, you will be essential for working directly with our customers and developing/contributing to their BIM implementation strategy (in collaboration with our sales, consulting delivery and business development teams) for our major account customers.
The position combines your pre-sales and post-sales consultancy skills, your construction industry experience, your technical and professional know-how, and your passion for educating customers on Autodesk’s Construction BIM solutions.
Responsibilities
- Carry out the implementation of Autodesk's BIM solution on projects, collaborating with Autodesk sales and consulting delivery and business development teams
- Analyse customer business workflows and document findings
- Define, construct, and carry out the adoption of BIM implementation plans, leveraging your industry experience and best practices
- Manage customer relationships on implementation projects
- Document, share and promote BIM team best practices for redistribution and consistent implementation at a corporate level
- Own a part of the BIM Solution Portfolio corresponding to your area of expertise
- Identify opportunities for new projects to enhance customer effectiveness in their own business
Minimum Qualifications
- Strong experience in the Construction Industry
- Broad understanding, garnered through work in practice, of the Construction industries throughout the asset lifecycle
- Broad understanding of our Autodesk technology around BIM 360 Field, Glue, Production planning, Point Layout, Naviswork
- Understand the Construction Business Process around Production Planning, Scheduling, Commissioning, hand over to owners
- Understand BIM principles and at least 2 years of hands-on experience implementing BIM in an enterprise and/or on projects
- Experience in software product adoption Experience in business process improvement principles, and implementing change in complex organizations
- Fluent oral and written in English and German. Candidates with additional language skills would have a clear advantage
- Excellent verbal and written communication skills; ability to communicate complex technical details coherently
- Able to travel and enjoy working with diverse groups of people with widely variable technical skills
Preferred Qualifications
- Mature, goal-oriented, takes initiative and responsible
- Does not mind working on multiple projects at a time
- Able to act independently while working on a multi-disciplinary and geographically diverse team
- Can effectively communicate with this team, even with remote and international team members