diff --git a/translator/reader/reader.cpp b/translator/reader/reader.cpp index 7eb1136601..af2d07f4d1 100644 --- a/translator/reader/reader.cpp +++ b/translator/reader/reader.cpp @@ -715,8 +715,8 @@ void UsdArnoldReaderThreadContext::SetDispatcher(WorkDispatcher *dispatcher) AtNode *UsdArnoldReaderThreadContext::CreateArnoldNode(const char *type, const char *name) { AtNode *node = AiNode(_reader->GetUniverse(), type, name, _reader->GetProceduralParent()); - // All shape nodes should have an id parameter. - if (AiNodeEntryGetType(AiNodeGetNodeEntry(node)) == AI_NODE_SHAPE) { + // All shape nodes should have an id parameter if we're coming from a parent procedural + if (_reader->GetProceduralParent() && AiNodeEntryGetType(AiNodeGetNodeEntry(node)) == AI_NODE_SHAPE) { AiNodeSetUInt(node, str::id, _reader->GetId()); }