Our process

Our process

Our process

On

Subscription

Basic

Pro

Custom

On

Subscription

Basic

Pro

Custom

01. Engage

We explain our services, discuss your business goals and make a flexible agreement, allowing us to define specific assignment orders later.

On

Subscription

Basic

Pro

Custom

01. Engage

We explain our services, discuss your business goals and make a flexible agreement, allowing us to define specific assignment orders later.

02. Request

Start requesting the workflow-automations and AI applications you need, our developers are right there to transform your ideas into reality.

02. Request

Start requesting the workflow-automations and AI applications you need, our developers are right there to transform your ideas into reality.

Ryan Hughes

from Fabrify import FabrifyClient, ElementInference, ModellingContext, SuggestionHandler, DecisionType

from Autodesk.Revit.DB import ElementId

aiClient = FabrifyClient(doc)

def suggest_clt_wall(doc, element_id: ElementId):

"""

Suggest the most suitable CLT wall type for a given
Revit element and context.

Internally, the system leverages element context (type,
category, parameters) along with recent modeling
transactions to tailor the suggestion to inferred design
intent.

"""

# Instantiate a CLT assistant with a recency-weighted
transaction context.

activeContext = ModellingContext.Scaffold(env=Revit)

activeContext.OperationChain = ModellingContext.BuildOperationChain(

model=doc,

chain_length=50,

recency_bias=0.3,

weight_fallof="logarithmic"

)

cltAssistant = ElementInference.CLT.Create(document=doc, context=activeContext)

cltAssistant.Name = "CLT Assistant"

# Preview the most probable suggestion and the reasoning behind it.

suggestion = cltAssistant.Suggest(element_id)

handler = SuggestionHandler(cltAssistant)

handler.ShowMouseModal(suggestion.Suggestion.Data.Reasoning)

handler.PreviewSelectedSuggestion(suggestion.Suggestion.Data.PreviewMesh)

# Track auto-completion reaction and handle it.

decision = SuggestionHandler.OnUserDecision(handler.DecisionType, handler.Option)

suggestion += decision

if decision.Type == DecisionType.CancelOrReject:

SuggestionHandler.AutoClosingModal(duration=3000, msg=decision.Type.Message)

return False

# Record the user's decision in the modeling context

activeContext.ActiveElement.DecisionHistory.Add(suggestion.Suggestion.Data.Decision)

# Commit the model change

res = handler.StartTransaction(doc, suggestion.Model, commit=True)

return bool(res)


Ryan Hughes

from Fabrify import FabrifyClient, ElementInference, ModellingContext, SuggestionHandler, DecisionType

from Autodesk.Revit.DB import ElementId

aiClient = FabrifyClient(doc)

def suggest_clt_wall(doc, element_id: ElementId):

"""

Suggest the most suitable CLT wall type for a given
Revit element and context.

Internally, the system leverages element context (type,
category, parameters) along with recent modeling
transactions to tailor the suggestion to inferred design
intent.

"""

# Instantiate a CLT assistant with a recency-weighted
transaction context.

activeContext = ModellingContext.Scaffold(env=Revit)

activeContext.OperationChain = ModellingContext.BuildOperationChain(

model=doc,

chain_length=50,

recency_bias=0.3,

weight_fallof="logarithmic"

)

cltAssistant = ElementInference.CLT.Create(document=doc, context=activeContext)

cltAssistant.Name = "CLT Assistant"

# Preview the most probable suggestion and the reasoning behind it.

suggestion = cltAssistant.Suggest(element_id)

handler = SuggestionHandler(cltAssistant)

handler.ShowMouseModal(suggestion.Suggestion.Data.Reasoning)

handler.PreviewSelectedSuggestion(suggestion.Suggestion.Data.PreviewMesh)

# Track auto-completion reaction and handle it.

decision = SuggestionHandler.OnUserDecision(handler.DecisionType, handler.Option)

suggestion += decision

if decision.Type == DecisionType.CancelOrReject:

SuggestionHandler.AutoClosingModal(duration=3000, msg=decision.Type.Message)

return False

# Record the user's decision in the modeling context

activeContext.ActiveElement.DecisionHistory.Add(suggestion.Suggestion.Data.Decision)

# Commit the model change

res = handler.StartTransaction(doc, suggestion.Model, commit=True)

return bool(res)


03. Build

Our developers swiftly begin building your custom solutions, prioritising speed without compromising on quality.

Ryan Hughes

from Fabrify import FabrifyClient, ElementInference, ModellingContext, SuggestionHandler, DecisionType

from Autodesk.Revit.DB import ElementId

aiClient = FabrifyClient(doc)

def suggest_clt_wall(doc, element_id: ElementId):

"""

Suggest the most suitable CLT wall type for a given
Revit element and context.

Internally, the system leverages element context (type,
category, parameters) along with recent modeling
transactions to tailor the suggestion to inferred design
intent.

"""

# Instantiate a CLT assistant with a recency-weighted
transaction context.

activeContext = ModellingContext.Scaffold(env=Revit)

activeContext.OperationChain = ModellingContext.BuildOperationChain(

model=doc,

chain_length=50,

recency_bias=0.3,

weight_fallof="logarithmic"

)

cltAssistant = ElementInference.CLT.Create(document=doc, context=activeContext)

cltAssistant.Name = "CLT Assistant"

# Preview the most probable suggestion and the reasoning behind it.

suggestion = cltAssistant.Suggest(element_id)

handler = SuggestionHandler(cltAssistant)

handler.ShowMouseModal(suggestion.Suggestion.Data.Reasoning)

handler.PreviewSelectedSuggestion(suggestion.Suggestion.Data.PreviewMesh)

# Track auto-completion reaction and handle it.

decision = SuggestionHandler.OnUserDecision(handler.DecisionType, handler.Option)

suggestion += decision

if decision.Type == DecisionType.CancelOrReject:

SuggestionHandler.AutoClosingModal(duration=3000, msg=decision.Type.Message)

return False

# Record the user's decision in the modeling context

activeContext.ActiveElement.DecisionHistory.Add(suggestion.Suggestion.Data.Decision)

# Commit the model change

res = handler.StartTransaction(doc, suggestion.Model, commit=True)

return bool(res)


03. Build

Our developers swiftly begin building your custom solutions, prioritising speed without compromising on quality.

Speed

Security

Accuracy

04. Test & Optimise

We iteratively test and review our milestones together with you, so that we can maximise feedback whilst ensuring we work to a well-structured, realistic plan.

Speed

Security

Accuracy

04. Test & Optimise

We iteratively test and review our milestones together with you, so that we can maximise feedback whilst ensuring we work to a well-structured, realistic plan.

05. Become An Industry Leader

We offer the possibility to our clients to engage in extended parnterships, helping both organisations towards becoming a worldwide industry leader.

05. Become An Industry Leader

We offer the possibility to our clients to engage in extended parnterships, helping both organisations towards becoming a worldwide industry leader.

Get in touch

Get in touch

Get in touch

Office

Bloxhub, Bryghuspladsen 8

Copenhagen 1473

Denmark

Bloxhub, Bryghuspladsen 8

Copenhagen 1473

Denmark